Я пытаюсь скомпилировать примерный исходный код, который использует OpenGL, SDL и IL aka DevIL aka библиотеки OpenIL. OpenGL и SDL доступны в качестве встроенных фреймворков, но DevIL - нет. Итак, вот что я сделал:Использование динамической библиотеки (DevIL/OpenIL) в проекте Xcode
Я установил DevIL через доморощенный. Во-первых я изменил формулу, потому что мне нужно Ilut:
brew edit devil
затем отредактированный эти строки
def install
system "./configure", "--disable-debug", "--disable-dependency-tracking",
"--prefix=#{prefix}", "--enable-ILU"
system "make install"
end
как так
def install
system "./configure", "--disable-debug", "--disable-dependency-tracking",
"--prefix=#{prefix}", "--enable-ILU", "--enable-ILUT"
system "make install"
end
и установил все с
[sudo] brew install devil
который дает мне DevI L в /usr/local/include/
и динамических библиотеках в /usr/local/lib/
. Затем я добавил библиотеки в свой проект со следующими шагами:
- правой кнопкой мыши на моей только Target
- Нажмите «Добавить> Существующие рамочные»
- Выберите «Dylibs»
- Добавить
libIL.dylib
,libILU.dylib
иlibILUT.dylib
(там также libIL.1.dylib
, libILU.1.dylib
и libILUT.1.dylib
доступны в списке, является то, что норма ? Ал)
Затем я добавил следующие флаги в "Project> Изменить настройки проекта> Build> Другие Linker Flags":
-lil -lilu -lilut
Когда я пытаюсь скомпилировать и скомпоновать проект я получаю следующие ошибки:
Ld "build/Debug/XCode OpenGL OOP Framework.app/Contents/MacOS/XCode OpenGL OOP Framework" normal i386
cd "/Users/padde/Documents/Studium/sem5/computergrafik/opengl intro/xcode projects/XCode OpenGL OOP Framework"
/Developer/usr/bin/g++-4.2 -arch i386 "-L/Users/padde/Documents/Studium/sem5/computergrafik/opengl intro/xcode projects/XCode OpenGL OOP Framework/build/Debug" "-F/Users/padde/Documents/Studium/sem5/computergrafik/opengl intro/xcode projects/XCode OpenGL OOP Framework/build/Debug" -filelist "/Users/padde/Documents/Studium/sem5/computergrafik/opengl intro/xcode projects/XCode OpenGL OOP Framework/build/XCode OpenGL OOP Framework.build/Debug/XCode OpenGL OOP Framework.build/Objects-normal/i386/XCode OpenGL OOP Framework.LinkFileList" -framework Foundation -framework AppKit -framework GLUT -framework OpenGL -framework SDL -lIL -lILU -lILUT -o "/Users/padde/Documents/Studium/sem5/computergrafik/opengl intro/xcode projects/XCode OpenGL OOP Framework/build/Debug/XCode OpenGL OOP Framework.app/Contents/MacOS/XCode OpenGL OOP Framework"
ld: warning: in /usr/local/lib/libIL.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: in /usr/local/lib/libILU.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: in /usr/local/lib/libILUT.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
Undefined symbols:
"_ilInit", referenced from:
RenderEngine::initManagers() in RenderEngine.o
"_ilGetData", referenced from:
TextureManager::loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, unsigned int, bool, bool)in TextureManager.o
"_ilBindImage", referenced from:
TextureManager::loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, unsigned int, bool, bool)in TextureManager.o
"_ilLoadImage", referenced from:
TextureManager::loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, unsigned int, bool, bool)in TextureManager.o
"_ilGenImages", referenced from:
TextureManager::loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, unsigned int, bool, bool)in TextureManager.o
"_ilGetInteger", referenced from:
TextureManager::loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, unsigned int, bool, bool)in TextureManager.o
TextureManager::loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, unsigned int, bool, bool)in TextureManager.o
TextureManager::loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, unsigned int, bool, bool)in TextureManager.o
TextureManager::loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, unsigned int, bool, bool)in TextureManager.o
"_ilDeleteImages", referenced from:
TextureManager::loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, unsigned int, bool, bool)in TextureManager.o
TextureManager::loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, unsigned int, bool, bool)in TextureManager.o
TextureManager::loadTexture(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, unsigned int, bool, bool)in TextureManager.o
"_main", referenced from:
start in crt1.10.6.o
(maybe you meant: _SDL_main)
ld: symbol(s) not found
collect2: ld returned 1 exit status
видимо, .dylib
файлы не строится правильно, и в результате не были найдены символы, но как я могу сделать эту работу? Я сделал какие-то ошибки? Есть ли способ построить библиотеки по-разному, чтобы они работали с моим проектом, или я могу каким-то образом изменить архитектуру сборки моего проекта?
Большое вам спасибо за помощь!
на самом деле, я столкнулся с множеством проблем при компоновке этой библиотеки, как-то ломает все это ... –
Можете ли вы отправить мне библиотеки, пожалуйста? Вы можете найти мой адрес электронной почты внутри моего окна описания. –
Извините, у меня их больше нет. просто установите homebrew из https://github.com/mxcl/homebrew, а затем введите 'brew install devil' в окне командной строки. если вам нужна стандартная конфигурация, это должно работать отлично. –