Допустим, у меня такой простой код
// main.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
string text = "Hello world.";
cout<<text<<endl;
return 0;
}
Он работает нормально. Теперь я хочу убедиться, что это кроссплатформенный. На github CI у меня есть проблема, чтобы проверить это со многими компиляторами, но когда дело доходит до cl.exe
, у меня возникают трудности
cl.exe /std:c++latest main.cpp
фатальная ошибка C1083: Невозможно открыть файл включения: 'iostream' : Нет такого файла или каталога
Я знаю, это потому, что Microsoft ожидает от меня включения stdafx.h
в начале моего кода, что я не хочу делать. Я пробовал несколько других работ, которые не работали:
cl.exe /std:c++latest /Y- main.cpp
фатальная ошибка C1083: Невозможно открыть файл включения: 'iostream' : Нет такого файла или каталога
cl.exe /std:c++latest /Yc"stdafx.pch" /Yu"stdafx.h" /FI"stdafx.h" main.cpp
Неустранимая ошибка C1083: Невозможно открыть предварительно скомпилированный файл заголовка : 'stdafx.pch': Нет такого файла или каталога
cl.exe /std:c++latest /Yu"stdafx.h" /FI"stdafx.h" main.cpp
фатальная ошибка C1083 : Невозможно открыть файл скомпилированного заголовка: 'stdafx.pch': Нет такого файла или каталога
cl.exe /std:c++latest /Yc"stdafx.h" /FI"stdafx.h" main.cpp
фатальная ошибка C1083: Невозможно открыть включаемый файл: 'stdafx.h': Нет такого файла или каталога
Итак, каково решение?