在我的项目中,我想使用来自非官方opengl sdk的freeglut库。
我使用Premake为vs2010生成了构建文件。然后,我构建了所有库(调试)。在我的项目中,我为freeglut设置了其他包含目录,其他库目录。在其他依赖项中,我添加了freeglutD.lib。
在代码中,我只包含一个freeglut标头。当我想运行程序时,出现错误:
>LINK : fatal error LNK1104: cannot open file 'freeglut.lib'.
Run Code Online (Sandbox Code Playgroud)
freeglutD.lib是中的唯一文件sdk/freeglut/lib。在SDK中没有freeglut.dll和freeglut.lib。
早些时候,我从链接中使用了freeglut 2.8.0 MSVC软件包,该链接是动态链接的(包含freeglut.dll),并且一切正常。
怎么了 ?
我的猜测是您忘记了有关使用 SDK 的文档中的这些行:
您还需要在命令行中添加一些#defines。这些都是:
- FREEGLUT_STATIC
- _LIB
- FREEGLUT_LIB_PRAGMAS=0
您需要FREEGLUT_STATIC让 GLUT 知道它是静态链接的。否则它会寻找 DLL。