CMake编译中的库文件和头文件链接是什么
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,这篇文章主要介绍了CMake编译中的库文件和头文件链接是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CMake编译中的库文件和头文件链接是什么文章都会有所收获,下面
千家信息网最后更新 2024年12月13日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安全错误
数据库的锁怎样保障安全
网络安全攻防大赛平台
凯里领信网络技术
高级数据库工程师考试时间
入侵私服服务器
求职简历免费版网络技术
软件开发工程师的主要权限
崇明区网络软件开发问答知识
大型公司网络服务器搭建实例
从事网络安全类工作要学会什么
浦东新区个性化软件开发厂家直销
软件开发公司哪的服务好
二本网络安全工作室好找工作吗
盐城银联软件开发业务流程
国二网络技术考什么
网络安全知识五年级
新东方网络技术有限公司电话
内蒙古网络安全等级测评费用
专科网络技术专业学什么
学软件开发人生计划书
怎么用c 读取的数据库
大兴区运营网络技术售后服务
凯里领信网络技术
甘肃海丰安宁网络安全培训
华三服务器进去安全模式
香港 云服务器管理制度
数据库安全保护与研究
现代软件开发企业核心架构
设置默认值为黑色数据库
软件开发+公司+接单
昌吉软件开发厂家价格