我最近在从事OpenGL项目,并决定移至64位,因此我将编译器更改为支持64位的g ++ 4.9.2。我也将其他库也更改为64位,但是只有编译器找不到系统提供的库Glu32和OpenGL32。我安装了Windows SDK,该SDK提供了64位的库。奇怪的是,它们确实也带有32后缀...等等,可能是为了简化移植。
我已经C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64
以几种方式将Path声明为一个附加的库目录,相对的,绝对的,并带有通配符(%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
奇怪的是,它们确实也带有32后缀...等等,可能是为了简化移植。
要保持与使用LoadLibrary
或的功能的程序的源兼容性,GetModuleHandle
请执行以下操作:无需更改这些功能中使用的字符串,即可使其正常工作。
如果您查看错误,它会告诉您找不到库….lib
。注意.lib
后缀。现在,如果您查看链接程序命令行,则将其指定为-lOpenGL32.lib
,-lGLu32.lib
这是错误的。传递给该-l
参数的参数是没有标准文件名前缀或后缀的库名。正确的-l
参数应为-lopengl32
和-lglu32
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句