Le fichier premake (premake5.lua) mentionne 11 C++ avec cet extrait:
filter { "language:C++", "toolset:gcc" }
buildoptions { "-std=c++11" }
cela ne semble pas fonctionner. Ceci est probablement lié à this issue, dont la solution est d'utiliser cppdialect
qui est seulement disponible à partir de premake 5 alpha 12 (au moment de l'écriture, la dernière version est alpha 11, ce qui signifie que vous devez télécharger la dernière version directement sur GitHub).
Comme une solution rapide, vous pouvez suivre le propre réponse de l'OP: modifier les fichiers de Make Box2D (également HelloWorld et Testbed si nécessaire) en ajoutant -std=c++11
(resp gnu++11
, c++14
, etc..) À ALL_CXXFLAGS
.
Si vous préférez modifier le premake lui-même:
- Dans premake5.lua, Commentaire sur le filtre/buildoptions extrait mentionné ci-dessus
- Dans les projets Box2D (également HelloWorld et Testbed si nécessaire), ajouter
flags "C++11"
(vous pouvez également ajouter buildoptions { "-std=c++11" }
, la seule différence est qu'il ajoutera également l'option à ALL_CFLAGS)
Exemple:
project "Box2D"
kind "StaticLib"
language "C++"
flags "C++11" -- added
files { "Box2D/**.h", "Box2D/**.cpp" }
includedirs { "." }
J'ai l'intention d'envoyer un PR au référentiel Box2D avec cette modification. EDIT: Fait, voici le PR.
quelle version de gcc avez-vous installée? – slf
@slf J'utilise gcc 4.8.4 –
@slf Je résous mon problème en ajoutant -std = gnu ++ 0x à makefile, généré par premake –