Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wo sucht Rubys have_header-Methode nach Header-Dateien?

Ich glaube, ich habe eine Antwort gefunden.

Es scheint, dass have_header betrachtet den System-Include-Pfad. Wenn die relevanten Umgebungsvariablen nicht gesetzt sind, lauten die standardmäßigen Include-Pfade /usr/local/include und /usr/include .

Wenn Sie sie manuell festlegen möchten, würden Sie Folgendes tun:

export C_INCLUDE_PATH=/usr/include/mysql/

Das gilt auch dann, wenn Sie ein C++-Programm kompilieren, wenn die Header-Datei eine C-Datei ist. Wenn andererseits Ihre Header-Datei C++ und nicht C ist, würden Sie Folgendes tun:

export CPLUS_INCLUDE_PATH=/usr/include/mysql

Natürlich haben Sie den Workaround gefunden, der darin besteht, dir_config('mysql') einzubinden in Ihrer extconf.rb . Dadurch können Sie --with-mysql-include verwenden Option und geben Sie den Pfad manuell ein.

Hier ist meine Quelle:http://www.network-theory.co .uk/docs/gccintro/gccintro_23.html

Und hier ist eine allgemeinere Version derselben Frage (mit Antworten):Wie füge ich einen standardmäßigen Include-Pfad für gcc unter Linux hinzu?