cmake使用整理

1.cmake使用的文件是CMakeLists.txt

2.cmake中的指令是不区分大小写的,但里面的变量名,参数名,文件名是区分大小写的,建议指令全部用大写,参数之间用空格或者分号分开

3.cmake预定义了PROJECT_BINARY_DIR即编译文件产生的目录PROJECT_SOURCE_DIR变量即工程CMakeLists.txt所在的目录

4.project(projectname [CXX] [C] [JAVA]),工程指令,隐式定义了两个变量projectname_BINARY_DIR,projectname_SOURCE_DIR,但推荐使用PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR变量,因为如果工程指令名修改了,使用的变量名也要修改,后面的支持语言列表可以省略。

5.set (name [value] [CACHE TYPE DOCSTRIG [FORCE]])   //设置变量

获取变量 ${name}

例:

set (src_list main.c 1.c 2.c)        或者      set(src_list main.c;1.c;2.c)           //多个文件时用空格或者分号分隔,不能用引号引起

set(src_list "main.c 1.c 2.c") //这种写法是错误的

6.message([STATUS|SEND_ERROR|FATAL_ERROR] "message to display")//向终端输出消息,注意这里的STATUS,SEND_ERROR,FATAL_ERROR都要是大写

STATUS向终端输出前缀为--的信息

SEND_ERROR产生错误,生成过程被跳过

FATAL_ERROR立即终止所有cmake过程

7.add_executable(main.exe ${src_list})//指定生成可执行文件为main.exe 使用的文件为文件列表src_list的内容

也可以写成add_executabele(main.exe main.c 1.c 2.c),但不可以给变量src_list加双引号

add_executabele(main.exe “${src_list}”)是错误的

8.内部编译与外部编译

在当前目录中有CMakeLists.txt,还有源码文件,在当前目录执行

cmake .

make

就会产生编译好的文件还有makefile等,但文件太多,如果想删除产生的文件也比较麻烦。这就是内部编译。

在当前目录中有CMakeLists.txt和源码文件,在当前目录新建一个临时目录如build

cd build

cmake ..

make

就会在build目录里产生编译的文件,这就是外部编译。

9.include_directories(目录1 目录2)//指定工程头文件搜索目录

如INCLUDE_DIRECTORIES($ENV{WORK_DIR}/thirdparty/include/python2.6 $ENV{WORK_DIR}/thirdparty/include/uoa)

10.link_directories(目录1 目录2)//指定链接库的搜索目录

如LINK_DIRECTORIES($ENV{WORK_DIR}/thirdparty/lib $ENV{WORK_DIR}/sqlapi)

11.add_library(libname [SHARED|STATIC|MODULE] [EXCLUDE_FROM_ALL] source1 source2)//指定要生成库文件

libname不需要写全为libname.so,只要写成name即可。

SHARED,动态库

STATIC,静态库

MODULE,在使用dyld的系统有效,否则被当作SHARED对待。

EXCLUDE_FROM_ALL参数的意思是这个库不会被默认构建,除非有其他的组件依赖或者手工构建。

12.LIBRARY_OUTPUT_PATH      变量设置编译生成的目标库的产生目录

如SET( LIBRARY_OUTPUT_PATH ${SOURCE_DIR}/lib )//注意LIBRARY_OUTPUT_PATH必须要在add_library之前设置才有效,LIBRARY_OUTPUT_PATH和add_library必须要在同一个CMakeLists.txt中

13.EXECUTABLE_OUTPUT_PATH      变量设置编译生成的目标程序的产生目录

如SET( EXECUTABLE_OUTPUT_PATH ${SOURCE_DIR}/bin) //注意EXECUTABLE_OUTPUT_PATH必须要在add_executable之前设置才有效,EXECUTABLE_OUTPUT_PATH和add_executable必须要在同一个CMakeLists.txt中

14.TARGET_LINK_LIBRARIES(target lib1 lib2)//指定目标程序或者库在编译进要链接哪些库

如TARGET_LINK_LIBRARIES(main.exe lib1 lib2)//lib1即liblib1.so或者liblib1.a,该指令在add_library和add_executable指令之后使用

15.aux_source_directory(dir variable)//把目录下的所有源文件存储在一个变量中

16.FILE( GLOB FILES_LIST "*" )//把当前目录下所有的文件名存储到FILES_LIST中,“*”是一个匹配表达式

17.add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])//这个指令是添加子工程目录,同时可以指定生成的二进制文件目录为binary_dir,如果是外部编译则会在执行目录下产生binary_dir,如果没有指定binary_dir,则会产生source_dir。可以理解为产生source_dir并重命名。EXCLUDE_FROM_ALL表示不编译目录。二进制文件的产生可以被LIBRARY_OUTPUT_PATH,EXECUTABLE_OUTPUT_PATH重新指定。

     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VS Code中使用CMake可以按照以下步骤进行操作: 步骤1:安装CMake插件 首先,打开VS Code并进入扩展(Extensions)视图。在搜索栏中输入"CMake Tools",然后选择并安装"CMake Tools"插件。这个插件提供了对CMake的集成支持,可以方便地进行项目配置和构建。 步骤2:打开CMake项目文件夹 在VS Code中,打开你的CMake项目所在的文件夹。可以使用菜单栏的"文件(File)" > "打开文件夹(Open Folder)"选项,或者使用快捷键Ctrl+K Ctrl+O来打开文件夹。 步骤3:配置CMake工具链 在VS Code底部的状态栏中,你会看到一个CMake Tools的图标。点击该图标,然后选择"Edit User-Local CMake Kits"来编辑CMake工具链配置文件。 在工具链配置文件中,你可以指定CMake的生成器、工具链路径等信息。根据你的开发环境和需求进行相应的配置。 步骤4:配置CMake项目 在VS Code中,使用菜单栏的"查看(View)" > "命令面板(Command Palette)",者使用快捷键Ctrl+Shift+P来打开命令面板。 在命令面板中输入"CMake: Configure",然后选择"CMake: Configure"命令。这将会运行CMake来配置你的项目。 步骤5:构建CMake项目 在命令面板中输入"CMake: Build",然后选择"CMake: Build"命令。这将会使用CMake进行项目构建。 步骤6:运行CMake项目 如果你的CMake项目是一个可执行文件项目,可以在命令面板中输入"CMake: Run",然后选择"CMake: Run"命令来运行项目。 这些是使用VS Code进行CMake项目开发的基本步骤。你也可以根据具体需求进一步配置和调整。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值