MinGW G ++ не компилируется - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь скомпилировать простую программу на C ++ "hello world", но когда я использую команду 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;
}

1 Ответ

0 голосов
/ 14 марта 2020

Ваша ошибка не компилятор, а ошибка компоновщика. Это означает, что он все еще прекрасно компилируется, но не может связать.

Заголовочный файл включается (если он может быть найден в пути включения, который компилятор использует для поиска заголовков), так что это прекрасно работает.

Но для связывания двух (объектных) файлов необходимо знать, какие файлы должны быть связаны. И как он должен решить, какие файлы использовать?

Это является причиной для создания проектов в нем (и других IDE) или для создания make-файлов.

Если вы включаете полный вход из командной строки в систему «Настройки -> Компилятор и отладчик ... -> Глобальные настройки компилятора -> [the_compiler_you_use] -> Другие настройки (крайняя правая вкладка) -> Журнал компилятора» вы можете увидеть, какие команды отправляются компилятору / компоновщику и где разница между одним файлом и проектом с несколькими файлами.

Кстати: ваша книга / учебное пособие должны объяснить шаги, необходимые для компиляции и компоновки файлов, что происходит, если включены заголовки, и как использовать библиотеки / библиотеки предварительной сборки .

...