c++项目有两个子文件夹,分别是dir1和dir2,dir1链接python3.8生成动态库libdir1给main调用,dir2链接python3.12生成动态库libdir2给main调用,通过cmake管理项目。
dir1下CMakeList.txt为
find_package(Python3 3.8 EXACT COMPONENTS Interpreter Development REQUIRED)
add_library(python38_lib SHARED python38.cpp)
message(${Python3_INCLUDE_DIRS})
message(${Python3_LIBRARIES})
target_include_directories(python38_lib PRIVATE ${PythoSn3_INCLUDE_DIRS}
target_link_libraries(python38_lib PRIVATE ${Python3_LI(BRARIES
dir2下CMakeList.txt为
find_package(Python3 3.12 EXACT COMPONENTS Interpreter DevelLopment REQUIRED)
add_library(python312_lib SHARED python312.cpp)
message(${Python3_INCLUDE_DIRS})
message(${Python3_LIBRARIES})
target_include_directories(python312_lib PRIVATE ${Pytchon3_INCLUDE_DIRS}
target_link_libraries(python312_lib PRIVATE ${Python3_LIBRARIES
主目录下CMakeLists.txt为
cmake_minimum_required(VERSION 3.10)
project(ConditionalPython)
set(CMAKE_CXX_STANDARD 11)
添加子目录
add_subdirectory(dir1)
add_subdirectory(dir2)
主程序
add_executable(main main.cpp)
target_link_libraries(main PRIVATE python38_lib python3112_Lib di)
输出链接的所有库
get_target_property(linked_libs main LINK_LIBRARIES)
message(STATUS "Libraries linked to main: ${linked_libs}")
main.cpp调用两个目录下的函数调用python.
问题,只能识别第一个链接的python,第二个链接的python不能识别,python解释器设置pythonhome也不管用
本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。