1

当我使用 GLFW 和 GLEW 编译我的代码时,glewInit() 是

    undefined reference to '_imp_glewInit@0'
奇怪的是,直接在上面的 glewExperimental 令牌没有问题。(如果我编译 glewInit() 注释掉,它将成功编译并运行)

我的总体问题是,为什么 glewInit() 未定义而将 glewExperimental 更改为 true 不是;以及如何解决此问题。

我的 MinGW 编译器调用:

    C:\MinGW\bin\c++.exe -x c++ -o "%cd%\aeonsplice.exe" -static "main.cpp" -Wl,glew32.dll,glfw.dll

我调用 glewInit() 的地方:

    glewExperimental = true; // 这检查得很好(我没有在任何地方声明 glewExperimental)
    if (glewInit() != GLEW_OK) // 这是中断的地方
    {
        fprintf(stderr, "初始化 GLEW 失败,正在退出。\n" );
        aeonAPITerminate(); // 这会调用 glfwTerminate()
        返回假;
    }

如果需要更多信息,我会按要求对其进行编辑。是的,我确实搜索并找到了 20 多个关于 glewInit() 不起作用的问题,但没有一个与我的问题相符。

4

1 回答 1

2

对于 mingw 编译器,您必须链接glew32s.lib而不是glew32.lib并且它必须位于所有链接器列表的第一个。

于 2013-06-06T08:48:54.837 回答