我正在使用 C++ 和 Opengl,并且我正在尝试使用 SOIL,但是当我编译时,我得到了对 glBindTexture、glTexImage2D 等的未定义引用。但是,这仅来自 SOIL.c,而不是我自己的源代码。这是错误产生的:
我的显卡是 NVIDIA GeForce GTX 680,我的驱动程序已全面更新。我将所有内容都链接在一起,并且正在使用 premake 来管理我的项目。我正在linux机器上开发,但是,我试图将它交叉编译到我的windows机器上,这会产生这个错误。如果我在linux上编译它,那完全没问题。这是我的 premake4.lua 文件:
我的包含文件是这样的:
#include "opengl/gl_core_3_3.hpp"
#include <GLFW/glfw3.h>
#include <SOIL/SOIL.h>
#include <glm/glm.hpp>
#include <glm/gtx/transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include "loadshader.hpp"
我正在使用 mingw32 来编译我的代码。在我使用 SOIL 之前,一切都很好。我从他们位于 lonesock.net 的网页上下载了 SOIL,然后我将其复制到 libSOIL.a 及其包含文件中,但它不起作用。