C++ OpenGL加载程序生成器对gl::BindBuffer等(OpenGL函数)的未定义引用

C++ OpenGL加载程序生成器对gl::BindBuffer等(OpenGL函数)的未定义引用,c++,opengl,reference,undefined,C++,Opengl,Reference,Undefined,我在使用时遇到了一个问题,当我试图编译代码时,它不起作用。它抛出一个错误,表示未定义对我使用的任何opengl函数的引用,如gl::BindBuffer、gl::GenBuffers等。我使用的是pointer\u cpp/func\u cpp样式 我使用的简单代码是 #include "gl_core_3_3.hpp" #include <GL/glfw.h> int main(int argc, char *argv[]) { glfwInit(); glfwO

我在使用时遇到了一个问题,当我试图编译代码时,它不起作用。它抛出一个错误,表示未定义对我使用的任何opengl函数的引用,如gl::BindBuffer、gl::GenBuffers等。我使用的是pointer\u cpp/func\u cpp样式

我使用的简单代码是

#include "gl_core_3_3.hpp"
#include <GL/glfw.h>

int main(int argc, char *argv[]) {
    glfwInit();
    glfwOpenWindow(1024, 768, 0, 0, 0, 0, 0, 0, GLFW_WINDOW);

    gl::exts::LoadTest didLoad = gl::sys::LoadFunctions();
    if(!didLoad) {
        glfwTerminate();
        return 1;
    }

    return 0;
}
我在ArchLinux上,使用Vim和clang作为我的IDE

g++ main.cpp -lglfw -lGL -lGLU
我看不出您在哪里包含生成的源文件。它不是一个仅限收割台的装载系统。它不会生成库,但会生成必须编译的源代码


我看不出您在哪里包含生成的源文件。它不是一个仅限收割台的装载系统。它不会生成库,但会生成必须编译的源代码。

我明白了,我将“gl#u core_3_3.hpp”改为“gl#u core_3_3.cpp”,并且成功了。谢谢。@zero57:不要包括.cpp文件!构建.cpp文件,就像构建
main.cpp
文件一样。你把它们联系在一起。就像您对任何具有多个源文件的程序一样。你以前从来没有建立过一个C++程序,它有不止一个源文件吗?哦,抱歉,是的,我编译了一个C++程序,它有不止一个源文件,但是我以前从来没有做过这样的事情,英语不是我的第一语言。我对你刚才的句子感到困惑。再次感谢Nicol。我明白了,我把“gl#U core_3.hpp”改为“gl#U core_3.cpp”,效果不错。谢谢。@zero57:不要包括.cpp文件!构建.cpp文件,就像构建
main.cpp
文件一样。你把它们联系在一起。就像您对任何具有多个源文件的程序一样。你以前从来没有建立过一个C++程序,它有不止一个源文件吗?哦,抱歉,是的,我编译了一个C++程序,它有不止一个源文件,但是我以前从来没有做过这样的事情,英语不是我的第一语言。我对你刚才的句子感到困惑。再次感谢你,妮可。
g++ main.cpp -lglfw -lGL -lGLU