2010-09-17 11 views
9

Piszę rozszerzenie Ruby, dla którego mam standardowy skrypt konfiguracyjny mkmf, ale muszę dodać specjalną flagę include (--std=c++0x) do całej kompilacji C++ kroki. Nie chcę tego w krokach kompilacji C, ponieważ to powoduje ostrzeżenia. Jak mam to zrobić?Jak dodać flagę kompilatora C++ do extconf.rb

require 'mkmf' 
create_makefile('thing') 

Na przykład, próbowałem $CXXFLAGS << '-I..', ale CXXFLAGS nie jest zdefiniowana, jeszcze. Jeśli użyję $CXXFLAGS = '-I..', zostanie to po prostu nadpisane później.

+0

Jak rozwiązać to w końcu? –

Odpowiedz

1

Widziałem podobne sytuacje obsługiwane przez zdefiniowanie $ (CXX) jako kombinację kompilatora i pożądanego argumentu.

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

To nie wydaje się działać dla mnie w extconf.rb. Po pierwsze, potrzebowałoby wyceny: '$ CXX =" gcc -std = C++ 0x "'; dla innego, tylko jeden kreska dla -std, zgodnie z ostrzeżeniami kompilatora. Ale tak czy owak, nie wydaje się, że zostanie przekazany do Makefile - w Makefile widzę po prostu 'CXX = g ++'. –

1

Jest to bardzo stare pytanie, ale to, co pracował dla mnie:

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

Wystarczy zmodyfikować Makefile generowane przez mkmf, to najprostszy sposób.

Otwórz i przerób Makefile po create_makefile(), w extconf.rb.

Edycja rzeczy RbConfig jest trudna.

4

To działa dla mnie.

$CXXFLAGS += " -std=c++11 " 
Powiązane problemy