我是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/