链接器无法找到现有的库

时间:2015-02-21 19:10:09

标签: c++ c opengl 64-bit glu

我最近正在开发一个OpenGL项目,并决定转向64位,所以我将编译器更改为支持64位的g ++ 4.9.2。我也将其他库更改为64位,但编译器无法找到系统提供的libs,Glu32和OpenGL32。我安装了Windows SDK,提供了64位的库。奇怪的是,这些也有32个后缀...无论如何,可能更容易移植。

我已经在几个方面声明了路径C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64作为额外的库目录,相对,绝对和通配符(%ProgramFiles%/ ...),但它们似乎都不适合链接器:

c:/Program Files (x86)/mingw-w64/i686-4.9.2-win32-sjlj-rt_v3-rev1/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lOpenGL32.Lib
c:/Program Files (x86)/mingw-w64/i686-4.9.2-win32-sjlj-rt_v3-rev1/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lGlU32.Lib

编译指令

g++ -m64 -o dist/Debug/MinGW_64-Windows/engine >>imagine some object files in here<< -Lresource/Glew/lib/Release/x64 -Lresource/SDL/x86_64-w64-mingw32/lib -L\"C\:\Program\ Files\Microsoft\ SDKs\Windows\v7.1\Lib\x64\" -lSDL2main -lSDL2 -lglew32 -lOpenGL32.Lib -lGlU32.Lib

1 个答案:

答案 0 :(得分:0)

  

奇怪的是,这些也有32个后缀...无论如何,可能更容易移植。

保持与使用LoadLibraryGetModuleHandle等函数的程序的源兼容性:让它们保持正常工作,而不必更改进入这些函数的字符串。

如果您查看错误,它会告诉您它无法找到库….lib。请注意.lib后缀。现在,如果您查看链接器命令行,则将其指定为-lOpenGL32.lib-lGLu32.lib,这是错误的。传递给-l参数的参数是没有标准文件名前缀或后缀的库名。正确的-l参数为-lopengl32-lglu32