2017-04-15 3 views
0

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?

+2

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

+0

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. –

+0

@MaxGo Vielen Dank für Ihre Hilfe! Ich habe meinen Beitrag bearbeitet, um das Problem zu verdeutlichen. – Carlz

Antwort

0

CMake Configuration- Boost- Visual Studio - C++

Schritt 1: CMake Installationsdatei herunterladen, installieren und in der lokalen Festplatte

Schritt 2 speichern: Erstellen Sie zwei Ordner in der lokalen Festplatte a) Raw Datei b) Lösungsdatei

Schritt 3: Raw-Datei-Ordner- Erstellen Sie eine Main.cpp-Datei und fügen Sie Ihre rohen C++ Code es und speichern Sie es. Erstellen Sie jetzt im selben Ordner eine TXT-Datei namens CMakeLists und fügen Sie den folgenden Code ein und speichern Sie sie.

cmake_minimum_required(VERSION 3.7) 
project (cmboosttest) 
#find_package(Boost REQUIRED) 
#include_directories(${Boost_INCLUDE_DIR}) 
add_executable(boosttest ${PROJECT_SOURCE_DIR}/Main.cpp) 

Schritt 4: Öffnen Sie CMake in Browse-Quelle und Lösung Dateiordner im Browse-Build-Raw-Datei Ordner auswählen.

Schritt 5: Klicken Sie auf Konfigurieren. Sobald dies erfolgreich ist, klicken Sie auf Generieren.

Schritt 6: Wenn Sie den Ordner Lösungsdatei öffnen, können Sie die erstellte Lösungsdatei sehen. Klicken Sie darauf und Ihr Programm wird in Visual Studio geöffnet. Jetzt baue dein Programm in VS.

Hoffe, das hilft!

Verwandte Themen