9
votes

Comment ajouter un drapeau C ++ compiler à extconf.rb

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')


1 commentaires

Comment avez-vous résolu cela à la fin?


4 Réponses :


1
votes

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


1 commentaires

Cela ne semble pas fonctionner pour moi dans extconf.rb. Pour une chose, aurait besoin de citations: $ cxx = "gcc -std = c ++ 0x" ; 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 ++ .



1
votes

C'est une très vieille question, mais c'est ce qui a fonctionné pour moi: xxx


0 commentaires

-1
votes

Il suffit de modifier le maquillage généré par MKMF, c'est le moyen le plus simple.

Ouvrir et réécrire Makefile après Create_MakeFile (), dans extconf.rb.

La modification des trucs rbconfig est difficile.


0 commentaires

4
votes

Cela fonctionne pour moi.

$CXXFLAGS += " -std=c++11 "


0 commentaires