Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MinGW/Eclipse ld.exe找不到库_C++_Eclipse_Mingw_Eclipse Cdt_Ld - Fatal编程技术网

C++ MinGW/Eclipse ld.exe找不到库

C++ MinGW/Eclipse ld.exe找不到库,c++,eclipse,mingw,eclipse-cdt,ld,C++,Eclipse,Mingw,Eclipse Cdt,Ld,我正在使用EclipseCDT尝试用Ogre3D引擎编译一个项目。 但不知何故,mingw无法找到我所链接的静态库 以下是错误消息: c:/mingw/bin/./lib/gcc/mingw32/4.6.1/../../../../../../../mingw32/bin/ld.exe:找不到-lzziplib\u d c:/mingw/bin/./lib/gcc/mingw32/4.6.1/../../../../../../../mingw32/bin/ld.exe:找不到-lzlib\u

我正在使用EclipseCDT尝试用Ogre3D引擎编译一个项目。 但不知何故,mingw无法找到我所链接的静态库

以下是错误消息:

c:/mingw/bin/./lib/gcc/mingw32/4.6.1/../../../../../../../mingw32/bin/ld.exe:找不到-lzziplib\u d

c:/mingw/bin/./lib/gcc/mingw32/4.6.1/../../../../../../../mingw32/bin/ld.exe:找不到-lzlib\u d

c:/mingw/bin/./lib/gcc/mingw32/4.6.1/../../../../../../../mingw32/bin/ld.exe:找不到-lfreetype\u 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\”

每个库文件都位于这两个文件夹中的一个

这是Eclipse CDT显示的完整命令行:

g++-L“C:\Coding\Ogre\make debug\sdk\lib\debug\”-L“C:\Coding\Ogre\make debug\sdk\lib\debug\opt\”-o“ogretestingw”/BaseApplication.o./LowLevel.o-lzziplib_d-lzlib_d-lfreetype_d-lFreeImage_d-lOIS_d.dll-Logremestatic_d-Logreproperystatic_d-Logreproperystatic_d-LogrerShaderSystems Statistic_d-Logreterrestatic_d-lRenderSystem_GLStatic_d-lPlugin_ParticleFXStatic_d-lPlugin_d-PczCeneManagerStatic_d-lPlugin八角区-lPlugin\u八叉树管理员静态\u d-lPlugin\u CGProgramManager静态\u d-lPlugin\u BSPSceneManager静态\u d


我在这里遗漏了什么?

看起来您应该尝试从库名称中删除“\u d”并添加-DDEBUG。此外,调试库可以存储在单独的ogre目录中。

在Windows上,当您添加库路径“-L”并单击“文件系统”时,Eclipse将为您提供带“\”的路径,将其更改为“/”,它将正常工作

命令行现在看起来是这样的:
g++-L“C:\Coding\Ogre\make debug\sdk\lib\debug\”-L“C:\Coding\Ogre\make debug\sdk\lib\debug\opt\”-DDEBUG-o“ogretestingw”./BaseApplication.o./LowLevelOgre.o-lzziplib-lzlib-lfreetype-lFreeImage-lOIS-logremeastatic-logrepragingstatic-lOgrePropertyStatic-lOgreRTShaderSystemStatic-logreterrastatic-lRenderSystem\u GLStatic
仍然存在相同的错误:找不到库。无论如何,我为什么要删除“\u d”?这也是ld.exe以某种方式解释的吗?我也应该从磁盘上的文件名中删除“_d”吗?看起来linker也找不到zlib和其他与mingw一起交付的lib。你能发布那个命令的完整输出吗?您可能需要添加-LAs我已经说过,这些库中的每一个都位于我用-L添加的两个文件夹中的一个文件夹中。而且它们中的每一个都是我从Ogre源代码(和Ogre依赖项)编译的。这包括zlib。他们肯定在那里。例如,有一个
“C:\Coding\Ogre\make debug\sdk\lib\debug\opt\RenderSystem\u GLStatic\u d.a”
是的,我的错误。文件名前面有一个“lib”。准确地说,在每个文件名前面;)这条路是正确的。我猜这里的问题是完全不同的。哈哈哈。。。错误在directoy路径中为“\”。我用“/”替换了它们,现在它可以工作了。我每次都会爱上这个;)哈哈哈。。。错误在directoy路径中为“\”。我用“/”替换了它们,现在它可以工作了。我每次都会爱上这个;)