dlltool 因 python27.def 文件而失败

我想从 python27.dll (C:Windows/SysWOW64) 创建 libpython27.a


我的Linux:


/usr/i686-w64-mingw32/bin/dlltool  -A --dllname python27.dll --def python27.def --output-lib libpython27.a

/usr/i686-w64-mingw32/bin/dlltool: Syntax error in def file python27.def:11

使用 -v 运行 dlltool,我得到:


/usr/i686-w64-mingw32/bin/dlltool: Using file: /usr/i686-w64-mingw32/bin/as

/usr/i686-w64-mingw32/bin/dlltool: Processing def file: python27.def

��/usr/i686-w64-mingw32/bin/dlltool: Syntax error in def file python27.def:11

/usr/i686-w64-mingw32/bin/dlltool: Processed def file

/usr/i686-w64-mingw32/bin/dlltool: Processing definitions

/usr/i686-w64-mingw32/bin/dlltool: Processed definitions

/usr/i686-w64-mingw32/bin/dlltool: Creating library file: libpython27.a

/usr/i686-w64-mingw32/bin/dlltool: run: /usr/i686-w64-mingw32/bin/as   -o dlumbh.o dlumbh.s

/usr/i686-w64-mingw32/bin/dlltool: run: /usr/i686-w64-mingw32/bin/as   -o dlumbt.o dlumbt.s

/usr/i686-w64-mingw32/bin/dlltool: Created lib file

如您所见,我收到了 python27.def 文件的语法错误,但 libpython27.a 是构建的。


我创建了 python27.def 如下:(在 Windows 中)

  • 得到 pexports-0.47-mingw32-bin.tar.xz(假设支持 32 位和 64 位)

  • 运行 pexports.exe -v .\python27.dll > python27.def

我创建 python27.def 的过程有问题吗?

注意:下面有一个 libpython27.a,但我阅读了一些评论,认为链接到在 linux 中交叉编译 python 扩展模块不起作用。

谢谢!


慕少森
浏览 262回答 1
1回答

jeck猫

最后,我安装了 gendef(来自 win-builds)并创建了 python27.def.\gendef.exe C:\Windows\SysWOW64\python27.dll然后,在 Linux 中,我成功运行 dlltool 以创建 libpython27.a:i686-w64-mingw32-dlltool -A --dllname python27.dll --def python27.def --output-lib libpython27.alibpython27.a (gendef) 的大小:774580libpython27.a 的大小(因 pexports 失败):1470
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python