Vari errori di compilazione se inserisco la libreria cpp-httplib

di il
6 risposte

Vari errori di compilazione se inserisco la libreria cpp-httplib

Sto creando un piccolo quiz con qt. Le domande le sto acquisendo tramite richieste get e per queste richieste sto provando ad utilizzare la libreria cpp-httplib. Per quanto riguarda il compilatore sto usando gcc 13 su Windows10 tramite MSYS2. Appena inserisco l'inclusione della libreria ho avuto vari errori del genere:

Non so proprio come risolvere questi errori. Se vi servono altre informazioni ditemelo. Grazie in anticipo.

6 Risposte

  • Re: Vari errori di compilazione se inserisco la libreria cpp-httplib

    Prova a ricompilare usando la flag -std=c++14

    Nel C++17 hanno fatto l'azzardo di definire il ‘byte’

  • Re: Vari errori di compilazione se inserisco la libreria cpp-httplib

    18/08/2023 - Weierstrass ha scritto:


    Prova a ricompilare usando la flag -std=c++14

    Ho provato a modificare lo versione dello standard usato in CMake, così:

    set(CMAKE_CXX_STANDARD 14)

    Anche usando il c++11 mi da sempre gli stessi problemi. Avevo usato quest'ultima versione anche perchè da dove l'ho presa (https://github.com/yhirose/cpp-httplib) dice che è una libreria del c++11.

    Aggiornamento: Io utilizzo vscode con l'estensione CMake Tools. Andando a fare il run ad un certo punto esce questa scritta nell'output di CMake:

    [build] C:\msys64\mingw64\bin\g++.exe -DMINGW_HAS_SECURE_API=1 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_OPENGLWIDGETS_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DUNICODE -DWIN32 -DWIN64 -DWINVER=0x0A00 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN32_WINNT=0x0A00 -D_WIN64 -I"C:/Users/archi/progetti_C++/Quiz (QT)/build/Quiz_autogen/include" -I"C:/Users/archi/Librerie c++" -isystem C:/msys64/mingw64/include/qt6/QtWidgets -isystem C:/msys64/mingw64/include/qt6 -isystem C:/msys64/mingw64/include/qt6/QtCore -isystem C:/msys64/mingw64/share/qt6/mkspecs/win32-g++ -isystem C:/msys64/mingw64/include/qt6/QtGui -isystem C:/msys64/mingw64/include/qt6/QtMultimedia -isystem C:/msys64/mingw64/include/qt6/QtNetwork -isystem C:/msys64/mingw64/include/qt6/QtOpenGLWidgets -isystem C:/msys64/mingw64/include/qt6/QtOpenGL -O3 -DNDEBUG -std=gnu++17 -MD -MT CMakeFiles/Quiz.dir/Quiz_autogen/mocs_compilation.cpp.obj -MF CMakeFiles\Quiz.dir\Quiz_autogen\mocs_compilation.cpp.obj.d -o CMakeFiles/Quiz.dir/Quiz_autogen/mocs_compilation.cpp.obj -c "C:/Users/archi/progetti_C++/Quiz (QT)/build/Quiz_autogen/mocs_compilation.cpp"

    Quindi sembra che nonostante io gli dica di usare c++11 lui utilizzi c++17. Ho provato ad inserire anche questi comandi nel CmakeLists:

    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    set(CMAKE_CXX_EXTENSIONS Off)

    e

    target_compile_features(Quiz PRIVATE cxx_std_11)

    Ma non cambia nulla.

  • Re: Vari errori di compilazione se inserisco la libreria cpp-httplib

    Non è un problema della libreria che è solo un header, è un problema di vscode e di una scelta infelice del comitato che ha definito lo standard.

    Qui dice che devi aggiungere _HAS_STD_BYTE=0 nelle define del preprocessore, oppure DEFINES +="_HAS_STD_BYTE=0" nel file di progetto .pro

    https://stackoverflow.com/questions/58059048/ambiguous-byte-definition-in-rpcndr-and-cstddef

  • Re: Vari errori di compilazione se inserisco la libreria cpp-httplib

    18/08/2023 - Weierstrass ha scritto:


    Non è un problema della libreria che è solo un header, è un problema di vscode e di una scelta infelice del comitato che ha definito lo standard.

    Qui dice che devi aggiungere _HAS_STD_BYTE=0 nelle define del preprocessore, oppure DEFINES +="_HAS_STD_BYTE=0" nel file di progetto .pro

    https://stackoverflow.com/questions/58059048/ambiguous-byte-definition-in-rpcndr-and-cstddef

    Dove lo devo inserire “#define _HAS_STD_BYTE 0”? L'ho messo nel file .cpp dove ho incluso la libreria e non cambia nulla. Idem se lo metto nel relativo .h

  • Re: Vari errori di compilazione se inserisco la libreria cpp-httplib

    Ho risolto inserendo #define WIN32_LEAN_AND_MEAN prima di includere la libreria e Windows.h. Grazie Weirstrass

  • Re: Vari errori di compilazione se inserisco la libreria cpp-httplib

    Stavo guardando, ma non capisco il motivo dell'ambiguità, dal momento che uno è definito nel std:: .

Devi accedere o registrarti per scrivere nel forum
6 risposte