带有 MinGW-w64 的 Codelite 中的链接器错误
Linker error in Codelite with MinGW-w64
我正在尝试在 Codelite 中使用 MinGW-W64 而不是 MinGW。当我编译简单的 "hello, world" 项目时就可以了。但是当我尝试 link 一些库时,我得到了一个奇怪的 linker 错误。具有完全相同设置的项目由 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====`
这看起来像是您的工具链中的错误,而不是 CodeLite 中的错误。
在 "@code.text"
和 -L./lib
之间有一个 space,由于某种原因 g++
没有看到它...
我把钱花在了 mingw32-make
工具上。您可以告诉 CodeLite 使用 4.8.1 版本(有效)中的 mingw32-make.exe
:settings->build settings->compilers->[YOUR COMPILER NAME]->Make
另一个选项是禁用告诉 CodeLite 生成 Makefile
的选项,该选项通过文件将对象列表传递给编译器:
Settings->Build Settings->compilers->[YOUR COMPILER NAME]->Advanced tab
并取消选中选项:通过文件
将对象列表传递给链接器
我正在尝试在 Codelite 中使用 MinGW-W64 而不是 MinGW。当我编译简单的 "hello, world" 项目时就可以了。但是当我尝试 link 一些库时,我得到了一个奇怪的 linker 错误。具有完全相同设置的项目由 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====`
这看起来像是您的工具链中的错误,而不是 CodeLite 中的错误。
在 "@code.text"
和 -L./lib
之间有一个 space,由于某种原因 g++
没有看到它...
我把钱花在了 mingw32-make
工具上。您可以告诉 CodeLite 使用 4.8.1 版本(有效)中的 mingw32-make.exe
:settings->build settings->compilers->[YOUR COMPILER NAME]->Make
另一个选项是禁用告诉 CodeLite 生成 Makefile
的选项,该选项通过文件将对象列表传递给编译器:
Settings->Build Settings->compilers->[YOUR COMPILER NAME]->Advanced tab
并取消选中选项:通过文件