Tôi tin rằng mình đã tìm ra câu trả lời.
Có vẻ như have_header
nhìn vào hệ thống bao gồm đường dẫn. Nếu các biến môi trường liên quan không được đặt, đường dẫn bao gồm mặc định là /usr/local/include
và /usr/include
.
Nếu bạn muốn đặt chúng theo cách thủ công, bạn sẽ làm như sau:
export C_INCLUDE_PATH=/usr/include/mysql/
Điều đó đúng ngay cả khi bạn đang biên dịch một chương trình C ++, nếu tệp tiêu đề là tệp C. Mặt khác, nếu tệp tiêu đề của bạn là C ++, không phải C, bạn sẽ làm như sau:
export CPLUS_INCLUDE_PATH=/usr/include/mysql
Tất nhiên, bạn đã tìm thấy công việc xung quanh, đó là bao gồm dir_config('mysql')
trong extconf.rb
của bạn . Điều đó cho phép bạn sử dụng --with-mysql-include
và cung cấp đường dẫn theo cách thủ công.
Đây là nguồn của tôi: http://www.network-theory.co .uk / docs / gccintro / gccintro_23.html
Và đây là phiên bản tổng quát hơn của câu hỏi tương tự (có câu trả lời): Làm cách nào để thêm đường dẫn bao gồm mặc định cho gcc trong linux?