我正在开发一个相当大的 C++ 项目,我决定将源文件分成不同的模块,以便管理它们更容易一些。但是,我在使用 CMake 将文件链接在一起时遇到了问题。
所以我有两个库,都包含一些 .cpp 和 .h 文件以及一个 main.cpp 文件。该项目的目录结构如下所示:
root
|-- library1
| |-- lib1.cpp
| |-- lib1.h
| `-- CMakeLists1.txt
|
|-- library2
| |-- lib2.cpp
| |-- lib2.h
| `-- CMakeLists2.txt
|
|-- main.cpp
|-- main.h
`-- CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)
库 2 依赖于库 1,而 main.cpp 依赖于它们两者。 我可以很容易地将 main.cpp 和 main.h 链接在一起,并在 main.cpp 中使用 main.h 中的函数。库 1 和 2 也是如此。
但我无法将库 1 链接到库 2 或其中任何一个链接到我的 main.cpp。我的主文件如下所示:
#include <iostream>
#include "main.h"
#include "lib1.h" // linking error at this line: …Run Code Online (Sandbox Code Playgroud)