reference来源于6.5 【实战】CMake代码实践_哔哩哔哩_bilibili
笔记主体记录于纸质讲义, 这里主要记录一些图片笔记
6.4.2.1 内部构建:
先手动新建一个cmakelists.txt,会自动识别并配置图标.
cmake. 后:
make 后: 生成了可执行文件target. target名字是之前通过add_executable命令指定的.
内部构建会产生冗余文件,其实只需要保存如下这两个文件:
改为外部构建: 先要删除上面内部构建生成的中间文件.
外部构建:
![](https://img-blog.csdnimg.cn/b3a3c52437c645c0b7202bc25b9403a0.png)
![](https://img-blog.csdnimg.cn/764ad883be3a4f8ea2dd77cbda52a0f4.png)
![](https://img-blog.csdnimg.cn/83a324d5d56e4993a83607ead93963bd.png)
f11下一步且会进入到函数里面. f5开始调试. f10直接下一步,不会进入函数里面.
工程项目cmake
├── data
├──images
├──0.png(输入图像)
├──masks(模型结果)
├── model
├──CMakelists.txt
├──resunet.wts(模型参数文件)
├── build
│ ├── CMakeCache.txt
│ ├── CMakeFiles
│ ├── Makefile
│ ├── cmake_install.cmake
│ ├── bin
└── my_cmake_exe
├── mylib(我们内部自己写好的库,编写为inference.so. 需要链接第三方库. )
├──include
└── inference.h
├──src
├──inference.cpp
├──CMakelists.txt
└── src (用于对编写好的mylib进行测试)
├── main.cpp
└── CMakelists.txt
├── third_lib
├── include
├──cuda (要用下面的cudnn.so必须要在头文件声明.头文件的作用就是提供接口)
├── lib
├──libcudnn.so
└── test_lib
├── data
├──include
├── lib
├── model
├── third_lib
├── readme.txt
├── CMakelists.txt
![](https://img-blog.csdnimg.cn/e0e251376e594224b92c7c1cf9908a77.png)
src中的cmakelists.txt
mylib下的cmakelists.txt