Acredito ter encontrado uma resposta.
Parece que
have_header examina o caminho de inclusão do sistema. Se as variáveis de ambiente relevantes não estiverem definidas, os caminhos de inclusão padrão são /usr/local/include e /usr/include . Se você quiser configurá-los manualmente, você faria algo como:
export C_INCLUDE_PATH=/usr/include/mysql/
Isso é verdade mesmo se você estiver compilando um programa C++, se o arquivo de cabeçalho for um arquivo C. Se, por outro lado, seu arquivo de cabeçalho for C++, não C, você faria:
export CPLUS_INCLUDE_PATH=/usr/include/mysql
Claro, você encontrou a solução alternativa, que é incluir
dir_config('mysql') em seu extconf.rb . Isso permite que você use o --with-mysql-include opção e forneça o caminho manualmente. Aqui está minha fonte:https://www.network-theory.co .uk/docs/gccintro/gccintro_23.html
E aqui está uma versão mais geral da mesma pergunta (com respostas):Como adicionar um caminho de inclusão padrão para gcc no linux?