gpt4 book ai didi

c++ - 使用 MinGW 编译器时出现链接错误(找不到 __main)

转载 作者:搜寻专家 更新时间:2023-10-30 23:49:09 26 4
gpt4 key购买 nike

我试图在 Windows 上使用 MinGW 编译一个非常简单的程序,但我仍然遇到链接错误。要编译的程序只是 C++ hello world。

Z:\dev>type test.cpp
#include <iostream>

int main() {
std::cout << "Hello World!\n";
return 0;
}

当然,只用MinGW的g++就可以了。

Z:\dev>g++ test.cpp -o test.exe
Z:\dev>test.exe
Hello World!

然而,我试图将编译和链接分开,但失败了。

Z:\dev>g++ -c test.cpp -o test.o

Z:\dev>ld test.o -o test.exe
test.o:test.cpp:(.text+0xa): undefined reference to `__main'
test.o:test.cpp:(.text+0x19): undefined reference to `std::cout'
test.o:test.cpp:(.text+0x1e): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& s
<std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.o:test.cpp:(.text+0x37): undefined reference to `std::ios_base::Init::~Init()'
test.o:test.cpp:(.text+0x5a): undefined reference to `std::ios_base::Init::Init()'
test.o:test.cpp:(.text+0x66): undefined reference to `atexit'

很明显我错过了一些库。所以,我尝试链接了几个 MinGW 的库,但仍然没有用,例如 -lmsvcrt。我也做了 lstd​​c++,但仍然找不到 __main 和大量警告消息。

你能帮我看看哪些库应该链接在一起吗?

最佳答案

尝试使用g++ 链接,而不是使用ld

试试这个:

Z:\dev> g++ -c test.cpp -o test.o
Z:\dev> g++ -o test.exe test.o

关于c++ - 使用 MinGW 编译器时出现链接错误(找不到 __main),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4981826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com