cmake在编译库文件、应用程序中的相关指令解读

道哥分享
关注

5. Application 目录说明

这个目录的编译输出是:一个可执行程序,其中调用了 libUtils 库中的函数。

CMakeLists.txt 文件内容如下:

三、Linux 系统下操作步骤 

1. 创建构建目录 build$ mkdir build

在一个独立的 build 目录中编译,生成的中间代码不会污染源代码,这样对于使用 git 等版本管控工具来说非常的方便,在提交的时候只需要 ignore build 目录即可,强烈推荐按照这样的方式来处理。

2. 执行 cmake,生成 Makefile$ cd build
$ cmake ..

3. 编译 Utils 库$ cd Utils/src
$ make

在 CMakeLists.txt 中的最后部分是安装指令,把产生的库文件和头文件,安装到源码中的 install 目录下。

$ make install

4. 编译可执行程序 Application

Application 使用到了 libUtils.so 库,因此需要手动把 libUtils.so 和头文件,复制到 Application 下面对应的 lib/linux 和 include 目录下。

当然,也可以把这个操作写在 Utils 的安装命令里。

$ cd build/Application/src
$ make

执行生成的可执行程序 main,即可看到输出结果。

四、Widnows 系统下操作步骤 

1. 通过 cmake 指令生成 VS 工程

同样的道理,新建一个 build 目录,然后在其中执行 cmake .. 指令,生成 VS 解决方案,我使用的是 VS2019:

2. 编译 Utils 库文件

使用 VS2019 打开工程文件 DemoApp.sln,在右侧的解决方案中,可以看到:

在 libUtils_shared 单击右键,选择【生成】:

此时,在目录 buildUtilssrcDebug 下面,可以看到生成的文件:

3. 编译可执行程序  Application

因为Application需要使用 Utils 生成的库,因此,需要手动把库和头文件复制到 Application 下面的 lib/win32 和 include 目录下。

在 VS 解决方案窗口中,在 main 目标上,单击右键,选择【生成】:

此时,在目录 buildApplicationsrcDebug 下可以看到生成的可执行程序:

直接单击 main.exe 执行,报错:

需要把 libUtils.dll 动态库文件复制到 main.exe 所在的目录下,然后再执行,即可成功。

五、总结

这篇文章的操作过程主要以动态库为主,如果编译、使用静态库,执行过程是一样一样的。


声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存