mingw 构建错误:未定义对 `__chkstk_ms' 的引用

Posted

技术标签:

【中文标题】mingw 构建错误:未定义对 `__chkstk_ms\' 的引用【英文标题】:mingw building error: undefined reference to `__chkstk_ms'mingw 构建错误:未定义对 `__chkstk_ms' 的引用 【发布时间】:2013-11-22 02:32:16 【问题描述】:

我刚刚在windows中安装了mingw,我写了一个helloWorld程序来测试它。代码:

#include <stdio.h>

int main()
    printf("hello, world!\n");
    return 0;

结果:

C:/MinGW/lib/crt2.o:crt1.c:(.text+0x1f1): undefined reference to `__chkstk_ms'
C:/MinGW/lib/libmingwex.a(glob.o):glob.c:(.text+0x5e3): undefined reference to `__chkstk_ms'
C:/MinGW/lib/libmingwex.a(glob.o):glob.c:(.text+0x690): undefined reference to `__chkstk_ms'
C:/MinGW/lib/libmingwex.a(glob.o):glob.c:(.text+0x7e9): undefined reference to `__chkstk_ms'
C:/MinGW/lib/libmingwex.a(glob.o):glob.c:(.text+0x82d): undefined reference to `__chkstk_ms'
C:/MinGW/lib/libmingwex.a(glob.o):glob.c:(.text+0xc0d): more undefined references to `__chkstk_ms' follow

here 也有类似的问题。但是我检查了 MinGW 安装管理器,似乎我没有安装旧版本的 gcc 或 g++。有小伙伴可以帮忙吗?谢谢!

顺便说一句,由于我使用pythonxy作为我的python环境,所以我的C:下还有一个C:/MinGW32-xy目录,它不包含在系统变量'path'中。那会影响吗?

【问题讨论】:

尝试删除 C:\Mingw 文件夹重新运行安装管理器 你是怎么编译的? 我正在尝试在 sublime text3 中构建它。但是,我也使用了 cmd line: "gcc -o filename.exe filename.c" 仍然得到同样的错误。 How to solve -------undefined reference to `__chkstk_ms'-------on mingw的可能重复 【参考方案1】:

好吧,我详细检查了我的系统变量,发现 C:/MinGW32-xy/bin 在 C:/MinGW/bin 之前。所以当我在命令行中输入 gcc -v 时,它显示 MinGW32-xy 正在工作。我换了他们的顺序,问题就解决了。 但是,我真的不知道 MinGW 和 MinGW32-xy 之间的区别。有小伙伴可以指点一下吗?

【讨论】:

您之前是否安装过另一个版本的 mingw?它可能包含在您下载的 IDE 中?最好不要在您的机器上混合安装多个 mingw,除非您有一些特殊要求并且确切地知道如何处理它。 这是我的问题。正如我所说,我之前安装了 pythonxy,它为我安装了一个 MinGW 和一个 MinGW32-xy,这导致了问题。我安装了 pythonxy,因为它帮助我解决了版本冲突问题。【参考方案2】:

我使用 mingw 4.7.1

我在 E:\Portable Apps 中创建了一个文件名 main.cpp

我的 gcc 在 C:\Program Files\CodeBlocks\MinGW\bin

我在 cmd (cmd = 命令行) 中输入它,它对我来说很好:

e:
cd\Portable Apps
"C:\Program Files\CodeBlocks\MinGW\bin\gcc" -c "main.cpp"
"C:\Program Files\CodeBlocks\MinGW\bin\gcc" "main.o" -o "hello 1.exe" -L"main.cpp"

【讨论】:

以上是关于mingw 构建错误:未定义对 `__chkstk_ms' 的引用的主要内容,如果未能解决你的问题,请参考以下文章

对“__mingw_vsscanf”的未定义引用

VC DLL 中 C++ 符号的 MinGw 未定义符号

正在尝试构建 xerces c++ 解析器。 Netbeans 和命令行构建错误未定义对“xercesc_3_2 ...”的引用

_chkstk() 函数的目的是啥?

分段错误 chkstk_ms C++

Boost 1_65_1 不能用 OpenSSL 1.1.0g “未定义的参考”编译,但用“nm”找到