Python嵌入的C代码编译错误
Python embedded C code compilation error
我最近买了一台新电脑,并试图将一个python项目从旧电脑移到新电脑上。python项目使用了一些directx9 C++代码(带有#include<;python.h>;)来进行屏幕截图并编译我使用G++的这个C++文件。
在没有更改任何代码的情况下,在安装G++和Python后,我发现我用来编译代码的东西返回了一个错误:
g++ -std=c++11 -shared -IC:Python27include -LC:Python27libs ScreenShots/PictureStr.cpp -lpython27 -ld3d9 -lole32 -o ScreenShots/PictureStr.pyd
返回这个:
C:Python27libs/libpython27.a: error adding symbols: File format not recognized
collect2.exe: error: ld returned 1 exit status
(移除-ld3d9-lole32不会改变任何东西)
我不知道为什么会发生这种情况(在我尝试过的任何其他电脑或我的旧电脑上都没有发生),我也找不到任何可能导致这种情况的原因。
如果这是相关的,我使用windows 10 64位(在我的旧电脑和新电脑中)。
也许我需要重新编译python-libs或那个特定的文件,所以关于如何做到这一点的任何建议也非常感谢。
感谢您阅读本文,欢迎您提出任何建议。
"我找到了解决办法,"我大声回答。
我试着将libpython27.a从我的旧电脑复制到我的新电脑,并再次尝试使用gcc,结果成功了,新的64位python 2.7安装libpython27.a似乎坏了。如果其他人遇到这个问题,请尝试重新创建您的libpython27.a文件。
要重新创建libpython.a运行:
pexports "C:WindowsSysWOW64python27.dll" > "C:Python27libspython27.def"
dlltool --dllname "C:WindowsSysWOW64python27.dll" --def "C:Python27libspython27.def" --output-lib "C:Python27libslibpython27.a"
其中C:Python27
是您的python文件夹,如果是32位计算机,则应该是System32而不是SysWOW64。
要安装pexports,请安装mingw并运行mingw-get-install-pexports。
相关文章:
- 如何修复sfml c++代码编译错误
- 尝试用java代码编译和运行c++代码
- 此代码编译良好,但文件未创建?请指出错误
- 为什么我的 BaseClass:Method 代码编译(带有单冒号)?
- 代码编译没有任何输出,入门程序
- 通过Python Distutils(用于Python C扩展)使用可重定位的设备代码编译CUDA代码
- 代码编译但不起作用!cmd窗口只是理想和理想,但什么也没发生
- 无法使用 g++ 使用C++代码编译 C 库
- 如何在Ubuntu中使用Visual Studio代码编译C++代码
- 推力+提升代码编译错误
- C++代码编译,但在 Zorin OS 上运行时显示错误
- 如何在使用模板时将 CPP 代码编译到库文件中
- 是否可以将Visual Studio 2017将C 代码编译到EXE以外的文件类型中
- 使用 Visual Studio for C++ 代码编译错误
- 使用 Android Studio 使用本机代码编译 apk 时,如何在链接处删除 libgnustl_static.
- 使用 Emscripten 将 OpenCV 代码编译C++ Javascript
- 将C 代码编译到独立应用程序.App
- 为什么此代码编译 (C++11) 而没有类型不匹配错误
- 重用编译器前端的结果,以加快多个配置/平台的C++代码编译
- 如何将C++11代码编译为网络汇编