Hallo Leute,
nach langer Zeit habe ich mal wieder eine Problem, bei dem ich nicht weiter komme. Neuerdings habe ich ein Netbook mit Linux (Archlinux) drauf und auf dem möchte ich jetzt natürlich auch ein bisl proggen
. Deshalb hab ich mal ein bisschen getestet und bin gleich auf ein kleines Problem gestoßen. Ich wollte ein altes Projekt compilieren, welches wxWidgets benutzt. also hab ich das alles soweit eingerichtet und wollte dann compilieren. Also für das Projekt hab ich dann cmake benutzt. das hat auch alles funktioniert; also zumindest für meine kleinen Testprojekte. als ich dann aber besagtes Projekt compilieren wollte kamen ein paar fehler, die anscheinent etwas mit den deutsche Umlauten zu tuen hatten. Folgende Fehler kamen:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[ 50%] Building CXX object crypt/CMakeFiles/crypt.dir/MainWindow.cpp.o
/home/***/workspace/c++/crypt/src/MainWindow.cpp: In Konstruktor »CryptWindow::CryptWindow(const wxString&)«:
/home/***/workspace/c++/crypt/src/MainWindow.cpp:23:1: Fehler: converting to execution character set: Ungültiges oder unvollständiges Multi-Byte- oder Wide-Zeichen
/home/***/workspace/c++/crypt/src/MainWindow.cpp: In Elementfunktion »wxString CryptWindow::GetFilePath()«:
/home/***/workspace/c++/crypt/src/MainWindow.cpp:177:1: Fehler: converting to execution character set: Ungültiges oder unvollständiges Multi-Byte- oder Wide-Zeichen
/home/***/workspace/c++/crypt/src/MainWindow.cpp: In Elementfunktion »bool CryptWindow::LoadFileFromString(const wxString&)«:
/home/***/workspace/c++/crypt/src/MainWindow.cpp:223:1: Fehler: converting to execution character set: Ungültiges oder unvollständiges Multi-Byte- oder Wide-Zeichen
/home/***/workspace/c++/crypt/src/MainWindow.cpp:223:1: Fehler: converting to execution character set: Ungültiges oder unvollständiges Multi-Byte- oder Wide-Zeichen
/home/tobi/workspace/c++/crypt/src/MainWindow.cpp: In Elementfunktion »bool CryptWindow::LoadFile()«:
/home/tobi/workspace/c++/crypt/src/MainWindow.cpp:273:1: Fehler: converting to execution character set: Ungültiges oder unvollständiges Multi-Byte- oder Wide-Zeichen
make[2]: *** [crypt/CMakeFiles/crypt.dir/MainWindow.cpp.o] Fehler 1
make[1]: *** [crypt/CMakeFiles/crypt.dir/all] Fehler 2
make: *** [all] Fehler 2
|
Hab ein bisschen im Internet gesucht aber nichts richtiges gefunden. Außer dass es anscheinend an den Umlauten liegt. Habe dann wie man sehen kann mein System auch auf deutsch umgestellt, das hat aber nichts gerbracht.
Hier noch die CMakeLists.txt:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
|
cmake_minimum_required(VERSION 2.7)
project(Crypt)
# wxWidgets Stuff
find_package(wxWidgets COMPONENTS core base REQUIRED)
include( "${wxWidgets_USE_FILE}" )
add_definitions(-DUNICODE -D_UNICODE)
add_subdirectory(../src ${CMAKE_CURRENT_BINARY_DIR}/crypt)
|
Weiß da vlt jemand was ? Das witzige ist nämlich, dass es bei anderen Tests funktioniert hat, auch wenn dann statt einemm Ü ein ? kam, was ein bisschen komisch war, denn mit char anstatt wchar_t hat es funktioniert...
PS: hier noch ein bisschen code aus der CryptWindow::GetFilePath():
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
wxString CryptWindow::GetFilePath()
{
if(m_FileInput->IsEmpty())
{
wxFileDialog dlg(this, _T("Wähle eine Speicherdatei"), _T(""), _T(""), _T("Crypt-Datei (*.cry)|*.cry|Text-Datei (*.txt)|*.txt|Alle Dateien (*.*)|*.*"), wxFD_SAVE);
dlg.ShowModal();
m_FileInput->SetValue(dlg.GetPath());
return dlg.GetPath();
}
return m_FileInput->GetValue();
}
|