c - 无法链接到 opengl 库?操作系统/MSVC

标签 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

最佳答案

鉴于您使用 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,以在需要时获取 header 和导出库。旧的SDK将安装在“C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK”,而VS2008 SDK在“C:\Program Files\Microsoft SDKs\Windows\v6.0A”,你可以简单地复制将必要的文件复制到较新 SDK 中的相应文件夹中。

您当然可以只使用 VS2005 或更早版本进行构建,而不用弄乱 SDK。

关于c - 无法链接到 opengl 库?操作系统/MSVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2842713/

相关文章:

c++ - system() 是否会在内部执行类似 sem_post 的调用?

c - 退出 Do While 循环

memory-management - 进程虚拟地址空间和内核地址空间?如何?

通过在寄存器中传递函数地址从 asm 文件调用 C 函数

visual-studio-2010 - VS2010 C++ 项目 : links fine in debug, 中的 NODEFAULTLIB 噩梦无法在发行版中找到一致的库集

c - 如何使用 C 中的递归计算正弦级数(泰勒)的 x 值?

c - 为什么将函数参数传递给结构初始化会返回垃圾或看似没有执行任何操作?

c - 位域的可用性

c++ - 如何将静态库 (.a) 添加到 C++ 程序中?

objective-c - 不确定如何导出 Objective-C 类。架构 i386 的 undefined symbol