0

VisualStudioプロジェクトがあります。それはかなり単純で、機能します。ただし、現在、コードを64ビットに移植中です。この単純なプロジェクトをコンパイルしていますが、リンクできません。

fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'

これは、間違ったバージョンのライブラリをリンクしようとしていることを示しています。64ビットライブラリをリンクしているはずですが、32ビットライブラリをリンクしようとしています。それは明らかに間違っています。

私の問題は、私のプロジェクトがそのライブラリをリンクすることを決定している場所がわからないことです。私が見た:

  • プロジェクトプロパティ、小道具ファイル。libパスが指定されていますが、lib名はどこにも指定されていません。
  • プロジェクトのプロパティ->リンカー->コマンドライン。どちらもありません。
  • ある種のヘッダーファイルを調べましたが、#pragma comment(lib, )その使用法が見つかりません。

他にどこを見ればいいですか?Visual Studioに、さまざまなライブラリへのリンクを決定する方法を教えてもらう方法はありますか?

関連性があるかどうかはわかりませんが、これはCppUnitを使用した小さな単体テストプロジェクトです。リンクcppunit-vc100-MTd.libする必要があるときにリンクしていますcppunit-vc100-x64-MTd.lib

4

1 に答える 1

1

プロジェクトのプロパティページの[リンカー]、[全般]で、プロジェクトリンクの進行状況レポートを、ヒットしているライブラリを表示するために必要なものに設定します。/VERBOSEまたは/VERBOSE:libは、おそらくあなたが望むことをするでしょう。

/ VERBOSE:libを使用して出力ウィンドウに表示される出力の例

1>  Searching libraries
1>      Searching D:\winsdk\lib\kernel32.lib:
1>      Searching D:\winsdk\lib\user32.lib:
1>      Searching D:\winsdk\lib\gdi32.lib:
1>      Searching D:\winsdk\lib\winspool.lib:
1>      Searching D:\winsdk\lib\comdlg32.lib:
1>      Searching D:\winsdk\lib\advapi32.lib:
1>      Searching D:\winsdk\lib\shell32.lib:
1>      Searching D:\winsdk\lib\ole32.lib:
1>      Searching D:\winsdk\lib\oleaut32.lib:
1>      Searching D:\winsdk\lib\uuid.lib:
1>      Searching D:\winsdk\lib\odbc32.lib:
1>      Searching D:\winsdk\lib\odbccp32.lib:

等..

また、ソースツリーにヘッダーファイルがあり、ファイルを経由してファイルを取り込む場合があります。

#pragma comment (lib, "cppunit-vc100-MTd.lib")

ただし、インクルードパスにヒットする[ファイルを検索]で検索するのは簡単です。これは、[ファイルを検索]構成の既定のオプションの1つです。

于 2012-11-08T02:02:32.260 に答える