所以我尝试使用 SWIG 为 Python 构建一个库。我制作了每个需要的文件并尝试使用以下命令进行编译:
cl /LD /EHsc /MT /Ox /DNDEBUG /D_WINDOWS /D_USRDLL /D_WINDLL /DWIN64 /D_AMD64_ /favor:blend /I"C:\path\to\python\include" /I"E:\softactivate\include" base_wrap.cxx /link /MACHINE:X86 / LIBPATH:"path\to\python\libs" /LIBPATH:"E:\softactivate\lib\x64\Release\vs2019" python310.lib Licensing.lib /OUT:_base.pyd /p:PlatformToolset=v142
我收到此错误:
LINK: warning LNK4044: unrecognized option '/p:PlatformToolset=v142'; ignored
fatal error C1905: Front end and back end are not compatible (must target the same processor).
LINK: fatal error LNK1257: code generation failed
我不知道是否有帮助,但是Visual Studio版本比项目高,但我使用
/p:PlatformToolset=v142
,所以我不认为这是一个问题。
还有我的项目设置:
错误“前端和后端不兼容(必须针对同一处理器)”表示编译的对象或库的目标架构之间存在不匹配。
警告
unrecognized option '/p =v142'; ignored
表明 /p:PlatformToolset=v142
不是链接器可识别的选项。
那么,
删除选项:
/p:PlatformToolset=v142
确保一致的目标架构:
cl /LD /EHsc /MT /Ox /DNDEBUG /D_WINDOWS /D_USRDLL /D_WINDLL /DWIN64 /D_AMD64_ /favor:blend /I"C:\path\to\python\include" /I"E:\softactivate\include" base_wrap.cxx /link /MACHINE:X64 /LIBPATH:"path\to\python\libs" /LIBPATH:"E:\softactivate\lib\x64\Release\vs2019" python310.lib Licensing.lib /OUT:_base.pyd
/MACHINE:X86
替换为 /MACHINE:X64
。