2016-09-15 14 views
0

Существует множество подобных тем по этому поводу, но я исчерпал все предложения по 15 подобным темам.Неопределенная ссылка на функции SDL с использованием кода :: Блоки

При запуске учебного кода, использующего библиотеку SDL, IDE жалуется на «неопределенную ссылку» на все функции, относящиеся к SDL.

Ситуация

Архитектура: 64 бит

IDE: CodeBlocks 16,01

Компилятор: GNU GCC

То, что я пытался сделать

1) I сказал компилятору найти заголовок под каталогом : ..... \ i686-w64-mingw32 \ включают \ SDL2 используя относительные пути

Я не выбирал \ включать NOR ли я выбираю ..... \ x86_64-w64-mingw32 \ включают \ SDL2

2) Я сказал компилятор, чтобы найти файлы библиотеки в директории: ..... \ i686-w64-mingw32 \ Lib с использованием относительных путей

Я не выбирал .... \ LIB NOR сделал я выбираю ..... \ x86_64-w64-mingw32 \ lib

3) При связывании библиотек я включил четыре библиотеки в каталог .... \ i686-w64-mingw32 \ lib и НЕ другие каталоги, как упоминалось выше.

4) Порядок, в котором были связаны библиотеки заключаются в следующем:

SDL2main.lib

SDL2.lib

SDL2test.lib

5) Я гарантировал, что свойства из main.c были такими, что файл компиляции был проверен, был проверен файл ссылки, и оба флажка отладки и релиза были отмечены. Журнал

Сложение:

-------------- Сложение: Debug в Snake Game (компилятор: GNU GCC компилятора) -------- -------

mingw32-g ++. Exe -L ...... \ Downloads \ SDL2-devel-2.0.4-mingw \ SDL2-2.0.4 \ i686-w64-mingw32 \ lib -o "bin \ Debug \ Snake Game.exe" obj \ Debug \ main.o -lmingw32 ...... \ Downloads \ SDL2-devel-2.0.4-mingw \ SDL2-2.0.4 \ i686- w64-mingw32 \ lib \ libSDL2main.a ...... \ Downloads \ SDL2-devel-2.0.4-mingw \ SDL2-2.0.4 \ i686-w64-mingw32 \ lib \ libSDL2.a OBJ \ Debug \ main.o: В функции SDL_main': C:/XXX/XXX/XXX/XXX/XXX/main.c:9: undefined reference to SDL_WM_SetCaption»

Журнал продолжается и с неопределенными ссылками.

Может ли кто-нибудь помочь мне в решении этой проблемы связывания?

+0

Какой компилятор? MinGW? – HolyBlackCat

+0

, пожалуйста, укажите полную трассировку ссылки, предоставляемую кодом :: blocks: команда и вывод. –

+0

@HolyBlackCat GNU GCC –

ответ

2

В SDL2 нет SDL_WM_SetCaption. Вероятно, ваш код будет использовать старый SDL 1.2. Либо используйте правильную библиотеку, либо измените свой код, например, следуя https://wiki.libsdl.org/MigrationGuide

+0

Я внесла следующие изменения: Я скопировал код SDL2, как вы уже упоминали. –

+0

Теперь я получаю сообщение об ошибке «SDL.h: Нет такого файла или каталога», который теперь стал проблемой поиска компилятора. Я оставил каталоги одинаковыми. Я включил каталоги как относительные, так и не относительные. Я попытался изменить #include на #include "SDL.h". Не повезло –

+0

Я не собираюсь делать догадки, не без исходной и компилируемой строки. Возможно, вы должны добавить исходный код минимальной программы, с которой у вас возникли проблемы с вопросом. Или просто возьмите любой пример SDL2 для начала. Если ваша тестовая программа использует 'SDL_WM_SetCaption' - очевидно, что это не для SDL2, и вы не должны следовать этому руководству (или переключиться на SDL1, который я не рекомендую). Очень вероятно, что вы столкнетесь с совсем другим [ошибками связи] (http://stackoverflow.com/questions/39110217/linker-errors-from-sdl2-in-my-project); было бы гораздо проще использовать динамические библиотеки для новичков. – keltar

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

  • Нет связанных вопросов^_^