0

我正在尝试将一个大型项目与 MinGW 的 GCC 4.8.1 链接到 x86 目标。我这样称呼链接器

D:\MyGCCPath\gcc -L [LIBPATHS]  -nostdlib -Wl,-Map,D:\PathToMapFile.map,--emit-relocs [OBJECTFILES AND LIBS] -lmsvcrt -lgcc -o D:\PathToMyOutputFile

通过这个调用,我得到了这个链接器错误:

libgcc.a(__main.o):(.text+0x5a): undefined reference to `atexit'

我尝试了不同的msvcr版本(100 和 90),但这更像是一次绝望的尝试,因为我对这个问题不是很熟悉。我正在使用 MinGW 提供的正确库。有什么办法可以解决这个错误吗?

4

2 回答 2

4

您正在与 链接-nostdlib,并且atexit()是来自 的函数stdlib.h

根据GCC 链接选项

-nostdlib

链接时不要使用标准的系统启动文件或库。没有启动文件,只有您指定的库被传递给链接器,并且指定系统库链接的选项(例如-static-libgccor -shared-libgcc)被忽略。

于 2013-11-06T13:47:57.597 回答
0

库按命令行上使用的顺序进行检查,因此请使用-lgcc -lmsvcrt.

于 2015-08-20T07:41:58.547 回答