2017-12-06 8 views
2

最近私はVisual Stuido 2015の顔認識アプリケーションに取り組みました。アプリケーションにcudaライブラリを適用するには、このアプリケーションをwin32タイプからx64に移行する必要があります。すべてのextern dllまたはlibにx64バージョンがあることを確認するときは、構成マネージャーを慎重に変更し、x86に関係するすべてを調整します。win32アプリケーションをx64に移行するにはどうすればよいですか?

リリースモードでコンパイルした後、「LNK1112モジュールのコンピュータタイプ「x86」はターゲットコンピュータタイプ「x64」と競合します」というエラーメッセージが常に表示されます。エラーファイルは、directshowによって記述されたCameraDS.objです。そして、私はdumpbin/headersを使って生成する.objファイルをチェックし、すべての.objのヘッダファイル値がmachine(x86)であることを発見しました。これらの.objファイルを削除するか、解決方法が機能しないだけで、IDEは同じエラーメッセージをスローします。私はなぜか分からない。

解決策はありますか?

+2

の答えを見て、あなたはどこにでもx86のを残していないことを確認してください?外部objの場合は、おそらく64ビットバージョンのリンクが必要ですか? – VTT

+0

CameraDS.objをコンパイルするときに、CameraDSクラスがdirectshowによって書き込まれることを意味します。 –

答えて

1

libのソースですか?CameraDS.objhttps://github.com/souseiki/Stereo-Vision

x64でも同様に再コンパイルしてください。

また、あなたが「CameraDS.objはDirectShowので書かれている」とはどういう意味ですかfatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'

+0

はい、そうです。しかし、CameraDSクラスがx86 .objを生成しただけでなく、他のクラスもこれらの.objファイルをクリーンアップしても同じ変更があることがわかりました。質問する前に、私はその質問の中で起こりうる障害を一つ一つチェックしました。私はx64プロジェクトを再構築し、すべてのコードと問題を解決しましたが、それでもなぜその理由を知りたいのですか? –

+0

まだエラーのあるプロジェクトファイルがある場合は、.vcxprojファイルをテキストとして開き、x64を探すことができます。これはどこかの設定にする必要があります。 –

+0

プロジェクトの名前を付けられたファイルの下にある.vcxprojファイルを意味しますか?それはx86とx64の両方のバージョンで共有されていますか?私はそれを開き、win32とx64で多くのコンテンツを見つけます。そして、私の新しいプロジェクトでx64をx86に移行しようとすると、コンパイラが.objファイルを生成するときにはるかに多くのエラーメッセージが表示されます... –

関連する問題