【发布时间】:2011-10-12 15:15:24
【问题描述】:
我正在尝试编译以下程序:
#include <iostream>
int main(){
std::cout << "Hello, world!";
return 0;
}
当我编译它时,我得到这个消息:
C:\programs>g++ test.cpp
Info: resolving std::cout by linking to __imp___ZSt4cout (auto-import)
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: warning: a
uto-importing has been activated without --enable-auto-import specified on the c
ommand line.
This should work unless it involves constant data structures referencing symbols
from auto-imported DLLs.
构建成功并且可执行文件按预期运行,但是这个警告仍然让我很恼火。我希望一个成功的构建完全沉默。此消息给人一种错误的印象,即我的代码有问题。
我可以使用g++ -Xlinker --enable-auto-import test.cpp 消除此错误,但这是不可取的,因为它使我需要键入的字符数增加了三倍以编译程序。
问题:
- 为什么最简单的程序会出现此警告?当我编译 Hello World 时,我不希望出现神秘的警告。
- 是否可以在不每次都将标志传递给链接器的情况下消除此警告?隐藏在
c:\mingw某处的配置文件中的一个选项,也许?或者我在安装过程中错过了“自动启用自动导入”复选框?
可能相关的规格
- GCC 版本 4.5.0
- ld.exe 版本 2.20.51.20100613
- Windows XP Service Pack 3
【问题讨论】: