MinGW G ++无法编译

问题描述 投票:0回答:1

我正在尝试编译一个简单的“ hello world” C ++程序,但是当我使用g ++命令时,出现错误“对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;
}
c++ visual-studio-code g++
1个回答
0
投票

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

包含头文件(如果可以在编译器用来查找头的包含路径中找到它,因此可以正常工作。

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

这就是在其中(和其他IDE的)中创建项目或创建Makefile的原因。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.