OpenGL SOIL Неопределенная ссылка на glBindTexture, glTexImage2d и т. Д.

Я использую C ++ и Opengl, и я пытаюсь использовать SOIL, но когда я скомпилирую, я получаю неопределенную ссылку на glBindTexture, glTexImage2D и т. Д. Однако, это только из SOIL.c, а не из моего собственного исходного кода. Вот что выдает ошибка:

http://pastebin.com/sKrQaBhz

Моя видеокарта NVIDIA GeForce GTX 680, и мои драйверы полностью обновлены. У меня все связано, и я использую premake для управления своим проектом. Я занимаюсь разработкой на машине с Linux, но пытаюсь сделать кросс-компиляцию на моем компьютере с Windows, что приводит к этой ошибке. Если я скомпилирую его в linux, все будет в порядке. Это мой файл premake4.lua:

http://pastebin.com/T4hsbdz0

Мои включаемые файлы:

#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, которую затем скопировал на libSOIL.a и включаемые в него файлы, но это просто не работает.

0

Решение

Порядок ссылок имеет значение для g ++.
Попробуйте этот заказ:

links {«SOIL», «glfw3», «opengl32», «gdi32», «glu32»}

(редактировать: исправлен ответ OP в соответствии с дублированным вопросом на форуме Premake: http://industriousone.com/topic/how-use-premake-compile-static-library)

1

Другие решения

Глядя на домашнюю страницу SOIL, они сказали, что она должна быть связана статически. Таким образом, вместо использования динамического связывания (‘-l’ в компиляторе gcc), попробуйте указать полный путь к библиотеке.

Этот пост иллюстрирует то, что я хочу сказать: https://stackoverflow.com/a/4156190/2293156

gcc -lsome_dynamic_lib some_static_lib.a code.c

0

По вопросам рекламы [email protected]