我是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从未编译过。
发布于 2018-01-21 02:50:00
试试这个:
add_subdirectory(pugixml)
target_link_libraries(MyProject PugiXML)假设PugiXML是由/pugixml中的CMake文件公开的目标名称。
https://stackoverflow.com/questions/48217907
复制相似问题