Actualmente estoy tratando de obtener un programa para compilar en un sistema que no tengo control.Anular la ruta de búsqueda del encabezado predeterminado
El problema que estoy teniendo es los directorios incluir este aspecto:
/usr/include:
gmpxx.h gmp.h
/usr/local/include:
gmp.h
En mi cpp, utilizo
#include <gmpxx.h>
y esto encuentra el archivo correcto en /usr/include
, sin embargo cuando gmpxx.h incluye gmp.h, lo saca de /usr/local/include
, lo que rompe la compilación.
En este momento, veo 3 soluciones muy feas al problema
En mi cpp, añadir
#include </usr/include/gmp.h>
Tener un absoluto ruta de inclusión es bastante feo y no portátiles, y creo que esto una especie de cosa debería pertenecer al Makefile en lugar de a la fuente.añadir la bandera
-nostdinc
a mi makefile, y especificar las rutas incluir a manocrear enlaces simbólicos locales a las bibliotecas que realmente quiero, y luego hacer incluye locales (
#include "gmp.h"
)
¿Hay alguna solución mejor que me falta?
¿se le permite modificar gmpxx.h? –
No lo soy, lo único que puedo cambiar es que los archivos locales (cpp, makefile) – cobbal
# 2 tienen mucho sentido. Makefile muestra cómo construir el archivo. Otros dos parecen hackish. –