Visual Studio 2013 C ++链接静态库glew,虚拟机上的glfw

时间:2015-06-27 16:32:53

标签: c++ visual-studio-2013 glfw glew

我无法在visual studio 2013 c ++项目中链接静态库。

  1. 我下载了最新的glew-1.11.0-win32和glfw-3.1.1.bin.WIN32
  2. 设置包含目录的路径 (项目属性> C / C ++“附加包含目录”)

    C:\Users\User\Documents\Visual Studio 2013\Projects\OpenGL\OpenGL\Common
    
  3. 添加lib文件的路径 (项目属性>链接器>一般“附加库目录”)

    C:\Users\User\Documents\Visual Studio 2013\Projects\OpenGL\OpenGL\Common\Libs
    
  4. 添加库名称 (项目属性>链接器>输入“附加依赖项”)

    glew32.lib
    glfw3.lib
    
  5. 定义预处理器GLEW_STATIC(当我删除它时它是可见的)

    (project Properties > C/C++ > Preprocessor "Preprocessor Definitions")
    
  6. 当我构建项目后发生错误:

    Error   1   error LNK2001: unresolved external symbol _glewExperimental C:\Users\User\documents\visual studio 2013\Projects\OpenGL\OpenGL\Source.obj    OpenGL
    Error   2   error LNK1120: 1 unresolved externals   C:\Users\User\documents\visual studio 2013\Projects\OpenGL\Debug\OpenGL.exe OpenGL
    

    当我想补充这个

    #include<Windows.h>
    
    
    #include<GL\glew.h>
    #include<GLFW\glfw3.h>
    
    #include<iostream>
    
    GLFWwindow * window;
    
    using namespace std; 
    
    int main()
    {
        glewExperimental = TRUE;
        GLenum error = glewInit();
        if (error != GLEW_OK)
        {
            cout << "Error!" << endl;
        }
    
        system("pause");
    
        return 0;
    }
    

    虚拟机(VirtualBox)和Mirosoft Visual Studio 2013上的Windows 8.1

    我做错了什么?在此论坛的其他主题中,此解决方案正常运行。

    当我从目录中删除这两个libs时,我得到了同样的错误,所以Visual可能看不到这两个库。但路径设置正确。包含路径有效,所有头文件都可以通过intelsense查看。

1 个答案:

答案 0 :(得分:2)

@bogdan是正确的:GLEW的静态库版本是 glew32s.lib

BTW,sourceforge.net上的GLEW installation page表示如果你想要静态链接,你必须在你的项目中加入包含glew.h和glew.c。&#34;虽然这听起来很容易,但对于每个openGL项目来说,这似乎都是不必要的粗糙。相反,请执行以下操作:

  • 属性 - 公共属性 - 下添加 GLEW_STATIC 宏 C / C ++ - 预处理器 - 预处理器定义
  • 属性 - 公共属性 - 链接器 - 输入 - 附加库依赖项
  • 下添加 glew32s.lib
  • 如果您没有将glew32s.lib复制到Visual Studio的默认库路径之一,请在属性 - 公共属性 - 链接器 - 常规 - 其他库目录<下添加其路径/ em>

为我工作。

如果您不了解这一点,可以添加新的资产表,例如 openglPropertySheet32Static ,位于 Property Manager 查看菜单 - 其他Windows - Property Manager )。添加您的openGL特定属性。不要忘记明确保存表单 - 我不确定它是否随项目自动保存。然后,您需要为将来的openGL项目做的就是添加现有属性表 openglPropertySheet32Static ,在物业管理器中(你还记得保存它的地方吗?)。 / p>