SuperBible第6版sb6_d32.lib未找到?

时间:2016-08-30 03:55:33

标签: c++ opengl

我正在使用超级第6版学习OpenGL,同时编译此代码:

#include <iostream>
#include "sb6.h"

class my_application : public sb6::application
{
public:
    void render(double currentTime)
    {
        static const GLfloat red[] = { 1.0f,0.0f,0.0f,1.0f };
        glClearBufferfv(GL_COLOR, 0, red);
    }
};
DECLARE_MAIN(my_application); 

我收到链接错误,说无法打开sb6_d32.lib
我搜索了整个sb6目录,没有sb6_d32.lib文件可供它打开,以便我可以链接它?我错过了什么吗?

编辑:2个未解析的外部

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)   OpenGL_learning E:\C++\Learning\OpenGL\OpenGL_learning\OpenGL_learning\MSVCRTD.lib(exe_main.obj)    1   

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol __imp____iob_func referenced in function __glfwPlatformOpenWindow    OpenGL_learning E:\C++\Learning\OpenGL\OpenGL_learning\OpenGL_learning\GLFW_d32.lib(win32_window.obj)   1   

1 个答案:

答案 0 :(得分:0)

你必须先建立它。请参阅示例文件夹根目录中的HOWTOBUILD.txt文件:

  

Windows / Microsoft Visual Studio 2010:

     

项目文件包含在Visual Studio的源存档中   这些将与专业(所有层)和Express版本一起使用。较新版本的Visual Studio 导入它们   很好,但这没有经过广泛测试。只需打开sb6.sln文件   在Visual Studio和命中构建(F7)。 Evertything会建立,你会   最后在&#39; bin中使用二进制文件。 。目录

更新:未解析的外部。

  

LNK2019未解析的外部符号_main引用   function&#34; int __cdecl invoke_main(void)&#34; (?invoke_main @@ YAHXZ)

让我们在DECLARE_MAIN

中查看sb6.h宏实现
#if defined _WIN32
#define DECLARE_MAIN(a)                             \
sb6::application *app = 0;                          \
int CALLBACK WinMain(HINSTANCE hInstance,           \
                     HINSTANCE hPrevInstance,       \
                     LPSTR lpCmdLine,               \
                     int nCmdShow)                  \
{                                                   \
    a *app = new a;                                 \
    app->run(app);                                  \
    delete app;                                     \
    return 0;                                       \
}

如果你想使用这个宏,你的程序应该被编译为windows应用程序(/SYBSYSTEM:WINDOWS),你正在创建不受支持的控制台应用程序。更改项目设置中的子系统(链接器/系统)。

  

LNK2019未解析的外部符号__imp____iob_func   函数__glfwPlatformOpenWindow

中引用

有关解决该问题的方法,请参阅this。简而言之,您必须使用您的Visual Studio版本重新编译所有使用过的静态库。