Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Ubuntu 18.04 LTS
Ubuntu-fr propose des clés USB de Ubuntu et toutes ses « saveurs » ainsi qu'un magnifique t-shirt pour cette toute nouvelle version d'Ubuntu !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/08/2017, à 13:20

litsubzu

[Résolu] Problème de compilation cmake/gtkmm norme c++ 2011

Bonjour/Bonsoir tout le monde.
Alors depuis quelques jours j'ai commencer à apprendre l'utilisation de cmake et de gtkmm. Mais j'ai un problème avec mon cmake et mon programme ne compile pas.

main.cpp

#include <gtkmm.h>

int main(int argc, char *argv[])
{
  auto app = Gtk::Application::create(argc, argv,"test");

  Gtk::Window w;
  w.set_default_size(800, 800);

  return app->run(w);
}

cmake

project(Fenetre)
cmake_minimum_required(VERSION 2.6)

find_package(PkgConfig)
pkg_check_modules(GTKMM gtkmm-2.4 )

link_directories(
    ${GTKMM_LIBRARY_DIRS} )

include_directories(
${GTKMM_INCLUDE_DIRS} )  



file(

    GLOB_RECURSE

    source_files

    src/*

)


add_executable(

    Fenetre

    ${source_files}

)



target_link_libraries(Fenetre ${GTKMM_LIBRARIES} )

Alors je peux lancer la commande "cmake ..", le makefile est créé, et je n'ai aucune erreur.

Mais lorsque j'utilise la commande "make" j'ai une erreur (je vous met juste le début)

[ 50%] Building CXX object CMakeFiles/Fenetre.dir/src/main.cpp.o
In file included from /usr/include/c++/5/type_traits:35:0,
                 from /usr/include/sigc++-2.0/sigc++/visit_each.h:22,
                 from /usr/include/sigc++-2.0/sigc++/functors/slot.h:6,
                 from /usr/include/sigc++-2.0/sigc++/signal_base.h:27,
                 from /usr/include/sigc++-2.0/sigc++/signal.h:8,
                 from /usr/include/sigc++-2.0/sigc++/sigc++.h:86,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:51,
                 from /usr/include/glibmm-2.4/glibmm.h:87,
                 from /usr/include/gtkmm-2.4/gtkmm.h:87,
                 from /home/maxence/Documents/informatique/TestFenetre/src/main.cpp:1:
/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

Alors j'ai compris que lors de la compilation je devais utiliser l'option "-std=c++11" mais je ne sais pas comment faire pour que mon cmake prenne ça en compte.

Donc si vous avez des suggestion, je suis tout ouïe.

Dernière modification par litsubzu (Le 28/08/2017, à 15:27)

Hors ligne

#2 Le 28/08/2017, à 15:26

litsubzu

Re : [Résolu] Problème de compilation cmake/gtkmm norme c++ 2011

C'est bon j'ai trouvé, il suffisait de forcer cmake a utiliser la bonne norme de C++ en rajoutant

set (CMAKE_CXX_STANDARD 11)

, voilà la bonne version du cmake

project(Fenetre)
cmake_minimum_required(VERSION 2.6)
set (CMAKE_CXX_STANDARD 11)
find_package(PkgConfig)
pkg_check_modules(GTKMM gtkmm-2.4 )

link_directories(
    ${GTKMM_LIBRARY_DIRS} )

include_directories(
${GTKMM_INCLUDE_DIRS} )  



file(

    GLOB_RECURSE

    source_files

    src/*

)


add_executable(

    Fenetre

    ${source_files}

)



target_link_libraries(Fenetre ${GTKMM_LIBRARIES} )

Hors ligne