CMake是一个主要用于CPP的构建工具。CMake语言是平台无关的中间编译工具。同一个CMake编译规则在不同系统平台构建出不同的可执行构建文件。在Linux产生MakeFile,在Windows平台产生Visual Studio工程等。CMake旨在解决各平台的不同Make工具的产生的差异(比如GNU Make, QT的qmake,微软的nmake, BSD的pmake)。
4. 高级应用:结合 file 命令与其他 CMake 功能 4.1 find_package 与 file 的联合应用 动态资源文件的管理 4.2 高效的头文件和库文件查找策略 使用file 命令优化查找 4.3 动态生成源文件列表:实例与应用 条件文件遍历 5. CMake 的最佳实践与 file 命令 5.1 手动 vs 自动文件列表 利弊权衡 心理学视角:决策疲劳...
所以,这里set的意思是把存放elf文件的位置设置为工程根目录下的bin目录。(cmake有很多预定义变量,详细的可以网上搜索一下) 添加好以上这2个CMakeLists.txt后,整体文件结构如下: 4.3 运行查看 下面来运行cmake,不过这次先让我们切到build目录下: cd build cmake .. make 这样Makefile会在build目录下生成,二进制...
set_tests_properties(demo_test PROPERTIES PASS_REGULAR_EXPRESSION"5") 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. build是编译目录,方便编译出错时,清除生成的缓存文件 cdbuild //进入编译目录 cmake .. //编译主目录的CMakeLists.txt make//编译生成的MakeFile.txt ...
用于处理 CMake 对源码的设置configure_file("${PROJECT_SOURCE_DIR}/config.h.in""${PROJECT_BINARY_DIR}/config.h")# 是否加入 MathFunctions 库if(USE_MYMATH)include_directories("${PROJECT_SOURCE_DIR}/math")add_subdirectory(math)set(EXTRA_LIBS${EXTRA_LIBS}MathFunctions)endif(USE_MYMATH)# 查找...
set(SRC_FILES main.cpp file1.cpp file2.cpp # ... ) 四、使用CMake编译多个源文件 在大型项目中,通常会有多个源文件需要编译。你可以使用add_executable命令来指定每个可执行文件及其对应的源文件列表。例如,如果你有多个源文件需要编译成不同的可执行文件,你可以这样做: cmake_minimum_required(VERSION 3.10...
set(CMAKE_CXX_STANDARD_REQUIRED ON) # 指定为C++11 版本set(CMAKE_CXX_STANDARD 11) # 指定版本号的配置文件 configure_file(include/TutorialConfig.h.in TutorialConfig.h) # # 指定为C++14 版本# set(CMAKE_CXX_STANDARD 14) # 增加生成可执行文件,生成的程序名称为:tutorial_first add_executable(...
可以自动生成 Makefile、Visual Studio 等 IDE 的工程文件,从而简化了软件的编译过程。 可以轻松的管理依赖库,将代码组织成模块等。 支持多种编程语言,包括 C、C++、Fortran、Java、Python 等。 虽然CMake 是一个非常强大的构建工具,但是它也有一些缺点,比如语法比较复杂,需要一定的学习成本。
# link library in static mode target_link_libraries(demo libuuid.a) 另外,使用cmake生成makefile之后,make edit_cache可以编辑编译选项。 不熟悉的命令可以去查找文档,贴个cmake3.0官方帮助文档地址 https://cmake.org/cmake/help/v3.0/index.html
cmake .. #会生成makefile定义编译规则等中间文件 make -j6 #利用make可以编译生成可执行文件,-j6调用6核进行编译,-j调用所有资源编译 ./main #运行可执行文件 3.重新生成make clean #在build文件夹下 make clean #清除生成的可执行文件 make -j6