我是一般的编程新手,所以我决定从C ++开始创build一个简单的向量类。 不过,我想从一开始就接受良好的习惯,而不是稍后尝试修改我的工作stream程。 我目前只有两个文件vector3.hpp和vector3.cpp 。 随着我越来越熟悉这个项目,这个项目将慢慢地开始增长(使它更像一个一般的线性代数库),所以我想采用一个“标准”的项目布局,以便以后更容易。 所以在环视后我发现了两种组织hpp和cpp文件的方法,第一种是: project └── src ├── vector3.hpp └── vector3.cpp 第二个是: project ├── inc │ └── project │ └── vector3.hpp └── src └── vector3.cpp 你会推荐哪个,为什么? 其次我想使用谷歌C + +testing框架unit testing我的代码,因为它似乎相当容易使用。 你是否build议把这个与我的代码捆绑在一起,例如在inc/gtest或者contrib/gtest文件夹中? 如果捆绑,你build议使用fuse_gtest_files.py脚本来减less数量或文件,或保持原样? 如果没有捆绑,这个依赖关系是如何处理的? 在编写testing时,这些通常是如何组织的? 我想每个类都有一个cpp文件(例如test_vector3.cpp ),但都编译成一个二进制文件,以便它们都可以轻松地运行在一起。 因为gtest库通常是用cmake和make构build的,所以我认为我的项目也可以这样构build? 如果我决定使用下面的项目布局: ├── CMakeLists.txt ├── contrib │ └── gtest │ ├── gtest-all.cc │ └── gtest.h ├── […]
我怎样才能让CMAKE在特定的条件下产生一个错误。 也就是说,我想要这样的东西: if( SOME_COND ) error( "You can't do that" ) endif()
我目前正在构build一个插件结构的项目。 我正在使用cmake来编译该项目。 插件被编译在单独的目录中。 我的问题是,cmake编译和保存二进制文件和插件,dynamic库,在源的目录结构。 如何让cmake把文件保存在./bin目录中?
是否有可能在64位系统上用cmake和gcc编译32位项目? 这可能是,但我该怎么做呢? 当我尝试“无知”的方式,没有设置任何参数/标志/等,只是设置LD_LIBRARY_PATHfind~/tools/lib的链接库似乎忽略它,只能看名为lib64的子目录。
我在C / C ++上编码并使用(GNU)Makefile来编译代码。 我可以用cmake做同样的事情,并得到一个MakeFile。 不过,我不明白使用Makefile和cmake编译代码有什么区别。
我想知道是否有办法打印出CMAKE中所有可访问的variables。 我对CMAKEvariables不感兴趣,就像在–help-variables选项中一样。 我正在谈论我定义的variables,或者包含脚本定义的variables。 我目前包括 INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake) 并希望能打印出所有这些variables,而不是去查看所有的文件,看看有什么可用的东西 – 我可能会发现一些我不知道的variables可能是有用的。 这将有助于学习和发现。 这是严格的debugging/开发。 类似的问题在打印所有本地variables可访问的Lua当前范围,但cmake! 有没有人做过这个?
我在GNU Make中使用了CMake,希望看到所有的命令(例如编译器是如何执行的,所有的标志等等)。 GNU make有–debug ,但似乎没有任何其他选项有帮助吗? 为了debugging的目的,CMake是否在生成的Makefile中提供了额外的标志?
我如何通过cmake定义预处理器variables? 等效的代码是#define foo 。
Autotools,Cmake和Scons之间有什么区别?
在GCC编译的项目中, 如何为每个目标types运行cmake (debugging/发布)? 如何使用cmake指定debugging和释放C / C ++标志? 如何expression主要的可执行文件将被编译为g++和一个gcc嵌套库?