无法链接到opengl库? DOS / MSVC

时间:2010-05-16 05:52:39

标签: c linker

此link.exe命令行有问题吗?在两个LIBPATH目录中都可以找到OpenGL32.lib和Glu32.lib。这些库是否有可能不兼容?有没有办法让link.exe说而不是未解析的外部符号?谷歌搜索显示这个错误通常意味着找不到库,但它们就在那里。

E:\mvs90\VC\BIN\link.exe /DLL /nologo /INCREMENTAL:no /DEBUG /pdb:None /LIBPATH:E:\code\python\python\py26\libs /LIBPATH:E:\code\python\python\py26\PCbuild 
opengl32.lib glu32.lib 
/EXPORT:init_rabbyt build\temp.win32-2.6-pydebug\Debug\rabbyt/rabbyt._rabbyt.obj 
/OUT:build\lib.win32-2.6-pydebug\rabbyt\_rabbyt_d.pyd 
/IMPLIB:build\temp.win32-2.6-pydebug\Debug\rabbyt\_rabbyt_d.lib 
/MANIFESTFILE:build\temp.win32-2.6-pydebug\Debug\rabbyt\_rabbyt_d.pyd.manifest

   Creating library build\temp.win32-2.6-pydebug\Debug\rabbyt\_rabbyt_d.lib and
object build\temp.win32-2.6-pydebug\Debug\rabbyt\_rabbyt_d.exp
rabbyt._rabbyt.obj : error LNK2019: unresolved external symbol __imp__glOrtho re
ferenced in function ___pyx_f_6rabbyt_7_rabbyt_set_viewport

 Directory of E:\code\python\python\py26\libs
09/27/2007  02:20 PM            12,672 GlU32.Lib
09/27/2007  02:20 PM            76,924 OpenGL32.Lib

1 个答案:

答案 0 :(得分:0)

似乎您可以通过Cygwin和MSYS成功获得Cygwin / GCC或MinGW / GCC导出库,而不是MSVC导出库。它们不会被Microsoft的链接器识别为有效,并且将被忽略。

正确的OpenGL32.lib和Glu32.lib文件是Windows SDK的一部分。对于VS2008 SDK,它位于C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Lib(您的安装可能会有所不同)。

Glaux.lib显然已被弃用,不再包含在Windows SDK中。下载并安装较旧的VS2005 SDK,以便在需要时获取标头和导出库。较旧的SDK将安装在“C:\ Program Files \ Microsoft Visual Studio 8 \ VC \ PlatformSDK”,而VS2008 SDK位于“C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A”,您只需复制必要的文件到较新SDK中的相应文件夹。

您当然可以使用VS2005或更早版本构建,而不是使用SDK。