2014-01-27 2 views
-1

Мне нужно написать небольшую игру с OpenGL для студенческого проекта. Я также должен использовать CMake для этого проекта. Я включил stb_image.c для импорта текстур.включая stb_image в проект OpenGL с CMake

Я включил следующие строки в моей CMakeList.txt

include_directories(${CMAKE_SOURCE_DIR}/../extern/stb_image) 
link_directories(${CMAKE_SOURCE_DIR}/../extern/stb_image) 

и включил stb_image.h в мой файл проекта. Код компилируется без ошибок. Теперь я попытался импортировать текстуру в свой проект со следующим кодом.

#include "stb_image.h" 
int x, y, n; 
unsigned char *data = stbi_load("testTexture.png" , &x, &y, &n, 0); 

если я пытаюсь скомпилировать проект с «сделать» команду, которую я получаю следующее сообщение об ошибке:

Linking CXX executable /Users/.../Documents/.../.../.../binaries/basic-texturing 
Undefined symbols for architecture x86_64: 
    "_stbi_load", referenced from: 
     loadObjectsAndTextures() in inits.cc.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make[2]: *** [/Users/.../Documents/.../.../.../binaries/basic-texturing] Error 1 
make[1]: *** [CMakeFiles/basic-texturing.dir/all] Error 2 
make: *** [all] Error 2 

inits.cc является файлом проекта и loadObjectsAndTextures() является методом, который вызывает stbi_load().

Я не знаю, что здесь происходит. Я неправильно связал файл с CMake, это неправильная функция, или это то, что я даже не вижу здесь. Не могли бы вы дать мне какие-либо советы, где я могу начать решать эту проблему? Я пробовал несколько часов, чтобы прочитать учебники для CMake и Documentation для stb_image. Текстура находится в той же директории моего файла проекта, а также в том же каталоге, что и stb_image.c.

ответ

-1

Похоже, вы пытаетесь связать версию stb_image, которая не была скомпилирована для 64-битных систем. Вы уверены, что используете подходящий файл библиотеки для своей системы?

Смежные вопросы