MinGW G++ not compiling



我正试图编译一个简单的"hello-world"C++程序,但当我使用g++命令时,我会得到错误"undefined-reference to`WinMain@16"当我在vscode或终端中编译时会发生这种情况,发生了什么?代码:

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> msg {"Hello World"};
for (const string& word : msg)
{
cout << word << " ";
}
cout << endl;
}

您的错误不是编译器,而是链接器错误。这意味着它仍然编译良好,但无法链接。

头文件被包含(如果它可以在编译器用来查找头的包含路径中找到(,所以这很好。

但要将两个(对象(文件链接在一起,必须知道应该链接哪些文件。它应该如何决定使用哪些文件?

这就是在其中创建项目(以及其他IDE(或创建生成文件的原因。

如果您在"设置->编译器和调试器…->全局编译器设置->[the_Compiler_you_use]->其他设置(最右边的选项卡(->编译器日志"中打开完整的命令行日志记录,您可以看到哪些命令被发送到编译器/链接器,以及单个文件和具有多个文件的项目之间的区别。

顺便说一句:你的书/教程应该解释编译和链接文件所需的步骤,如果包含头会发生什么,以及如何使用预构建库/dll。

最新更新