Compilieren mit msbuild



  • Jetzt wird es spannend. Aber von welchen docs sprichst du. In diesem Fall habe ich es noch nicht gemacht.

    Muss man da das Projekt von Hand einfüllen?

    Gruss Renato



  • Noch ein Nachtrag mit der Batch Datei rscars.bat stimmt was nicht. Der Pfad für die PlatformSDK stimmt nicht. Welchen Pfad muss ich da eintragen?

    Gruss Renato



  • Also, wenn ich mich noch recht erinnere stehen die verfügbaren Targets nicht in der Projektdatei sondern in extra *.target Dateien.
    Vereinfacht gesagt, rufe ich rsvars.bat auf und anschließend:

    call msbuild.exe %MyBuildToolsPath%\all.proj /target:%OveralTargets% "/property:config=%MsbCgConfig%;configuration=%MsbCgConfig%" /logger:%MsbLogger%
    

    all.proj ist eine eigene msbuild Projekdatei welche verschiedenste Einstellungen durchführt, WIX einbindet, ...
    OveralTargets beinhaltet für Embarcadero clean;build

    Folgendes sollte also funktionieren:

    call rsvars.bat
    call msbuild.exe deinProject.cbproj /target:clean;build /property:config=release
    

    .groupproj ist für die Projektgruppe zuständig und spielt hier keine Rolle.

    Das ganze funktioniert bei mir unter 2010, XE3 und XE6 (den Rest kann ich nicht testen).

    Eventuell stimmt auch in deiner PATH Umgebungsvariable etwas nicht.
    Wenn Du mehrere Compiler mit msbuild installiert hast, sollte der zu verwendete am Anfang stehen, sonst kann es sein, daß aus der Kommandozeile der falsche gezogen wird.

    @snwFlake
    Wo kommt denn dein XML-Schnippsel her?
    VCTargetPpath hört sich für mich irgendwie nach VisualC an!?

    Viel Erfolg
    MfG Stephan



  • Ciao Stephan

    Herzlichen Dank für die Hilfe. Ich werde es mal ausprobieren. Ich denke, das es bestimmt funktioniert.

    Gruss Renato



  • Ciao Stephan

    Es ist zum verückt werden. Mit "clean" funktionierts ohne Prpbleme. Wenn ich aber "build" oder "rebuild" verwende kommt immer der folgende Fehler:

    Build FAILED.
    
    "C:\Users\renato\Documents\Projekte_XE\Sonne\sonne.cbproj" (rebuild target) (1) ->
    (_CLANGCoreCompile target) ->
      C:\Program Files (x86)\Embarcadero\Studio\15.0\Bin\CodeGear.Cpp.Targets(2010,5): error MSB6006: "clang" exited with code -1073741819.
    

    Was kann ich noch machen? Ich habe langsam aber sicher das Gefühl, dass der Comandezeilencompiler mit C++ Standard 11 nichts anfangen kann.

    Gruss Renato



  • Jetzt bin ich einen Schritt weiter gekommen. Ich habe mal die Meldungen angeschaut, welche beim Compilieren in der IDE geschrieben werden. Danach bin ich auf folgende Befehlszeile gestossen.

    msbuild.exe C:\Users\renato\Documents\Projekte_XE\Sonne\sonne.cbproj /t:Clean;MakeObjs;RcCompile;_PerformLink /p:config=Release;platform=Win64
    

    Alle Targes funktionieren. Nur der "MakeObjs" bokt. Der schmeisst den Fehler:

    "C:\Users\renato\Documents\Projekte_XE\Sonne\sonne.cbproj" (MakeObjs target) (1) ->
    (_CLANGCoreCompile target) ->
      C:\Program Files (x86)\Embarcadero\Studio\15.0\Bin\CodeGear.Cpp.Targets(2010,5): error MSB6006: "clang" exited with code -1073741819.
    

    Warum auch immer. Aber ohne dem geht es einfach nicht weiter.

    Gruss Renato



  • Da wir noch nicht auf der aktuellen Version sind kann ich dies mit clang nicht testen.
    Jedoch die IDE verwendet doch auch nichts anderes als msbuild.

    Robbiani schrieb:

    C:\Program Files (x86)\Embarcadero\Studio\15.0\Bin\CodeGear.Cpp.Targets(2010,5): error MSB6006: "clang" exited with code -1073741819.
    

    Hast Du mal nachgeschaut, was in der Zeile steht, bzw. ob es mehr Infos zu der Fehlernummer gibt?

    MfG Stephan



  • Ciao Stephan

    Ich habe nachgeschaut. Aber es gibt leider nicht mehr Infos zum Fehler. Alles was zurückkommt habe ich eingetragen.

    Gruss Renato



  • pure Spekulation: Von -1073741819 die unteren 2 Bytes ergibt 5, das steht laut https://msdn.microsoft.com/en-us/library/ms681382(v=vs.85).aspx für ERROR_ACCESS_DENIED.

    Vielleicht mal ProcMon (SysInternals/MS) laufen lassen und gucken ob sich da irgendwas in die Richtung (access denied) findet?



  • Hallo zusammen

    egal schrieb:

    pure Spekulation: Von -1073741819 die unteren 2 Bytes ergibt 5, das steht laut https://msdn.microsoft.com/en-us/library/ms681382(v=vs.85).aspx für ERROR_ACCESS_DENIED.

    Vielleicht mal ProcMon (SysInternals/MS) laufen lassen und gucken ob sich da irgendwas in die Richtung (access denied) findet?

    Wenn ich Google nach der Fehlernummer befrage, bekomme ich einige Einträge mit Dateisystemfehler im Bezug auf Win10 und Adminrechten.

    @Robbiani
    Arbeitest Du mit Win10?
    Starte das ganze mal mit Adminrechten.

    MfG Stephan



  • [Fehlercode]
    Ich habe Blödsinn erzählt... Ich hab offensichtlich in die falsche Liste geschaut, dort waren keine so hohen Nummern wie 0xC0000005 zu finden also hab ich einfach das "C" weggelassen was natürlich Blödsinn war. Wenn man in die richtige Liste schaut findet sich dort auch 0xC0000005 STATUS_ACCESS_VIOLATION. Wieder was gelernt.


Anmelden zum Antworten