7

ライブラリで SOIL をリンクしていますが、コンパイルすると次のリンカ エラーが発生します。

1>LINK: 警告 LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合します。/NODEFAULTLIB:ライブラリを使用
1>libSOIL.lib(stb_image_aug.o): エラー LNK2019: 関数 _stbi_zlib_decode_noheader_buffer で参照されている未解決の外部シンボル __alloca
1>libSOIL.lib(image_helper.o): エラー LNK2019: 関数 _RGBE_to_RGBdivA2 で参照されている未解決の外部シンボル _sqrtf

追加の依存関係で libSOIL.lib をリンクしました。

4

3 に答える 3

7

エラーを修正しました。

私は VC2010 を使用していますが、VC8 ライブラリをビルドしました。次に、libSOIL.lib の代わりに SOIL.lib を追加しました。エラーがなくなりました。

于 2012-03-10T06:02:29.137 に答える
6

未解決のシンボル エラー、エラー LNK2019 は、リンクされていない libgcc.lib または別の標準ライブラリ実装 (Microsoft オプションについてはこちらを参照) のシンボルからのものです。alloca と sqrtf はどちらも標準ライブラリ関数です。

標準ライブラリにリンクしていない場合は、リンカー ライブラリ パスに追加してリンクします。

上記の警告 LNK4098 から、標準ライブラリにリンクしている可能性が高くなりますが、リンカーはどれをロードするかを認識していません。

この問題を解消する (リンカーに特定の標準ライブラリを選択するように指示する) ための推奨されるリンカー引数は、/NODEFAULTLIB:"MSVCRT" /NODEFAULTLIB:"LIBCMT.

追加情報とリソースについては、次のリンクを参照してください。

于 2012-03-09T10:28:47.697 に答える
4

私は同じ問題を抱えていました (Visual Studio 2013 と vc120 ツールセットを使用)。公式サイトから SOIL ライブラリをダウンロードして解決し、名前を変更する代わりにlibSOIL.aSOIL.lib公式 zip 内で VC8 ソリューションを実行しました (これにより、SOIL.lib.それを私のプロジェクトにコピーすると、問題はなくなりました。

于 2014-04-25T03:04:17.480 に答える