前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >omnet++ 中c++调用python的常见错误和解决

omnet++ 中c++调用python的常见错误和解决

原创
作者头像
PERSEUS
发布2023-11-05 00:48:33
4550
发布2023-11-05 00:48:33
举报
文章被收录于专栏:车联网仿真

本次分享使用的是 32 位 mingw,32 位 python3.7。

1、错误和解决:

错误1:undefined reference to '_imp__Py_Initialize':

报错原因:没有使用 32 位的 python37.lib 或者是没有在编译的时候引用 python37.lib,如果当前的 mingw 是 32 位的,那么 python 就用 32 位的。

错误2:ld.exe: cannot find -lpython37.lib:

报错原因:没有正确引用 python37.lib 或者没有 python37.lib 这个文件,应该直接使用 -lpython37,不要 .lib后缀。

解决错误1和2:

1、使用 32 位的 python。 2、在项目编译时加上引用、连接上所需的文件(详看下面第二节):编译时加上命令:-LC:/Python37-32/libs/(plthon37.lib所在路径),-lpython37(python37.lib)

错误3:应用程序无法正常启动0xc000007b

报错原因:没有使用 32 位的 python,(也可能环境变量中32位的被前面的覆盖了)

错误4:找不到 ibgcc_s_dw2-1.dll:

报错原因:mingw32/bin目录下没有这个库。

解决错误3和4:

1、环境变量一定是32位的mingw下的mingw32下的bin,检查有没有被覆盖,我就是这样被坑了好久。(如:C:\MinGW\mingw32\bin\) 2、其次将 MinGW\bin\ 目录下的 libgcc_s_dw2-1.dll 文件复制到 MinGW\mingw32\bin\ 中。粗暴但是好用。

错误5:Permission denied:

报错原因:程序正在运行,在任务管理器中把运行的 .exe 程序关掉就好。

2、完整过程:

1、下载 pyDev:

点击:Help -> Install New Software -> Add。在弹出的窗口中填写内容:Name:PyDev,Location:http://pydev.org/updates,点击Add。随后选中 PyDev 并下载。如果上面这个网址不好使的话可以换成下面这个试试看:https://dl.bintray.com/fabioz/pydev/old/

2、配置 python 解释器:

点击:Window -> Preferences -> PyDev -> Interpreters -> Python Interpreter;在右边 Browse for python 按钮中选中本地 python 目录下的 python.exe,点击Apply and Close。

3、设置编译选项

右键当前项目 -> Properties -> C/C++ General -> paths and symbols,在右边 Includes 中点击 Add 加入 \Python37-32\include 和 \Python37-32\libs,另外在 Libraries 选项卡下点击 Add 加入 python37目录,在 library Paths 选项卡下点击 Add 加入 \Python37-32\libs 目录,点击Apply and Close:

4、编译当前项目,运行相应python程序。

以上是本次分享全部内容!

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

邀请人:千万别过来

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、错误和解决:
  • 2、完整过程:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档