Поскольку вы добавили выходные данные сборки, ответ теперь прост: ваши ошибки компоновщика не имеют ничего общего с DevIL.
Вам необходимо установить ссылку на SDL (простой слой DirectMedia).
Поскольку SDL имеет интерфейс C и - IIRC - не требует, чтобы DLL использовала ту же кучу, что и приложение, версия VC8 "Библиотеки разработки" должна подойти (даже если Вы используете VC10). Просто добавьте SDL.lib
в «Дополнительные зависимости», и все будет в порядке.
EDIT
OK.
Вы либо
- нет ссылок на требуемые .lib файлы (DevIL.lib и т. Д.) Или
- ссылки на поврежденные / неправильные .lib файлы
По крайней мере, я не могу придумать другого объяснения.
Названия, упомянутые в журнале сборки (__imp__ilInit@0
и т. Д.), Верны, и текущий "DevIL SDK" ( DevIL 1.7.8 SDK для 32-разрядной Windows ) отлично работает с VC10 (я только что подтвердил это).
Чтобы убедиться, что вы ссылаетесь на DevIL.lib и т. Д., Поместите в файл main.cpp следующее:
#pragma comment(lib, "DevIL.lib")
#pragma comment(lib, "ILU.lib")
#pragma comment(lib, "ILUT.lib")
Чтобы убедиться, что вы ссылаетесь на правильную версию этих файлов, повторно загрузите весь SDK и попробуйте снова с новыми файлами.
РЕДАКТИРОВАТЬ 2
Поскольку я получил половину вознаграждения, я чувствую, что должен быть более полезным:)
Последнее, что вы можете попробовать: включить вывод подробного компоновщика, чтобы проверить, находит ли компоновщик правильную версию DevIL.lib
. (Если он не найдет DevIL.lib
, вы получите ошибку LNK1104: cannot open file 'DevIL.lib'
- и поскольку вы не получаете это сообщение, это не может быть проблемой.)
Чтобы включить подробный вывод компоновщика, добавьте переключатель /VERBOSE
(в разделе «Настройки конфигурации» -> «Компоновщик» -> Командная строка -> Дополнительные параметры).
Это даст вам кучу сообщений. Скопируйте их в ваш любимый редактор и найдите строки, содержащие DevIL.lib
. Одна из строк должна выглядеть следующим образом: Searching X:\path\to\DevIL.lib:
- это путь к копии DevIL.lib
, используемой компоновщиком. Если это не тот путь, куда вы скопировали файлы из SDK, который вы скачали, вы обнаружили проблему.
И если нет строк, содержащих DevIL.lib
, то компоновщик даже не пытается найти его. Однако я никогда не видел, чтобы #pragma comment
потерпел неудачу, поэтому, если вы действительно добавили те строки, которые почти наверняка не могут иметь место.
Кстати: пожалуйста, дайте мне знать, если вам удалось решить эту проблему. Это так странно, что я действительно хочу знать, что происходит :) 1059 *