概述build议在Linux下使用C ++开发源代码(CMake作为生成器)
有人可以提出一些在linux下使用C ++时组织源文件和pipe理构build的良好实践。 我使用CMake来pipe理我的构build,尽pipe在这个时候我不使用复杂的构造。 让我们说,我们有以下三种情况。
1.对于makefile应用程序来简单地从简单的.cpp和.h文件构build一些可执行文件
2.创build一个使用其他stream行的共享库的静态/共享库,例如OpenCV和OpenGL。
3.更复杂的types,例如,让我们说,我们需要创build一个可执行文件,其源文件使用外部库,如OpenCV,也是我们自己build立的自定义静态库(例如,一个自定义的静态库,用上面的步骤2构build)。
我相信你们中的许多人在构build过程并不那么简单的复杂的库项目上工作。 我非常期待开源软件爱好者和黑客们为开源项目做出的贡献。 你们如何组织你的源代码?
在windows环境中使用Etsy的StatsD
为什么控制台上的信号处理没有输出?
通过复制Bin> DeBUG文件夹内容来安装应用程序有什么问题?
为什么我不能用LD_PRELOAD拦截bash中的write(2)?
使用native / C ++代码在VS2010中创build一个简单的COM对象最简单的方法是什么?
由于您使用的是CMake,因此我建议您使用源代码构建(完全位于项目根目录的外部或build子目录中)。同时使用多个配置和/或编译器时,可以创建一个单独的构建目录每一个。
在项目根目录下的CMakeLists.txt中,我设置了src子目录中所有CMakeLists.txt文件使用的东西。 我将可执行文件和库的所有源代码放在src子目录中,通常我将组成单个库或可执行文件的源与src自己的子目录一起分组,并附带描述如何构建它的CMakeLists.txt 。 我通常不会从源文件中分离包含文件。
我也有项目根目录中的cmake子目录,我把特定于CMake的文件,如发现模块,在我的情况下,一个特殊的cmake模块修复了Eclipse IDE自动发现的路径。
|–cmake | | | |–FindXXX.cmake | |–src | | | |–projectABC | | | | | |–CMakeLists.txt | | | |–library1 | | | | | |–CMakeLists.txt | | | |–library2 | | | |–CMakeLists.txt | |–CMakeLists.txt | |–build-release |–build-deBUG |–build-msvc-release |–[…]
我建议通过主题来组织源代码,并有单独的二进制(或对象)目录。 头文件和源文件在同一个目录下。 每个不同编译器或平台的一个目录:
FIElds |– src | fIEld_int.hpp | fIEld_int.cpp | |– obj_linux_gcc | | | |– deBUG | | | |– release | |– obj_windows_gcc | |– obj_visual_studio
近年来,在不同的商店里,我发现将头文件和源文件分开放在不同的目录中,而不考虑主题,是一种维护的痛苦,也需要很长的时间去认识。
“这只是我的看法,我可能是错的。” – 丹尼斯·米勒,喜剧演员
总结
以上是内存溢出为你收集整理的build议在Linux下使用C ++开发源代码(CMake作为生成器)全部内容,希望文章能够帮你解决build议在Linux下使用C ++开发源代码(CMake作为生成器)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容