【发布时间】:2012-09-27 12:35:23
【问题描述】:
我正在学习 CMake 以构建 C++ 代码,并在以下概念中苦苦挣扎。在我的根目录中,我有一些 cpp 文件和一个 CMakeLists.txt,它成功地在 gen-cpp 目录中生成了一些节俭代码。我的根级 CMakeLists.txt 包含:
include_directories("路径到根目录"/gen-cpp)。 (以及相关的节俭自动生成和包含。
一切编译正常,但我得到运行时动态库链接错误,因为未定义符号引用了 gen-cpp 目录中定义的类。当我将目录中的文件移动到根级别时,它运行良好。我错过了什么? (我还调整了根级 cpp 目录中的 #include 以指向“path-to-root”/gen-cpp)。
这是对使用include_directory的误解,我应该使用add_subdirectory。如果是后者,gen-cpp 中的代码是否需要自己的 CMakeLists.txt?当所述目录的内容是根级别时,为什么不需要这个附加文件?
【问题讨论】: