2012-02-03 17 views
8

Eclipse CDTを使用して、Ogre 3Dエンジンでプロジェクトをコンパイルしようとしています。 しかし、何とかmingwは私がリンクしている静的ライブラリを見つけることができません。MinGW/Eclipse ld.exeでライブラリが見つかりません

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: cannot find -lzlib_d

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

...など:

これらはエラーメッセージです。リストは各ライブラリのためにこうなっています。

ご覧のとおり、ld.exeが自動的に作成するような(IMO)不思議な「lib」と「.a」追加については既に認識しています。ライブラリの名前はすべて正しく指定されています。例えば、 "freetype_d"は本当に "libfreetype_d.a"です。

私はまた、このように、前のライブラリへの正しいパスを追加しました:

-L"C:\Coding\Ogre\make-debug\sdk\lib\Debug\" -L"C:\Coding\Ogre\make-debug\sdk\lib\Debug\opt\"

そして、それぞれのライブラリファイルは、これら2つのフォルダのいずれかです。

これは、Eclipse CDTで表示されているように私の完全なコマンドラインです:

g++ -L"C:\Coding\Ogre\make-debug\sdk\lib\Debug\" -L"C:\Coding\Ogre\make-debug\sdk\lib\Debug\opt\" -o "OgreTestMinGW" ./BaseApplication.o ./LowLevelOgre.o -lzziplib_d -lzlib_d -lfreetype_d -lFreeImage_d -lOIS_d.dll -lOgreMainStatic_d -lOgrePagingStatic_d -lOgrePropertyStatic_d -lOgreRTShaderSystemStatic_d -lOgreTerrainStatic_d -lRenderSystem_GLStatic_d -lPlugin_ParticleFXStatic_d -lPlugin_PCZSceneManagerStatic_d -lPlugin_OctreeZoneStatic_d -lPlugin_OctreeSceneManagerStatic_d -lPlugin_CgProgramManagerStatic_d -lPlugin_BSPSceneManagerStatic_d

は、私がここで何をしないのですか?

+1

ハハハハ... エラーは、ディレクターのパスで "\"でした。私はそれらを "/"に置き換えました。 これは毎回1つです; – TheSHEEEP

答えて

12

Windowsの場合、ライブラリパス "-L"を追加して "ファイルシステム"をクリックすると、Eclipseは "\"でパスを与え、それらを "/"に変更すると動作します!

0

ライブラリ名から "_d"を削除して-DDEBUGを追加してください。また、デバッグライブラリは別のogreディレクトリに格納することもできます。

+1

コマンドラインは次のようになります: 'g ++ -L" C:\ Coding \ Ogre \ make-debug \ sdk \ lib \ Debug \ "-L"コーディング\ Ogre \ make-debug \ sdk \ lib \ Debug \ opt \ "-DDEBUG -o" OgreTestMinGW "./BaseApplication.o/LowLevelOgre.o -lzziplib -lzlib -lfreetype -lFreeImage -lOIS -lOgreMainStatic -lOgrePagingStatic -lOgrePropertyStatic -lOgreRTShaderSystemStatic -lgreTerrainStatic -lRenderSystem_GLStatic' まだ同じエラー:ライブラリを見つけることができません。 いずれにしても、なぜ "_d"を削除する必要がありますか?それはld.exeが何とか解釈するものなのでしょうか?また、ディスク上のファイル名から "_d"も削除する必要がありますか? – TheSHEEEP

+0

また、リンカーはzlibやmingwでshippendだった他のライブラリを見つけることができません。あなたはそのコマンドの完全な出力を投稿できますか? -L

+1

を追加する必要があるかもしれません。すでに述べたように、これらのライブラリはすべて、-Lで追加した2つのフォルダのいずれかにあります。また、私はOgreのソース(とOgreの依存関係)から自分自身をまとめました。それにはzlibも含まれます。彼らは間違いなくそこにいる。たとえば、C:¥Coding¥Ogre¥make-debug¥sdk¥lib¥Debug¥opt¥RenderSystem_GLStatic_d.a " – TheSHEEEP

関連する問題