11

Visual C++ 2008 で作業しているプロジェクトで Fmod を使用しています。

../fmodapi375win/api/lib/fmodvc.lib

Project->Linker->Input では正常に動作しますが、何らかの理由で使用すると

#pragma comment(lib,"../fmodapi375win/api/lib/fmodvc.lib")

代わりに、その行が存在しない場合と同じように機能します。リンカ エラーなしでビルドされ、100 万回のアクセス違反例外によるスタック オーバーフローでクラッシュします。

コードで lib を定義できるようにするには、どうすれば修正できますか?

4

4 に答える 4

0

2 つのインスタンスで同じ lib ファイルであると確信していますか?

マシンに 2 つのバージョンのファイルがあるという事実を見逃すと、これは非常に奇妙になります。サニティチェックを行うためだけに、このファイルのすべての出現箇所をドライブで検索することを真剣にお勧めします。

于 2009-03-23T02:58:51.503 に答える
0

リンクのコマンド ラインで /VERBOSE を設定します。GUI では、プロジェクトのプロパティ ページでこれを行うことができます -- リンカーの下の「コマンド ライン」ノードに追加します。

次に、各関数がどのように解決されたかを示します。fmodvc.lib にあるはずの関数を検索します。

もう 1 つの方法は、リンク中に PROCMON.EXE を実行することです (PATH が fmodvc.lib を含むように事前にフィルターをかけます)。その後、リンクします。ファイルが見つかった正確な場所 (および検索したことがあるかどうか) が通知されます。ここで PROCMON を入手してください: http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

最後に、リンクしているがライブラリをロードしていない(または参照を解決していない)場合、リンクを強制的に成功させるオプションがあるかもしれませんが、それをオフにする必要があります。コマンド ライン セクションでは/FORCEになります(/VERBOSE など)。

于 2009-03-19T15:54:40.003 に答える