2010-09-17 7 views
9

J'écris une extension Ruby, pour laquelle j'ai un script de configuration mkmf standard, mais j'ai besoin d'ajouter un indicateur d'inclusion spécial (--std=c++0x) à toute la compilation C++ pas. Je ne le veux pas dans les étapes de compilation en C, parce qu'il lance des avertissements. Comment dois-je faire cela?Comment ajouter un indicateur de compilateur C++ à extconf.rb

require 'mkmf' 
create_makefile('thing') 

Par exemple, j'ai essayé $CXXFLAGS << '-I..', mais CXXFLAGS ne définit pas, encore. Si j'utilise $CXXFLAGS = '-I..', c'est juste écrasé plus tard.

+0

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

Répondre

1

J'ai vu des situations similaires gérées en définissant $ (CXX) comme étant une combinaison du compilateur et de l'argument souhaité.

CXX=gcc --std=c++0x 
+0

Cela ne semble pas fonctionner pour moi dans extconf.rb. Pour une chose, aurait besoin de guillemets: '$ 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 passé au Makefile - dans le Makefile, je vois juste 'CXX = g ++'. –

1

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

$CXXFLAGS += '-I..' 
-1

modifier uniquement le Makefile généré par mkmf, c'est la meilleure façon.

Ouvrez et réécrivez Makefile après create_makefile(), dans extconf.rb.

L'édition de RbConfig est difficile.

4

Cela fonctionne pour moi.

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