J'écris une extension Ruby, pour laquelle j'ai un script de configuration MKMF standard, mais je dois ajouter un drapeau spécial inclus ( - std = c ++ 0x code>) à tous les étapes de compilation C ++. Je ne le veux pas dans les étapes de compilation C, car il jette des avertissements. Comment devrais-je faire cela? require 'mkmf'
create_makefile('thing')
4 Réponses :
J'ai vu des situations similaires traitées en définissant $ (CXX) pour être une combinaison du compilateur et de l'argument souhaité.
CXX=gcc --std=c++0x
Cela ne semble pas fonctionner pour moi dans extconf.rb. Pour une chose, aurait besoin de citations: $ cxx = "gcc -std = c ++ 0x" code>; Pour un autre, un seul tiret pour -std, selon les avertissements du compilateur. Mais de toute façon, il ne semble pas être transmis au makefile - dans le maquillage, je viens de voir cxx = g ++ code>.
C'est une très vieille question, mais c'est ce qui a fonctionné pour moi:
Il suffit de modifier le maquillage généré par MKMF, c'est le moyen le plus simple. P>
Ouvrir et réécrire Makefile après Create_MakeFile (), dans extconf.rb. p>
La modification des trucs rbconfig est difficile. P>
Cela fonctionne pour moi.
$CXXFLAGS += " -std=c++11 "
Comment avez-vous résolu cela à la fin?