这是我的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库链接之外,其他一切都很好。
发布于 2021-04-07 00:59:30
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。
https://stackoverflow.com/questions/66972894
复制相似问题