2010-09-17 768 views
9

Estoy escribiendo una extensión de Ruby, para la cual tengo un script de configuración de mkmf estándar, pero necesito agregar un marcador de inclusión especial (--std=c++0x) a toda la compilación de C++ pasos. No lo quiero en los pasos de compilación de C, porque arroja advertencias. ¿Cómo debería hacer esto?Cómo agregar un indicador de compilador de C++ a extconf.rb

require 'mkmf' 
create_makefile('thing') 

Por ejemplo, he intentado $CXXFLAGS << '-I..', pero CXXFLAGS no está definido, sin embargo. Si uso $CXXFLAGS = '-I..', se sobrescribe más tarde.

+0

¿Cómo resolvió esto al final? –

Respuesta

1

He visto situaciones similares manejadas al definir $ (CXX) como una combinación del compilador y el argumento deseado.

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

Esto no parece funcionar para mí en extconf.rb. Por un lado, necesitaría cotizaciones: '$ CXX =" gcc -std = C++ 0x "'; para otro, solo una carrera para -std, de acuerdo con las advertencias del compilador. Pero de cualquier manera, parece que no pasa al Makefile: en el Makefile, simplemente veo 'CXX = g ++'. –

1

Ésta es una pregunta muy antiguo, pero esto es lo que funcionó para mí:

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

sólo editar el Makefile generado por MKMF, esa es la manera más fácil.

Abra y vuelva a escribir Makefile después de create_makefile(), en extconf.rb.

Editar las cosas de RbConfig es difícil.

4

Esto funciona para mí.

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