我是CMake的新手,无法理解如何使用它。

我有一个跨平台的c++项目。它使用CMake构建,我的CMakeLists.txt与项目一起存放在名为MyProject的文件夹中。我 checkout 了一个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文件公开的目标名称。

关于c++ - CMake和pugixml,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48217907/

10-09 05:05