Software Alternatives & Reviews

Building C++ projects: Know what you build, how you build it and where you build it.

Multipass CMake
  1. Multipass provides a command line interface to launch, manage and generally fiddle about with instances of Linux.
    Pricing:
    • Open Source
    How come? I included climits just a couple of lines above. And it worked with conan create, and the commands that I executed manually just replicated the create command. Almost. I checked the build cache and saw that the folder with the successful build listed /usr/include/c++/v1/limits.h (inside CMakeFiles/main.dir/main.cpp.o.d). And failed build listed models/limits.h. So, it used the file from the project but the case of the filename was ignored. Obviously, there was a difference between conan create and executing commands manually. Namely, conan source. Internally, the first thing that gets executed with conan create is copying the sources under ~/.conan/data/.... So filesystems must be different for these two locations. Indeed, I used multipass to spawn Ubuntu VMs, and it internally uses SSHFS to mount local filesystem inside a remote machine. But the local filesystem (APFS in my case) is case-insensitive. And since the models directory was included by the target, the file Limits.h was found and used in place of limits.h. To solve the problem one has several options:.

    #Cloud Computing #Group Chat & Notifications #Virtualization Platform 86 social mentions

  2. 2
    CMake is an open-source, cross-platform family of tools designed to build, test and package software.
    Arguably, CMake is the standard tool to structure and build C++ projects. The tool is very easy and intuitive to use. But sometimes it might get tricky and some unexpected problems might pop up. And it might take a significant amount of time to understand what is going on. In this example I will show one of such problems I encountered recently. I tried to reproduce the problem with a very much simplified project (which can be found here).

    #Front End Package Manager #JavaScript Package Manager #JS Build Tools 51 social mentions

Discuss: Building C++ projects: Know what you build, how you build it and where you build it.

Log in or Post with