Code::Blocks 链接不起作用,在提示时它确实起作用

Posted

技术标签:

【中文标题】Code::Blocks 链接不起作用,在提示时它确实起作用【英文标题】:Code::Blocks linking not working, on prompt it does 【发布时间】:2012-05-10 17:35:39 【问题描述】:

我在链接我在 Code::Blocks、Windows 7 上进行的 FLTK 测试项目时遇到了很多麻烦。

在花了很多时间了解如何以正确的顺序放置库之后,我设法完成了该项目。但是仍然存在链接问题:

mingw32-g++.exe -Wall -fexceptions  -IC:\Users\Svalorzen\Documents\Projects\fltk-1.3.0 -mwindows -DWIN32 -DUSE_OPENGL32 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE     -c C:\Users\Svalorzen\Documents\Projects\test\main.cpp -o obj\Debug\main.o
mingw32-g++.exe  -o bin\Debug\test.exe obj\Debug\main.o   -LC:\Users\Svalorzen\Documents\Projects\fltk-1.3.0\lib -mwindows -lfltk -lole32 -luuid -lcomctl32  
C:\Users\Svalorzen\Documents\Projects\fltk-1.3.0\lib/libfltk.a(Fl_Native_File_Chooser.o):Fl_Native_File_Chooser.cxx:(.text+0x1556): undefined reference to `__chkstk_ms'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 1 seconds)
1 errors, 0 warnings

但是,使用 Code::Blocks 显示的完全相同的脚本,在命令提示符下执行(甚至是 msys 重要的),可以正确编译和链接所有内容。生成的 exe 也可以工作。

C:\Users\Svalorzen\Documents\Projects\test>mingw32-g++ -Wall -fexceptions -IC:\Users\Svalorzen\Documents\Projects\fltk-1.3.0 -mwindows -DWIN32 -DUSE_OPENGL32 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c C:\Users\Svalorzen\Documents\Projects\test\main.cpp -o obj\Debug\main.o

C:\Users\Svalorzen\Documents\Projects\test>mingw32-g++ -o bin\Debug\test.exe obj\Debug\main.o -LC:\Users\Svalorzen\Documents\Projects\fltk-1.3.0\lib -mwindows -lfltk -lole32 -luuid -lcomctl32

C:\Users\Svalorzen\Documents\Projects\test>dir bin\Debug\test.exe
   Volume in drive C has no label.
   Volume Serial Number is 00E8-6659

Directory of C:\Users\Svalorzen\Documents\Projects\test\bin\Debug

10/05/2012  19:01           661.087 test.exe
           1 File(s)        661.087 bytes
           0 Dir(s)  66.016.849.920 bytes free

指令中的路径都是绝对的,所以我不太明白这是为什么。

我做错了什么?我应该检查什么?

编辑:原来我安装了一个我不记得的 MinGW,而 Code::Blocks 正在使用那个。我改变了它,现在一切都修复了。

【问题讨论】:

【参考方案1】:

如果您的 MinGW 是最新的,请尝试添加 -no-vcproj-no-dsp,然后运行 ​​mingw32-make confclean

【讨论】:

【参考方案2】:

原来我安装了一个我不记得的 MinGW,而 Code::Blocks 正在使用那个。

我使用创建库的相同编译器设置 Code::Blocks,现在一切正常。

【讨论】:

以上是关于Code::Blocks 链接不起作用,在提示时它确实起作用的主要内容,如果未能解决你的问题,请参考以下文章

一个 href 链接不起作用-当我单击链接 snimka1.html 时它不起作用,可能是许多 div 标签?-

Code::Blocks汉化教程(附带汉化包)

Code::Blocks汉化教程(附带汉化包)

如何设置 code::blocks 以在目标链接器选项之前链接项目链接器选项?

页面中的链接不起作用

使用code::blocks编译windows的dll链接库