CMake und VisualStudio fügen was ein, was da nicht hin soll

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Schrompf
Moderator
Beiträge: 5040
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

CMake und VisualStudio fügen was ein, was da nicht hin soll

Beitrag von Schrompf »

Moin,

ich will seit Ewigkeiten von meinen handgepflegten 20 jahre alten VisualStudio-Solutions weg. Nehm ich halt klassisch CMake. Dabei will ich auch gleich alles von Boost rauswerfen, hatte ich auch schon ewig vor. Und das Einzige, was ich von Boost wirklich brauche, ist Context, deren CMakeList.txt ich jetzt radikal zusammengestrichen habe. Ist immer noch zwei Seiten lang, kann ich gern posten bei Bedarf.

Darin gibt's jedenfalls einen einfachen Aufruf

Code: Alles auswählen

// ergibt "1> [CMake] Sources sind asm/make_x86_64_ms_pe_masm.asm;asm/jump_x86_64_ms_pe_masm.asm;asm/ontop_x86_64_ms_pe_masm.asm"
message("Sources sind ${IMPL_SOURCES}")
add_library(boost_context  ${IMPL_SOURCES})
Und der ergibt nach Ninja generiert dann drei funktionierende MASM-Aufrufe und das Linken:

Code: Alles auswählen

FAILED: SourceExt/context/boost_context.lib 
cmd.exe /C "cd . && C:\PROGRA~1\VISUAL~2\VC\Tools\MSVC\1433~1.316\bin\Hostx64\x64\lib.exe cr SourceExt\context\boost_context.lib /machine:x64 SourceExt\context\CMakeFiles\boost_context.dir\asm\make_x86_64_ms_pe_masm.asm.obj SourceExt\context\CMakeFiles\boost_context.dir\asm\jump_x86_64_ms_pe_masm.asm.obj SourceExt\context\CMakeFiles\boost_context.dir\asm\ontop_x86_64_ms_pe_masm.asm.obj  && cd ."
Man bemerke das kleine "cr" direkt am Anfang der CommandLineArgs. Wo kommt das her? Der Linker hält es jedenfalls für eine weitere Eingabedatei und findet die nicht, deswegen scheitert das Linken und ich komm nicht weiter. Ich finde kein "cr" im ganzen Projekt.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Antworten