Войти
ПрограммированиеФорумГрафика

[Проблемы] чертов DevIL

Страницы: 1 2 Следующая »
#0
22:27, 23 июля 2012

Салют!
Не подскажите, с какого перепуга у меня не собирается DevIL?
либы, dll, хидеры пихал куда только возможно, все бесполезно...
Работаю в Visual Studio 2010, собирал так:
Нашел на С в соответствующей папке Microsoft< Что-т или ничего, не помню>SDKs, там в папку Headers закинул IL\il.h, в папку Lib закинул соответствующие библиотеки из DevIL SDK, dll в папку с exe'шником...
После того, ка не получилось пихал эти файлы куда только можно было(что могло сработать, по-моему разумению)...
Пищет: Неразрешеный символ _impl_Init<и т.п.>

Что делать, уже все достало, хоть сам пиши библиотеку для чтения нужных форматов...

#1
22:40, 23 июля 2012

наверное, проблема в том, что кидать надо не
> куда только можно
а туда, куда нужно. можно в студии в tools->options->projects and solutions->vc++ directories->include files указать путь к хедерам, куда установлен девил. соответственно указать путь к либам, либо #pragma comment(lib, "DevIl.lib") их.

> Не подскажите, с какого перепуга у меня не собирается DevIL?
и советую определиться, у тебя не собирается сам девил или приложение, которое его использует? скорее всего, второе, это совершенно разные вещи.

> Что делать
телепаты в отпуске. если у тебя что-то не получается, никто не сможет за тебя определить, ошибка это компиляции, линковки, версии библиотеки или ещё чего-то, если ты даже не выкладываешь лог компиляции.

#2
22:45, 23 июля 2012

Проблемы в том, что линкеру на хватает библиотек.
Лучше кинь их в некоторую папку, а потом укажи в свойствах проекта дополнительный каталог поиска библиотек, и напиши вверху исходника #pragma comment(lib, "ИмяФайла.lib") для каждого .lib
(или укажи их в доп. зависимостях)

#3
22:59, 23 июля 2012

Я же написал, что начал

куда только можно

кидать после того, как он перестал их обнаруживать(точнее, и не начинал), в SDCs(там у меня лежит OpenGL, и все нормально, к слову сказать)
Попытка указать нужные директории включения и библиотек не помогла.

скорее всего, второе

Нет, второе совершенно не причем, приложение работает.

Окей, вот лог и кусок кода, отвечающий за DevIL(за исключение #include)

1>  Для всех выходных данных обновления не требуется.
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__ilGetData@0 в функции "void __cdecl Init(void)" (?Init@@YAXXZ)
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__ilGetInteger@4 в функции "void __cdecl Init(void)" (?Init@@YAXXZ)
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__ilLoad@8 в функции "void __cdecl Init(void)" (?Init@@YAXXZ)
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__ilInit@0 в функции "void __cdecl Init(void)" (?Init@@YAXXZ)
1>D:\С++\OpenGL Examples\ПроЭкт\Debug\task3.1.exe : fatal error LNK1120: 4 неразрешенных внешних элементов
ilInit();
  //Загрузка файла cоответствующего типа
  //В данном случае png
  Hero = new AUX_RGBImageRec;
  ilLoad(IL_PNG, (const ILstring)"hero.png");  
  //Ширина изображения
  Hero->sizeX = ilGetInteger(IL_IMAGE_WIDTH); 
  //Выота изображения
  Hero->sizeY = ilGetInteger(IL_IMAGE_HEIGHT); 
  //Число байт на пиксель  
  int bpp = ilGetInteger(IL_IMAGE_BYTES_PER_PIXEL);   
  //Размер памяти
  int size = Hero->sizeX * Hero->sizeY * bpp;
  //Память под массив
  Hero->data = new unsigned char[size];
  //Получение растровых данных
  unsigned char *copyData = ilGetData();
  //Копирование растровых данных
  memcpy(Hero->data, copyData, size);
  //Тип хранения данных

Код взял просто из примера.
Спасибо за внимание.

ЗЫ
Кстати, хедеры и библиотеки лежат и в папке с проектом, думал, может это поможет...

#4
23:23, 23 июля 2012

monolit
> Нет, второе совершенно не причем, приложение работает.
Собрать DevIL это сделать собрать его DevIL.lib, если ты DevIL.lib не компилишь, значит ты его не собираешь, ты его не прилинковал к проекту, как ты уже понял.

#5
23:37, 23 июля 2012

И снова monkey in action.

Ты уже прописал в настройках проекта Linker->Input->Additional Dependecies нужные библиотеки, полагаю? И ошибок при сборке не возникает из-за того, что студия не нашла библиотеки?

#6
10:00, 24 июля 2012

eXmire
совершенно верно, прописал и папку к библиотекам, и саму библиотеку. Эффект нулевой...Опять же, у меня там еще прописаны OpenGL библиотеки, они работают...

#7
17:12, 24 июля 2012

А зачем нужен DevIL?
Если для png или jpg, можно использовать libpng и libjpeg.

#8
17:16, 24 июля 2012

monolit
Скидывай свой минимальный проект с проблемой. Правда, у меня 11-я студия, но не думаю, что это критично.

nes
> А зачем нужен DevIL?
Чтобы посмотреть на пример хреновой инженерной мысли.

#9
17:54, 24 июля 2012

nes
> можно использовать libpng и libjpeg.
мне он почему то не очень понравился...Непонятно)

Вот проЭкт, вроде весь...

http://rghost.ru/39389849

Либы находятся в папке Microsoft SDKs /7.0/Lib
хидеры там же, в соответствующей папке Header

ЗЫ
Те файлы я тож скинул

#10
18:19, 24 июля 2012

У меня все собралось. Вправляй руки, дружище.

В проекте твоем поудалял лишние пути и прагмы. Вставил пути, по которым файлы лежат у меня. Все.

#11
18:24, 24 июля 2012

eXmire
Значит студия все таки...
Ибо только DevIL этот не работает..Печалька..
Ладно, спасибо...

#12
19:04, 24 июля 2012

monolit
> Значит студия все таки...
Студия тут не при чем, я гарантирую. Ты от незнания мог всунуть вместо одной версии библиотек другую или еще что.

#13
21:36, 24 июля 2012

По-моему, все  таки причем.Он а сошла с ума, и теперь не компилирует новый проэкт даже с OpenGL(Точнее, компилирует, но ей очень сильно не нравится файл gl.h, забраковала буквально каждую строчку, видите ли, ей там не хватает ";"(буквально везде).
Но старые проекты перекомпилирутся нормально, хоть подключено ТОЖЕ САМОЕ)

ЗЫ
Конечно же, в том самом файле гл.х я ничего не менял...

#14
22:28, 24 июля 2012

Ни одного комментария про крестопроблемы? Куда катится геймдев?

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.

Тема закрыта.