CmakeLists语法

CmakeLists语法,第1张

注释:以 # 开头

cmake_minimum_required(VERSION 3.4.1) #设置Cmake最小版本

ADD_EXECUTABLE(exeNme 源码位置) #编译为可执行程序

add_library(libName STATIC 源码位置) # 生成静态链接库

add_library(libName SHARED 源码位置) # 生成动态链接库

SET(变量名 变量值) #设置变量

例如:

SET(srcDir main.c) 等价于 srcDir = "main.c"

SET(srcDir main.c demo.c test.c) 等价于 srcDir = "main.c demo.c test.c"

add_executable(debugger ${srcDir})#用 美元符号 使用变量

include_directories(路径族薯乎)#设置头文件搜索路径,以CmakeLists.txt所在目录为根目录.

源文件中可以使用兆悉 <>来引入自己的头文件了,与引入标准库头文件保持格式的一致

例如:

include_directories(header) 则,源码中使用头文件的时候会从CmakeLists.txt所在目录/header 中去寻找

add_subdirectory(mod1 lib)#执行 mod1/CmakeLists.txt文件,并且把输出文件放在lib文件夹,同时会把lib文件夹作为链接库的搜索位置

link_directories(${PROJECT_SOURCE_DIR}/build/lib)#指明链接库的位置,如果程序要使用链接库,请一定要将此命令尽量写的靠前一些,要不然有手兆时候会找不到链接库.我也不知道为什么....

target_link_libraries(exeName libName)#链接 libName,注意,链接之前要指明链接库的位置,如果libName代表动态链接库,则运行的时候需要把它拷贝到exeName同目录下

如果运行程序涉及到了动态链接库,则运行到时候需要把动态链接库拷贝到运行程序所在的文件夹.

例如:

静态链接库 A

静态链接库 B

动态链接库 C

可执行程序 D

A依赖B和C

D依赖A,

则D运行的时候需要把B和C一起拷贝到其目录下.注意,B是静态的,依然要拷贝过去.

头文件包含在cmakelist会影响编译速度吗

1、不会。C语言鼓励模块化编程。

2、头文件太多,互相包含枝配,容易出现一些难以野虚处理颂搭燃的BUG,但是不会影响程序的效率,最多造成编译速度变慢。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12127781.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存