Je veux construire une bibliothèque (poco-1.3.6p2-tout, pour ce que ça vaut) pour x86. Je viens de mettre en place une nouvelle machine Windows 7 64 bits (propre) et j'ai installé Visual Studio 2008 Standard. Rien installé jusqu'à présent sur cette boîte a eu une erreur d'installation.Création de code x86 dans un environnement x64 (Visual Studio 2008)?
La même bibliothèque a été construite sans problème sur un système Windows XP 32 bits avec VS 2008 Standard installé. Oh, oui, tout est C++ non géré.
L'erreur que j'obtiens est à chaque lien des DLL individuelles dans le projet. Exemple:
1>.\obj\debug_shared\CppUnitException1.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
La bibliothèque en question est construit à partir d'un fichier .vcproj appelé à partir d'un script de compilation de fichiers .cmd.
Les options du compilateur (ligne de commande) ressemblent:
/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
La ligne de commande de liaison dans les options de projet ressemble à:
/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
Il semble (pour moi) que l'éditeur de liens voit x86 fichiers objet, mais est invoqué en mode x64 même si l'option de ligne de commande est correcte.
J'ai besoin que la cible soit un type 32 bits/x86, pas x64.
Y at-il une option Visual Studio qui va résoudre ce problème?
Où? Je ne vois aucun onglet ni aucune section appelée Build. Dans les propriétés | Linker | Options avancées, Machine cible est définie sur MachineX86. –
Probablement différentes propriétés pour les solutions C++ que C#. Quels autres sont disponibles? –
Pour les options de l'éditeur de liens, c'est la seule option qui semble liée. –