2017-12-06 2 views
2

Kürzlich arbeitete ich an einer Gesichtserkennungsanwendung in Visual Studio 2015. Um Cuda-Bibliotheken auf die App anzuwenden, muss diese App von Win32-Typ auf x64 migrieren. Ich ändere vorsichtig den Konfigurationsmanager und moderiere alles, was mit x86 zu tun hat, wenn ich dafür sorge, dass jede externe DLL oder Bibliothek ihre x64-Version hat.Wie könnte ich eine win32-Anwendung auf eine x64-Version migrieren?

Aber nach dem kompilierten im Freigabemodus gibt es immer eine Fehlermeldung: "LNK1112 Modul Computertyp 'x86' Konflikte Ziel Computer Typ 'x64'". Die Fehlerdatei ist CameraDS.obj, die von directshow geschrieben wird. Und ich überprüfte die produzierenden OBJ-Dateien mit dumpbin/headern und entdeckte dann die Headerdatei-Werte jeder .obj-Maschine (x86). Löschen Sie diese OBJ-Dateien oder einfach nur die Lösung nicht funktioniert, und die IDE wirft nur die gleiche Fehlermeldung. Ich weiß nicht warum.

Gibt es eine Lösung?

+2

Was meinst du mit „CameraDS.obj von Directshow geschrieben wird“? Wenn es ein externes Objekt ist, dann müssen Sie vielleicht eine 64-Bit-Version davon verknüpfen? – VTT

+0

Ich meine, die CameraDS-Klasse wird von directshow geschrieben, wenn die CameraDS.obj kompiliert wird. –

Antwort

1

Ist es die Quelle der Lib CameraDS.obj? https://github.com/souseiki/Stereo-Vision

Nur neu kompilieren Sie es auch für x64.

Überprüfen Sie auch, dass Sie nicht x86 überall links, Blick auf die Antworten von fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'

+0

Ja, ist es. Aber ich fand nicht nur CameraDS Klasse produziert x86 .obj, jede andere Klasse hat die gleiche Änderung, selbst wenn ich diese. OBJ-Dateien bereinigen. Bevor ich gefragt habe, habe ich mögliche Fehler einzeln in dieser Frage überprüft. Ich rekonstruiere ein x64-Projekt und kopiere alle Codes und das gelöste Problem, aber ich möchte immer noch wissen warum. –

+0

Wenn Sie immer noch die Projektdatei mit Fehler haben, können Sie .vcxproj Datei als Text öffnen und nach x64 hinein suchen, es muss irgendwo eine Einstellung sein. –

+0

Sie meinen .vcxproj Datei unter der Datei nach dem Projekt benannt? Wird es von der x86- und x64-Version gemeinsam genutzt? Ich öffne das und finde viele Inhalte mit win32 und x64. Und ich versuche, x64 zu x86 in meinem neuen Projekt zu migrieren, es gibt viel mehr Fehlermeldung, wenn der Compiler .obj Dateien erzeugt ... –

Verwandte Themen