【发布时间】:2021-02-20 22:02:23
【问题描述】:
我有一个 Cmake/wxWidgets 项目,可以在我的电脑上正常构建。
我使用nmake /f makefile.vc BUILD=release TARGET_CPU=X86 编译wxWidgets 并使用cmake .. -G "Visual Studio 16 2019" -A Win32 -DCMAKE_CONFIGURATION_TYPES=Release 生成CMake 项目。
就像我写的那样,这在我的电脑上编译得很好。当我想在 Windows 2019 Image 上使用 github 操作构建它时,我首先拉取 wxWidgets,使用上述语句编译它,使用 aboce 语句生成 wxWidgets,并使用包含 "%programfiles(x86)%\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" ".\build\NaCl-Configurator.sln" /p:Configuration=Release /p:Platform=Win32 /p:PlatformTarget=x86
但是这样做时我总是收到以下错误:
wxmsw31u_core.lib(corelib_wincmn.obj) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86' [D:\a\abc\abc\build\abc.vcxproj]
如果我将所有内容都切换到 x64,它可以正常编译,但我需要 x86 构建。有没有我遗漏的系统设置?
【问题讨论】:
-
在运行 msbuild 命令之前,您可能需要通过调用
vcvarsall.bat x86来设置 Visual Studio 环境。 -
@vre 感谢您的提示 - 没有帮助。在此之前我已经尝试过
"%programfiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars32.bat",也没有成功 -
我很困惑您是否使用 Visual Studio 在服务器上构建您的项目?
-
@hdf89shfdfs 我正在我的电脑上开发,但我希望每个版本(不是每个提交)都建立在 github 操作上。 linux 构建完全没有问题,并且 github 操作提供了一个 Windows 2019 服务器,其中预安装了 vs Enterprise 来编译项目。 here 是一个概述
-
wxWidgets 存储库状态 here“从 x86 命令提示符构建 32 位发行版 DLL 版本,”你这样做了吗,例如在运行
nmake ...之前,您是否调用了vcvarsall.bat x86?
标签: github cmake wxwidgets github-ci