CMake 实践与踩坑记录(四)

如何使用外部共享库和头文件

**本篇主要参考文档的第六章(26~30页) **

本节仍然继续折腾Hello World。

上一节我们已经完成了libhello动态库的构建以及安装,本节我们的任务很简单:编写一个程序使用我们上一节构建的共享库。

1、准备工作:

请在cmake目录建立t4目录,本节所有资源将存储在t4目录:

cd cmake
mkdir t4

2、重复以前的步骤,建立src目录,编写源文件main.c,内容如下:

#include <hello.h>
int main()
{
   
    HelloFunc();
    return 0;
}

编写工程主文件CMakeLists.txt(t4目录下)

PROJECT(NEWHELLO)
ADD_SUBDIRECTORY(src)

编写src/CMakeLists.txt

ADD_EXECUTABLE(main main.c)

上述工作已经严格按照我们前面章节提到的内容完成了,tree一下目录:

在这里插入图片描述

3、外部构建

按照习惯,仍然建立build目录,使用cmake ..方式构建。

过程:

cmake ..
make

构建失败,如果需要查看细节,可以使用第一节提到的方法

make VERBOSE=1

来构建

错误输出为是:

/home/wh/cmake/t4/src/main.c:1:19: fatal error: hello.h: 没有那个文件或目录

4、引入头文件搜索路径

hello.h位于/usr/include/hello目录中,并没有位于系统标准的头文件路径,(有人会说了,白痴啊,你就不会include <hello/hello.h>,朋友,要这么干,这一节就没什么可写了,只能选择一个glib或者libX11来写了,这些代码写出来很多朋友是看不懂的)

为了让我们的工程能够找到hello.h头文件,我们需要引入一个新的指令

INCLUDE_DIRECTORIES,其完整语法为:

INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值