Моя проблема была немного другой, и фактически ни одно из решений, которые я нашел в Интернете, не сработало.
При попытке установить sqlite3-ruby после обновления до Snow Leopard и пробной версии XCode 4.0 я получил сообщение
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... no
sqlite3 is missing. Try 'port install sqlite3 +universal' or 'yum install sqlite3-devel'
однако sqlite3 был установлен, а также переустановка не помогла. У меня уже были проблемы с 64-битными и универсальными версиями, но это я тоже очистил.
На самом деле, я мог бы работать с sqlite3.
Итак, установка gem также должна сказать вам что-то вроде:
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.1 for inspection.
Итак, перейдите в этот каталог и найдите файл extconf.rb, мой был в ./ext/sqlite3/extconf.rb
Я обнаружил, что ruby проверяет библиотеку sqlite3, используя
asplode('sqlite3') unless find_library 'sqlite3', 'sqlite3_libversion_number'
Итак, я запустил irb и проверил, почему это не сработало:
require 'mkmf'
find_library 'sqlite3', 'sqlite3_libversion_number'
Ну, на самом деле это работает, и мой рубин находит библиотеку.
Так почему же это не работает из установки?
Проверка extconf.rb внимательно показала следующую строку:
sqlite = dir_config('sqlite3', ['/usr/local', '/opt/local', '/usr'])
Когда я выполняю это в irb:
require 'mkmf'
sqlite = dir_config('sqlite3', ['/usr/local', '/opt/local', '/usr'])
find_library 'sqlite3', 'sqlite3_libversion_number'
Я на удивление больше не найду библиотеку. На самом деле я не понимаю, как это может быть, но вот что происходит.
Итак, это лекарство:
закомментируйте строку
sqlite = dir_config('sqlite3', ['/usr/local', '/opt/local', '/usr'])
в extconf.rb
Затем из /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.1 я выдал
sudo ruby ./setup.rb
Это прошло без проблем (я пытался, прежде чем закомментировать строку sqlite =, и она не работала)
Перезапустил приложение ruby, у которого были проблемы с sqlite.
Работает нормально.
Надеюсь, это кому-нибудь поможет.
1039 * Icecream *