Ошибка связи с компилятором mingw с использованием Codelite, не удается найти папку lib

0

Я пытаюсь начать работу с SDL и попытаться скомпилировать приложение "hello world" для проверки моей конфигурации, и я получаю эту ошибку:

C: /MinGW-4.8.1/bin/g++.exe -c "C: /Users/Me/Documents/Cpp_Projects/Demo_Graphics/main.cpp" -g -o0 -Wall -o./Debug/main.cpp.o -I. -IC: /Users/Me/Documents/Cpp_Projects/SDL2/32bit/include C: /MinGW-4.8.1/bin/g++.exe -o./Debug/Demo_Graphics @"Demo_Graphics.txt" -L. -LC: /Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/ C: /MinGW-4.8.1/bin/g++.exe -c "C: /Users/Me/Documents/Cpp_Projects/Demo_Graphics/main.cpp" -g -o0 -Wall -o./Debug/main.cpp.o -I. -IC: /Users/Me/Documents/Cpp_Projects/SDL2/32bit/include C: /MinGW-4.8.1/bin/g++.exe -o./Debug/Demo_Graphics @"Demo_Graphics.txt" -L. -LC: /Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/ c: /mingw-4.8.1/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -LC: /Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/ collect2.exe: error: ld returned 1 exit status mingw32-make.exe[1]: *** [Debug/Demo_Graphics] Error 1 Demo_Graphics.mk:79: recipe for target 'Debug/Demo_Graphics' failed mingw32-make.exe[1]: Leaving directory 'C: /Users/Me/Documents/Cpp_Projects/Demo_Graphics' mingw32-make.exe: *** [All] Error 2 Makefile:4: recipe for target 'All' failed 1 errors, 0 warnings

Каталог C: /Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/ безусловно, существует и содержит в нем необходимые библиотеки SDL, но я не имею в виду компиляторы.
Это предопределенный код, который должен работать, чтобы проблема была где-то установлена?

Теги:
sdl
sdl-2
codelite

1 ответ

0
Лучший ответ

Флаг компилятора -l добавляет зависимость библиотеки. Он не указывает путь для поиска библиотек (это флаг -l), который, как представляется, является тем, что вы ожидаете.

В сообщении об ошибке:

-L.  -lC:/Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/

Вы можете видеть, что компилятор ищет в вашем текущем рабочем каталоге (.) Для библиотеки C: /Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/, но это не библиотека - это каталог в который вы храните библиотеки SDL.

В настройке компоновщика CodeLite вы хотите изменить путь к библиотеке на C: /Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/или использовать

-LC:/Users/Me/Documents/Cpp_Projects/SDL2/32bit/lib/

как флаг сборки.

Вам также необходимо связать с библиотекой SDL2, поэтому вам нужно добавить -l SDL2 (возможно, -l SDL2main, а также я не помню специфику библиотек SDL) для ваших флагов сборки/компоновщика.

  • 0
    Спасибо, именно то, что мне было нужно. Для справки для других использующих Codelite. Помните о двух записях компоновщика: «Путь поиска» для пути и «Библиотеки» для реальных библиотек (очевидно, как только вы это увидите!). SDL в CodeLite требует записи в библиотеках для чтения mingw32;SDL2;SDL2main при условии 32-битного исполняемого файла.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню