CMake IDE erzeugt kein cmakefile.txt



  • Hallo zusammen,

    wie kann ich ein CMake file erzeugen , zb aus eclipse oder vstudio, es gibt eine cmake -IDE
    die jedoch generiert mir kein CMake -File . Danke für hinwiese.



  • Willst du eine Vorlagendatei haben oder aber aus einem vorhandenen VC++ Projekt eine CMake-Datei erzeugen?
    Für letzteres gibt es u.a. CMake Converter (Python-Script) und vcxproj2cmake (Perl).



  • @KahnSoft
    CMake Files schreibt man normalerweise mit Hand.



  • Hallo ,

    ja ich will cmakefiles erzeugen, das geht auch ganz gut auf linux mit der IDE CLion

    Ich habe eine Konsolen exe und eine lib die von der exe eingebunden werden muss.
    leider bindet das nicht meine lib ein die liegt einen Ordner höher aber Schrägstriche werden nicht geduldet ?

    Es fehlt also der hinweis wo das *.lib (in linux *.a) liegt. Wie kann ich den Verweis auf die Lib im Verzeichnis dadrüber angeben ?

    cmake_minimum_required(VERSION 3.22)
    project(ListHand)

    set(CMAKE_CXX_STANDARD 14)

    add_library(PointField PointField.a)

    add_executable(ListHand ListHand.cpp)

    Danke für Hinweise



  • Mit add_library erzeugst du eigene libs analog zu dem add_executable. Du willst hier aber,wenn ich das richtig verstanden habe, eine lib in die exe linken. Das geht mittels target_link_libraries, vorher die Library mit find_library suchen und finden.



  • Hallo Wob,

    vielen Dank für deine Antwort, nach einer Odyssee des Probierens ist es mir gelungen auf Ubuntu
    die exe mit ihrer lib zu compilieren.

    für die exe habe ich dann verwendet: (Mit Referenz auf das Verzeichnis daneben)

    cmake_minimum_required(VERSION 3.22)
    project(LstHnd)
    
    set(CMAKE_CXX_STANDARD 14)
    
    add_library(PtField ../PtField /PtField .cpp  ../PtField /PtField .h) # Back references must be compile always
    
    add_executable(LstHnd LstHnd.cpp) #Must stay befor link
    
    target_link_libraries(LstHnd PtField )
    

    und die Lib kann ich nun separat kompilieren:

    cmake_minimum_required(VERSION 3.22)
    project(PtField )
    
    set(CMAKE_CXX_STANDARD 14)
    
    add_library(PtField PtField .cpp PtField .h)
    

    Viele Grüße
    K.


Anmelden zum Antworten