CMake编译中的库文件和头文件链接是什么
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了CMake编译中的库文件和头文件链接是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CMake编译中的库文件和头文件链接是什么文章都会有所收获,下面
千家信息网最后更新 2025年11月07日CMake编译中的库文件和头文件链接是什么
这篇文章主要介绍了CMake编译中的库文件和头文件链接是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CMake编译中的库文件和头文件链接是什么文章都会有所收获,下面我们一起来看看吧。
外部库文件、头文件链接
指令
头文件搜索路径
INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...)
[AFTER|BEFORE] :添加方式,默认
AFTER AFTER:在后方进行追加内容(新加入内容在后)
BEFORE:在前方进行追加内容(新加入内容在前)
dir:头文件路径地址,含有空格的路径应用双引号括起
链接库文件
LINK_DIRECTORIES(directory1 directory2 ...)
directory:库文件名称
该指令用于添加非标准共享库搜索路径。
TARGET_LINK_LIBRARIES(target library1library2 ... )
target:被链接的对象library:库名称
实例
此处采用之前生成安装好的库文件libhello.so进行演示。
新建工程空间
首先,新建工程文件并定义工程CMakeLists.txt文件。
# 新建工程空间t4mkdir -p ~/cmake_test/t4cd ~/cmake_test/t4# 新建子目录srcmkdir src# 新建工程CMakeLists.txtvim CMakeLists.txt
子目录src用于存放源代码,工程根目录下的CMakeLists.txt内容如下:
# 工程名PROJECT(NEWHELLO)# 添加源码目录ADD_SUBDIRECTORY(src)
定义src内容
进入子目录src,新建源文件main.cpp
# 进入src子目录cd ~/cmake_test/t4/src# 新建源文件vim main.cpp
main.cpp文件内容如下:
// main.cpp#includeusing namespace std;int main(){ HelloFunc(); return 0;}
源文件中调用了之前封装的HelloFunc函数,应将其头文件及链接进行定义。在src目录中新建CMakeLists.txt,其内容如下:
# 添加头文件搜索路径INCLUDE_DIRECTORIES(/usr/include/hello)# 添加链接TARGET_LINK_LIBRARIES(main libhello.so)# 生成目标二进制文件ADD_EXECUTABLE(main main.cpp)
上述语句,将动态库libhello.so同main进行链接,并将头文件加入搜索路径中。此外,也可以选择链接静态库libhello.a,只需将其修改为如下即可:
# 添加链接TARGET_LINK_LIBRARIES(main libhello.a)
编译
在t4根目录中新建build子目录用于编译:
# 新建build子目录cd ~/cmake_test/t4mkdir build & cd build# 构建cmake ..# 编译make -j12
此时,将在build/src中生成可执行二进制文件main,运行该程序效果如下:
# 运行程序cd ~/cmake_test/t4/build/srcbash main# 程序输出:Hello World
关于"CMake编译中的库文件和头文件链接是什么"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"CMake编译中的库文件和头文件链接是什么"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
文件
链接
内容
库文件
编译
工程
子目
子目录
路径
搜索
源文件
知识
程序
二进制
名称
指令
根目录
目录
空间
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳网星网络技术有限公司
上海网络技术分类工程
地瓜网络技术包下载
前端要求数据库
软件开发部长要求
上海常见日志审计服务器
数据库备份数据类型
g20网络安全保障方案
网络安全建设评价体系
怎样建立学生健康管理数据库
传输网络安全论文
宣传好干部职工网络安全教育
黑客及其网络安全
小米数据库技术员
it软件开发环境是指什么
网络安全宣传周手机体检
河南易佳网络技术有限公司
如何通过华为云服务器
南京服务器安全吗
张群华互联网科技
数据库的基本语句
5g使用蜂窝网络技术
imagenet图像识别数据库
网络安全法规定网络运营应当
matlab程序软件开发
gis开发和软件开发
江西尚师软件开发有限公司
网络安全教育日视频
国内串口服务器品牌
软件开发与信息系统集成行业代码