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 所在的目录下,然后再执行,即可成功。
五、总结
这篇文章的操作过程主要以动态库为主,如果编译、使用静态库,执行过程是一样一样的。