Credo di aver trovato una risposta.
Sembra che have_header
esamina il percorso di inclusione del sistema. Se le variabili di ambiente rilevanti non sono impostate, i percorsi di inclusione predefiniti sono /usr/local/include
e /usr/include
.
Se vuoi impostarli manualmente, dovresti fare qualcosa del tipo:
export C_INCLUDE_PATH=/usr/include/mysql/
Questo è vero anche se stai compilando un programma C++, se il file di intestazione è un file C. Se, d'altra parte, il tuo file di intestazione è C++, non C, dovresti fare:
export CPLUS_INCLUDE_PATH=/usr/include/mysql
Naturalmente, hai trovato la soluzione alternativa, che consiste nell'includere dir_config('mysql')
nel tuo extconf.rb
. Ciò ti consente di utilizzare --with-mysql-include
opzione e fornire il percorso manualmente.
Ecco la mia fonte:http://www.network-theory.co .uk/docs/gccintro/gccintro_23.html
Ed ecco una versione più generale della stessa domanda (con risposte):Come aggiungere un percorso di inclusione predefinito per gcc in linux?