添加子目录
在当前工作区添加子目录时,在引用子目录中文件时需要加上相对路径.
在CMakeLists.txt中添加
1 | add_subdirectory([子目录]) |
即可直接包含子目录中文件
添加库文件
此时的CMakeLists.txt如下,我们创建了一个名为adder的子目录,并添加add_subdirectory(adder)
1 | #build所需要的最低CMake版本号 |
此时的文件组织结构为
helloworld
├── adder
├── build
├── CMakeLists.txt
└── helloworld.cpp
adder中包含adder.h adder.cpp
1 | adder.h |
此时helloworld.cpp
1 |
|
此时我们使用CMake命令生成makefile,make后会出现类似于以下报错
undefined reference to `add(double, double)'
这是什么问题呢?
尽管helloworld.cpp中包含了adder.h头文件,但是也知识包含了头文件,并没有其真正的实现,这时候就需要adder.cpp编译后,被链接进可执行文件中.
所以还需要编译adder.cpp并在CMakeLists.txt中添加链接语句
在adder文件夹下添加CMakeLists.txt
1 | add_library(adder adder.cpp) |
添加链接语句
1 | #添加链接文件夹,在build文件夹下 |