1. ホーム
  2. c++

[解決済み] MinGW/Eclipse ld.exeでライブラリが検出されない

2022-02-05 11:53:38

質問

Eclipse CDTを使用して、Ogre 3Dエンジンを使用したプロジェクトをコンパイルしようとしています。 しかし、どういうわけかmingwは、私がリンクするスタティック・ライブラリを見つけることができません。

以下はエラーメッセージです。

c:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../.../mingw32/bin/ld.exe: cannot find -lzziplib_d

c:/mingw/bin/../lib/gcc/mingw32/4.6.1/../.../mingw32/bin/ld.exe: -lzlib_d を見つけることができません。

c:/mingw/bin/../lib/gcc/mingw32/4.6.1/../.../mingw32/bin/ld.exe: -lfreetype_d を見つけることができません。

...など。各ライブラリについて、このようにリストが続きます。

お分かりのように、ld.exe が自動的に行うような (IMO) 奇妙な "lib" と ".a" の追加にはすでに気付いています。ライブラリはすべて正しく命名されています。例えば、"freetype_d" は本当に "libfreetype_d.a" なのです。

また、以前はこのように、ライブラリに正しいパスを追加していました。

-L"C:\CodingOgremake-debugsdklibDebug" -L"C:\CodingOgremake-debugsdklibDebugopt"

そして、各ライブラリファイルは、この2つのフォルダのうちの1つに入っています。

これはEclipse CDTで表示される私の完全なコマンドラインです。

g++ -L"C:\CodingOgre-Make-debugsdklibDebug" -L"C:\CodingOgre-Make-debugsdklibDebugopt" -o "OgreTestMinGW" . /BaseApplication.o ./LowLevelOgre.o -lzziplib_d -lzlib_d -lfreetype_d -lFreeImage_d -lOIS_d.BaseApplication.o -Laziplib_d -lfreetype_d -lFreeImage_d -lOIS_d. dll -lOgreMainStatic_d -lOgrePagingStatic_d -lOgrePropertyStatic_d -lOgreRTShaderSystemStatic_d -lOgreTerrainStatic_d -lRenderSystem_GLStatic_d -lPlugin_ParticleFXStatic_d -LOgreMainStatic_d -lOgrePagingStatic_d -lOgrePropertyStatic_d -lOgreRTShaderStatic_d -lOgreTerrainStatic_d lPlugin_PCZSceneManagerStatic_d -lPlugin_OctreeZoneStatic_d -lPlugin_OctreeSceneManagerStatic_d -lPlugin_CgProgramManagerStatic_d -lPlugin_BSPSceneManagerStatic_d

何が足りないのでしょうか?

どのように解決するのですか?

Windowsの場合、ライブラリのパスを追加する際に、"-L" と入力して "File System" をクリックすると、 "\" のパスが表示されるので、これを "/" に変更するとうまくいきます!