如何解决如何将 python 目录包含到 CMakeList.txt 文件中
这是我的 CMakeList.txt 文件,我想包含 python3.9 目录并希望链接 python3.9 路径下的所有头文件和库。当我使用命令行运行它时,我使用了以下命令
g++ data.cpp -std=c++11 -I/usr/include/python3.9 -lpython3.9 -I/Opt/mongo-cxx-driver/include/mongocxx/v_noabi -I/Opt/mongo-cxx-driver/include/libmongoc-1.0 -I/Opt/mongo-cxx-driver/include/bsoncxx/v_noabi -I/Opt/mongo-cxx-driver/include/libbson-1.0 -L/opt/mongo-cxx-driver/lib64 -lmongocxx -lbsoncxx
上面的命令运行良好,但是当我使用以下 CMakeList.txt 文件进行构建时。但它没有链接我的 python 库。我在做什么错?请帮忙
cmake_minimum_required(VERSION 3.2)
set(CMAKE_CXX_STANDARD 11)
add_subdirectory(../dlib dlib_build)
add_executable(testmongo data.cpp)
INCLUDE_DIRECTORIES("/usr/include/python3.9")
find_package(libmongocxx required)
find_package(libbsoncxx required)
include_directories(${libmONGOCXX_INCLUDE_DIR})
include_directories(${LIBBSONCXX_INCLUDE_DIR})
include_directories("/opt/mongo-cxx-driver/include/mongocxx/v_noabi")
include_directories("/opt/mongo-cxx-driver/include//bsoncxx/v_noabi")
include_directories("/opt/mongo-cxx-driver/include/libmongoc-1.0")
include_directories("/opt/mongo-cxx-driver/include/libbson-1.0")
include_directories("/opt/mongo-cxx-driver/lib64")
target_link_libraries(testmongo ${libmONGOCXX_LIBRARIES})
target_link_libraries(testmongo ${LIBBSONCXX_LIBRARIES})
target_link_libraries(testmongo dlib::dlib)
target_link_libraries(testmongo ${PYTHON_LIBRARIES})
除了python库链接外,一切都很好
解决方法
include_directories
影响在它之后声明的目标。
add_executable(blabla ...) # does not use /some/dir
include_directories(/some/dir) # change!
add_executable(blabla2 ...) # uses /some/dir!
但根本不要使用 include_directories
。改用 target_include_directories
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。