Mysql
 sql >> Base de données >  >> RDS >> Mysql

Où la méthode have_header de Ruby recherche-t-elle les fichiers d'en-tête ?

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 ?