Je crois avoir trouvé une réponse.
Il semble que have_header
examine le chemin d'accès du système. Si les variables d'environnement pertinentes ne sont pas définies, les chemins d'inclusion par défaut sont /usr/local/include
et /usr/include
.
Si vous souhaitez les définir manuellement, vous feriez quelque chose comme :
export C_INCLUDE_PATH=/usr/include/mysql/
C'est vrai même si vous compilez un programme C++, si le fichier d'en-tête est un fichier C. Si, d'un autre côté, votre fichier d'en-tête est en C++ et non en C, vous feriez :
export CPLUS_INCLUDE_PATH=/usr/include/mysql
Bien sûr, vous avez trouvé la solution de contournement, qui consiste à inclure dir_config('mysql')
dans votre extconf.rb
. Cela vous permet d'utiliser le --with-mysql-include
option et fournissez le chemin manuellement.
Voici ma source :http://www.network-theory.co .uk/docs/gccintro/gccintro_23.html
Et voici une version plus générale de la même question (avec des réponses) :Comment ajouter un chemin d'inclusion par défaut pour gcc sous Linux ?