Грешка при свързване в Codelite с MinGW-w64

Опитвам се да използвам MinGW-W64 вместо MinGW в Codelite. Когато компилирам прост проект "hello, world", всичко е наред. Но когато се опитам да свържа някои библиотеки, получавам странна грешка при свързване. Проект с точно същите настройки се компилира от MinGW с всякакви проблеми. Има компилация и за двата варианта:

MinGW GCC 4.8.1

`C:\Windows\system32\cmd.exe /C D:/apps/mingw/bin/mingw32-make.exe -j8 SHELL=cmd.exe -e -f  Makefile
"----------Building project:[ code - Debug ]----------"
mingw32-make.exe[1]: Entering directory 'D:/Projects/codelite/code'
codelite-cc D:/apps/mingw/bin/g++.exe  -c  "D:/Projects/codelite/code/src/main.cpp" -Wfatal-errors -g -O0 -pedantic -W -std=c++11 -Wall  -o ./Debug/src_main.cpp.o -I./inc/
D:/apps/mingw/bin/g++.exe -o bin/code @"code.txt" -L./lib/  -lopengl32
mingw32-make.exe[1]: Leaving directory 'D:/Projects/codelite/code'
====0 errors, 0 warnings====`

MinGW-W64 GCC 5.2.0

`C:\Windows\system32\cmd.exe /C D:/apps/mingw-w64/mingw32/bin/mingw32-make.exe -j8 SHELL=cmd.exe -e -f  Makefile
"----------Building project:[ code - Debug ]----------"
mingw32-make.exe[1]: Entering directory 'D:/Projects/codelite/code'
codelite-cc D:/apps/mingw-w64/mingw32/bin/g++.exe  -c  "D:/Projects/codelite/code/src/main.cpp" -Wfatal-errors -g -O0 -pedantic -W -std=c++11 -Wall  -o ./Debug/src_main.cpp.o -I./inc/
D:/apps/mingw-w64/mingw32/bin/g++.exe -o bin/code @"code.txt" -L./lib/  -lopengl32
g++.exe: error: @code.txt -L./lib/: No such file or directory
mingw32-make.exe[1]: *** [bin/code] Error 1
code.mk:78: recipe for target 'bin/code' failed
mingw32-make.exe[1]: Leaving directory 'D:/Projects/codelite/code'
mingw32-make.exe: *** [All] Error 2
Makefile:4: recipe for target 'All' failed
====1 errors, 0 warnings====`

person desperius    schedule 05.11.2015    source източник


Отговори (1)


Това изглежда като грешка във вашата верига от инструменти, а не в CodeLite. Има интервал между "@code.text" и -L./lib и по някаква причина g++ не го вижда...

Вложих парите си в инструмента mingw32-make. Можете да кажете на CodeLite да използва mingw32-make.exe от версия 4.8.1 (която работи): settings->build settings->compilers->[YOUR COMPILER NAME]->Make

Друг вариант е да деактивирате опцията, която казва на CodeLite да генерира Makefile, който предава списъка с обекти чрез файл към компилатора:

Settings->Build Settings->compilers->[YOUR COMPILER NAME]->Advanced tab и премахнете отметката от опцията: предаване на списък с обекти към свързващия файл чрез файл

person Eran    schedule 06.11.2015
comment
Първият подход разреши този проблем. Благодаря ти много! Искам да опитам второ, но не мога да намеря тази опция в настройките. Използвам Codelite версия 9.0.0 - person desperius; 06.11.2015
comment
Вашето решение не е правилно, защото това са разрешенията - person ; 21.05.2017