Domanda

Come faccio a smettere automake di aggiungere -I. alla mia linea di compilazione?

Sembra automake o libtool oggetti hanno sempre un comando di compilazione simile a:

g++ -DHAVE_CONFIG_H -I. -I./proj/otherdir -o myprog.o myprog.c

Il problema è che ho due file di intestazione con lo stesso nome ....

./proj/otherdir/Header.h
./proj/thisdir/Header.h

Ogni intestazione ha una classe denominata intestazione, anche se ognuno è in uno spazio dei nomi diverso. Così, quando sto costruendo nel ./proj/thisdir, il "-I". viene incluso e non riesco a raggiungere l'intestazione in ./proj/otherdir

Non so come sbarazzarsi di quella iniziale "-I". che appare.

Eventuali suggerimenti?

Grazie Chenz

È stato utile?

Soluzione

tutto quello che dovete fare è impostare nella Makefile.am

DEFAULT_INCLUDES =

e poi tutto è buono nel mondo.

chenz

Altri suggerimenti

Se l'API include le intestazioni differenti quando scrivo

#include <Header.h>

che rende tale API confuso e soggetto ad errori.

Perché non definire la vostra API come

#include <thisdir/Header.h>

e

#include <otherdir/Header.h>

Poi si potrebbe anche fare riferimento a entrambe le intestazioni nello stesso file sorgente, se necessario. E si sa solo dalla lettura della linea comprendono ciò che in realtà comprende.

Cerca nel configure.ac o configure.in per la vostra applicazione, dovrebbe essere in là

E non sbarazzarsi di -I, ma si può mettere percorsi relativi nelle direttive #include:.

#include "../otherdir/Header.h"
#include "../thisdir/Header.h"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top