我想为 x86 构建一个库(poco-1.3.6p2-all,物有所值)。我刚刚设置了一台新的(干净的)Windows 7 64 位机器,并安装了 Visual Studio 2008 Standard。到目前为止,此盒子上的任何安装都没有出现安装错误。
相同的库在安装了 VS 2008 Standard 的 Windows XP 32 位系统上完美构建。哦,是的,这都是非托管 C++。
我得到的错误是项目中各个 DLL 的每个链接。例子:
1>.\obj\debug_shared\CppUnitException1.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
有问题的库是从 .cmd 文件构建脚本调用的 .vcproj 文件构建的。
编译器选项(命令行)如下所示:
/Od /I "include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "CppUnit_EXPORTS" /D "_CRT_SECURE_NO_DEPRECATE" /D "_VC80_UPGRADE=0x0710" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /GF /FD /EHsc /RTC1 /MDd /Fo".\obj\debug_shared/" /Fd".\obj\debug_shared/vc80.pdb" /W3 /nologo /c /ZI /errorReport:prompt
项目选项中的链接器命令行如下所示:
/OUT:"..\bin\CppUnitd.dll" /INCREMENTAL /NOLOGO /DLL /MANIFEST /MANIFESTFILE:".\obj\debug_shared\CppUnitd.dll.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"..\bin\CppUnitd.pdb" /DYNAMICBASE /NXCOMPAT /IMPLIB:"..\lib\CppUnitd.lib" /MACHINE:X86 /ERRORREPORT:PROMPT
(对我来说)链接器似乎看到了 x86 目标文件,但是即使命令行选项正确,它也在 x64 模式下被调用。
我需要目标是 32 位/x86 类型,而不是 x64。
是否有一些 Visual Studio 选项可以解决此问题?