我是CMake的新手,很难理解如何使用它。
我有一个跨平台的 c++ 项目。它使用 CMake 构建,我的CMakeLists.txt
与项目一起位于一个名为 MyProject
的文件夹中。我检查了一个 pugixml git 子模块,它现在存在于 MyProject/pugixml
下,其源代码在 MyProject/pugixml/src
下。但是,它有自己的CMake文件:MyProject/pugixml/CMakeLists.txt
。
如何修改我的CMakeLists.txt
以构建和使用 pugixml?我尝试了类似的东西
include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${GENERATED_HEADER_OUTPUT_DIRECTORY} pugixml/src)
和
add_library(PugiXML deps/pugixml/src/pugiconfig.hpp deps/pugixml/src/pugixml.cpp deps/pugixml/src/pugixml.hpp)
和
add_subdirectory(pugixml)
有不同的组合(这些是我在 Github 上找到的示例(,但它不起作用 - 我得到unresolved external symbol
错误,所以我假设 cpp 从未被编译过。
试试这个:
add_subdirectory(pugixml)
target_link_libraries(MyProject PugiXML)
假设 PugiXML
是 /pugixml
中的 CMake 文件公开的目标名称。