Ich arbeite derzeit an einem Projekt auf Windows 10 und wurde gebeten, einige C++ - Code dafür zu verwenden. Der Code wurde im Hinblick auf die Unabhängigkeit von Plattformen geschrieben. Also habe ich die angegebenen cmake-Dateien verwendet, um eine visuelle Studio-Lösung zu erstellen (VS 2015 Update 3). Aber wenn ich versuche, die Lösung zu bauen, gibt es mir über 900 Fehler und Warnungen.cmake generierte Visual Studio-Lösung konnte nicht erstellt werden
Das gleiche Projekt wurde erfolgreich auf einem Mac mit cmake und g ++ erstellt. Das Projekt selbst verwendet eine Qt GUI und einige zusätzliche Bibliotheken wie Boost.
die Fehler Um zu verstehen, was Sie wissen müssen, dass die Lösung von 5 Projekten besteht: ALL_BUILD, iModControll, iModDaemon, iModView und ZERO_CHECK
Es gibt viele Fehler wie:
missing type specifier - int assumed. Note: C++ does not support default-int
inconsistent dll binding
declaration not found
unexpected token before ;
and so on... You can see the full list here
Ich bin Sehr neu zu CMake und kein VS-Experte, also bitte hilf mir zu verstehen, was hier schief gelaufen ist. Nochmals: der unter OSX perfekt kompilierte Code.
EDIT:
I verwendet mingw, wie @MaxGo vorgeschlagen. Die Fehler und Warnungen wurden danach reduziert. Hier ist, was ich habe jetzt:
warning: void DC_TermFunc()' redeclared without dllimport attribute after being referenced with dll linkage
void DC_TermFunc(void)
{
if(controller)
{
qDebug() << "Terminating iModSkynet";
runthread->terminate();
delete runthread; // This will delete the controller too
}
}
error: function 'void DC_SendData(char, char*, int)' definition is marked dllimport
IMODCONTROLLSHARED_EXPORT void DC_SendData(char oc, char* data, int length)
{
QByteArray qdata = QByteArray(data, length);
controller->sendBlenderCommunication(oc, qdata);
}
Die anderen Fehler ähnlich sind. Meine Frage ist: Gibt es irgendwelche bekannten Probleme beim Portieren von C++ - Quellcode in Windows, warum zeigt es nicht so viele Fehler wie in VS und was kann ich tun, um diese Fehler zu beheben?
Die Frage ist fast ohne den Code selbst nutzlos. Bevor Sie den Code bereitstellen, beachten Sie, dass es sich um eine Art [mcve] handeln sollte - Stack Overflow ist für bestimmte Probleme gedacht, nicht für "hilf mir, einen großen Code zu debuggen". Es ist jedoch besser, jeden spezifischen Fehler zu googeln und entsprechende Maßnahmen zu ergreifen: entweder um den Code zu korrigieren oder um die Compiler-Optionen zu ändern. – Tsyvarev
Wenn Ihr Projekt noch nie mit Visual Studio MSVC Compiler erstellt wurde, wird es vor allem nicht "von der Box" funktionieren. Sie können versuchen, das Projekt mit MinGW unter Windows zu erstellen, das könnte besser funktionieren. –
@MaxGo Vielen Dank für Ihre Hilfe! Ich habe meinen Beitrag bearbeitet, um das Problem zu verdeutlichen. – Carlz