Nana GUI: No such file or directory <experimental/filesystem>



  • Mahlzeit,

    versuche mich gerade an einem neuen GUI-Framework. Wollte mal Nana ausprobieren.
    Allerdings bekomme ich es nicht zum laufen.

    Vorweg: ich benutze CLion und MinGW

    Bin folgenderweiße vorgegangen:

    1. Download Nana 1.7.1 (auch mit 1.7.2 versucht)
    2. Nach C:/Nana enpackt.
    3. mittels CMake GUI und folgenden Einstellungen vorgenommen:
    4. Link Text
    5. cmake C:\nana -G "MinGW Makefiles" -DNANA_CMAKE_NANA_FILESYSTEM_FORCE=1
    6. ins Verzeichis C:\nana\build\bin gewechselt
    7. mingw32-make
    8. mingw32-make install

    In meinen Clion Projekt in der CMakeLists.txt folgende Einstellungen

    cmake_minimum_required(VERSION 3.14)
    project(NanaGUI)
    
    set(CMAKE_CXX_STANDARD 14)
    
    set(NANA_PATH "C:/Program Files (x86)/nana")
    set(NANA_INCLUDE_DIRS "${NANA_PATH}/include")
    set(NANA_LIBRARIES "${NANA_PATH}/lib")
    
    #add_compile_options(-lstdc++fs)
    
    link_libraries(stdc++fs -lstdc++fs)
    
    message(STATUS "NANA_INCLUDE_DIRS: ${NANA_INCLUDE_DIRS}")
    message(STATUS "NANA_LIBRARIES: ${NANA_LIBRARIES}")
    
    include_directories(${NANA_INCLUDE_DIRS})
    
    add_executable(NanaGUI main.cpp)
    
    target_link_libraries(NanaGUI "${NANA_LIBRARIES}/libnana.a")
    

    Und meine Test GUI ist folgende

    #include <nana/gui.hpp>
    #include <nana/gui/widgets/button.hpp>
    using namespace nana;
    
    int main(){
        form fm;
        fm.caption(L"Hello, World!");
        button btn(fm, rectangle{20, 20, 150, 30});
        btn.caption(L"Quit");
        btn.events().click(API::exit);
        fm.show();
        exec();
    }
    

    Beim Ausführen bekomme ich nun immer folgende Fehlermeldung

    In file included from C:/PROGRA~2/nana/include/nana/paint/graphics.hpp:20,
                     from C:/PROGRA~2/nana/include/nana/gui/effects.hpp:15,
                     from C:/PROGRA~2/nana/include/nana/gui/programming_interface.hpp:16,
                     from C:/PROGRA~2/nana/include/nana/gui/wvl.hpp:18,
                     from C:/PROGRA~2/nana/include/nana/gui.hpp:1,
                     from C:\Users\User19\Documents\Entwicklung\CLionProjects\NanaGUI\main.cpp:8:
    C:/PROGRA~2/nana/include/nana/filesystem/filesystem.hpp:127:14: fatal error: experimental/filesystem: No such file or directory
     #    include <experimental/filesystem>
                  ^~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    mingw32-make.exe[3]: *** [CMakeFiles\NanaGUI.dir\build.make:63: CMakeFiles/NanaGUI.dir/main.cpp.obj] Error 1
    mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:72: CMakeFiles/NanaGUI.dir/all] Error 2
    mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:84: CMakeFiles/NanaGUI.dir/rule] Error 2
    mingw32-make.exe: *** [Makefile:117: NanaGUI] Error 2
    

    Jemand ein Tipp. Oder noch besser eine Ordentliche Anleitung zum einrichten von Nana? Die "offiziellen" sind ja auch nicht das wahre...



  • @swoopo sagte in Nana GUI: No such file or directory <experimental/filesystem>:

    Beim Ausführen

    Nein, beim Übersetzten.

    -DNANA_CMAKE_NANA_FILESYSTEM_FORCE=1

    Warum? Dein mingw scheint das doch nicht zu implementieren.

    Jemand ein Tipp.

    Visual Studio 2019



  • @manni66 sagte in Nana GUI: No such file or directory <experimental/filesystem>

    -DNANA_CMAKE_NANA_FILESYSTEM_FORCE=1

    Warum? Dein mingw scheint das doch nicht zu implementieren.

    Bin nach der Anleitung von Github für MinGW vorgegangen.

    Visual Studio 2019

    Ist nicht so meine bevorzugte Wahl...



  • @swoopo sagte in Nana GUI: No such file or directory <experimental/filesystem>:

    Jemand ein Tipp.

    Ändere <experimental/filesystem> in <filesystem>.

    @swoopo sagte in Nana GUI: No such file or directory <experimental/filesystem>:

    Ist nicht so meine bevorzugte Wahl...

    Dann nimm wenigstens Mingw-w64. Mingw ist tot.





  • @wob Ich kenne die Library zwar nicht, aber ich bezweifle stark daß irgendwas am Buildprozess automagisch die include directives ändert.



  • Mingw scheint noch aktuell zu sein, siehe msys2.



  • Habe es jetzt mit MSYS2 und MinGW zum laufen bekommen



  • @Swordfish sagte in Nana GUI: No such file or directory <experimental/filesystem>:

    @wob Ich kenne die Library zwar nicht, aber ich bezweifle stark daß irgendwas am Buildprozess automagisch die include directives ändert.

    Huch? Gleich der erste Abschnitt in der FAQ ist aber doch: "Compilation errors or linkage errors by std::filesystem" - und da geht es genau darum, das std::filesystem durch boost::filesystem oder nana::filesystem zu ersetzen (oder einen geeigneten Compiler zu verwenden).

    Aber @swoopo hat es ja inzwischen hinbekommen.



  • @wob Das ist genau der Grund warum ich Deine Antwort upvoted habe. Ich kanns mir halt nur nicht vorstellen. Wenns funktioniert is es toll ^^


Log in to reply