c++项目包含两个python版本,但是运行时只能链接到先查找到的那个

6天前 (02-14 16:25)阅读51回复0
wait
wait
  • 总版主
  • 注册排名2
  • 经验值5
  • 级别网站编辑
  • 主题1
  • 回复0
楼主

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也不管用

本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。

本文地址:https://www.pyask.cn/info/3450.html

0
回帖

c++项目包含两个python版本,但是运行时只能链接到先查找到的那个 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息