如何将 python 目录包含到 CMakeList.txt 文件中

如何解决如何将 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?