Ich arbeite seit einigen Jahren an C++ und habe einige Sachen kompiliert, aber das folgende Problem ist für mich völlig neu und macht einfach keinen Sinn.cpp-Datei kompiliert nicht in clang ++ und g ++
Im Folgenden sind die Schritte, die ich folgende:
- Cygwin Setup mit g ++ Version mit: 6.4.0 und Klirren ++ Version: 4.0.1
- erstellt einen neuen CPP-fie mit erhabenem Text hinzugefügt einfache cout und kompiliert
mit dem Befehl: Clang ++ -g -Wall -std = C++ 14 thread1.cpp -O Thread, funktioniert gut. - hinzugefügt neue Inhalte vielleicht eine andere cout, diesmal nach der Kompilierung ich bekomme eine Tonne Fehler Angabe seiner nicht utf-8-Datei.
- speicherte die Datei mit UTF-8-Codierung in sublime Text und versuchte auch mit UTF-8 BOM-Codierung, immer noch immer nicht utf-8 Dateifehler.
- den Dateibefehl in Cygwin ausgeführt, um Dateicodierung zu überprüfen, Datei -i thread1.cpp, wurde als thread1.cpp ausgegeben: text/x-c; charset = utf-8.
Irgendwelche Hinweise darauf, was hier schief gehen könnte?
Es folgt der Code, der kompiliert: gibt Fehler
#include "iostream"
#include "thread"
#include "mutex"
using namespace std;
class threadFunctor{
public:
};
int main(int argc , char** argv){
cout << "Hello";
return 0;
}
folgenden Code:
#include "iostream"
#include "thread"
#include "mutex"
using namespace std;
class threadFunctor{
public:
};
int main(int argc , char** argv){
cout << "Hello World";
return 0;
}
Es folgt ein Ausschnitt der Fehler generiert:
./thread:3:29: error: source file is not valid UTF-8
$<U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000>PE<U+0000><U+0000>d<86><U+0014><U+0000><87><F5><CC>Y<U+0000><U+0014><U+0001><U+0000><A9><U+0002><U+0000><U+0000><F0><U+0000>'...
^
./thread:3:30: warning: null character ignored [-Wnull-character]
$<U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000>PE<U+0000><U+0000>d<86><U+0014><U+0000><87><F5><CC>Y<U+0000><U+0014><U+0001><U+0000><A9><U+0002><U+0000><U+0000><F0><U+0000>'...
^
./thread:3:31: warning: missing terminating ' character [-Winvalid-pp-token]
$<U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000>PE<U+0000><U+0000>d<86><U+0014><U+0000><87><F5><CC>Y<U+0000><U+0014><U+0001><U+0000><A9><U+0002><U+0000><U+0000><F0><U+0000>'...
^
./thread:4:3: warning: null character ignored [-Wnull-character]
5<U+0001><U+0000><U+0000><E8><B0><U+0001><U+0000><U+0000>E1<C0>1<D2>1<C9><E8><C4><U+0001><U+0000><U+0000>E1<C0>1<D2>1<C9><E8><C8><U+0001><U+0000><U+0000>E1<C0>1<D2>1<C9><E8><CC>...
^
./thread:4:4: warning: null character ignored [-Wnull-character]
5<U+0001><U+0000><U+0000><E8><B0><U+0001><U+0000><U+0000>E1<C0>1<D2>1<C9><E8><C4><U+0001><U+0000><U+0000>E1<C0>1<D2>1<C9><E8><C8><U+0001><U+0000><U+0000>E1<C0>1<D2>1<C9><E8><CC>...
^
./thread:4:5: error: source file is not valid UTF-8
5<U+0001><U+0000><U+0000><E8><B0><U+0001><U+0000><U+0000>E1<C0>1<D2>1<C9><E8><C4><U+0001><U+0000><U+0000>E1<C0>1<D2>1<C9><E8><C8><U+0001><U+0000><U+0000>E1<C0>1<D2>1<C9><E8><CC>.
Sie haben einen Cout hinzugefügt ... Ändert die Zeichenfolge, die Sie ausgeben, in ein ['u8' Literal] (https://stackoverflow.com/questions/13444930/is-the-u8-string-literal-necessary-in -c11) einen Unterschied machen? – StoryTeller
Eine tatsächliche [mcve] mit genauen Fehlermeldungen würde wirklich helfen. – chris