2010-06-07 13 views
29

Necesito compilar algunos archivos con el uso de versiones modificadas de encabezados de biblioteca estándar. Con el compilador de Visual C++ voy a hacer esto mediante el uso de los parámetros /X (Ignorar rutas de inclusión estándar) y /I (directorios de inclusión adicionales). ¿Cómo se debe hacer esto con gcc?gcc: ¿Cómo ignorar las rutas de inclusión estándar?

Respuesta

38
gcc -nostdinc -I/custom/include/path/goes/here 

-nostdinc ignora C estándar incluye directorios
-nostdinc++ ignora C++ estándar incluyen directorios

7

Si acaba de añadir -I a la línea de comandos que se puede ver (especialmente si también se añade -v) que gcc se verá en estas carpetas primero antes de buscar en otras carpetas. Entonces no necesita agregar --nostdinc) para usar una biblioteca STL alternativa.

De esta manera STLport se utiliza:

g++ -I path-to-stlport-include main.cpp -L path-to-stlport-lib -lstlport

+17

Sin embargo, en algunos casos es mejor no tener estándar incluyen rutas de acceso, por lo que las cabeceras estándar no se incluirá en lugar de que estoy usando para la sustitución en caso cuando ese reemplazo falta. Desde mi punto de vista es mucho mejor tener un error de compilación en ese caso que un comportamiento confuso de la unidad compilada con éxito. – okutane

Cuestiones relacionadas