尝试构建库时出现错误 C1905(使用 SWIG)

问题描述 投票:0回答:1

所以我尝试使用 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
,所以我不认为这是一个问题。

还有我的项目设置:

配置属性->常规

C/C++->输出

c++ visual-studio build swig msvc12
1个回答
0
投票
  • 错误“前端和后端不兼容(必须针对同一处理器)”表示编译的对象或库的目标架构之间存在不匹配。

  • 警告

    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
  • 如果您的目标是 x64,请将
    /MACHINE:X86
    替换为
    /MACHINE:X64
© www.soinside.com 2019 - 2024. All rights reserved.