matplotlib-cpp+python2.7+cmake

之前在一个C++项目当中进行了一些数学运算,打算加入python的matplotlib进行画图,因为它有C++接口,可以直接在C++进行调用。

但是配置好了以后,运行发现以下错误:


(process:8247): Gtk-ERROR **: 11:14:04.754: GTK 2/3 symbols detected. Using GTK 2/3 and GTK 4 in the same process is not supported
追踪与中断点陷阱 (核心已转储)

原因可能是这个项目里面同时使用了GTK 2/3 和GTK 4,所以导致不兼容而报错。针对这个原因,检索了一些相关的资料,python3对应的matplotlib所使用的就是GTK 4,所以大概率是我原来的项目使用了GTK 2/3。

好在查阅了资料后知道python2对应的matplotlib所使用的是GTK 2/3,那么只需要把对应的python版本换成2的即可。在CMakelists.txt中这样写:


# 查找python库版本
find_package(PythonLibs 2 REQUIRED)

# 找到 NumPy 的头文件路径
execute_process(
    COMMAND python2 -c "import numpy; print(numpy.get_include())"
    OUTPUT_VARIABLE NUMPY_INCLUDE_DIRS
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

# 添加头文件路径
include_directories(
    ${PYTHON_INCLUDE_DIRS}  # Python 头文件路径
    ${NUMPY_INCLUDE_DIRS}   # NumPy 头文件路径
)

# 打印 Python 和 NumPy 相关信息
message(STATUS "Python include dirs: ${PYTHON_INCLUDE_DIRS}")
message(STATUS "Python libraries: ${PYTHON_LIBRARIES}")
message(STATUS "NumPy include dirs: ${NUMPY_INCLUDE_DIRS}")

最后记得链接上库,project_cmake替换成你的项目生成文件


# Link your application with OpenCV libraries
target_link_libraries(project_cmake ${PYTHON_LIBRARIES})

后面还有一些问题,在这个博客中得到了解决:
解决:ImportError: No module named '_tkinter', please install the python3-tk package_python3ideno module thinker-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值