Итак, я пытаюсь собрать Erlang/OTP 18.3 на OS X 10.9 Mavericks и, похоже, столкнулся с проблемой, когда библиотеки/заголовки odbc не найдены.
При первой попытке запустить configure
я получил сообщение:
*********************************************************************
********************** APPLICATIONS DISABLED **********************
*********************************************************************
odbc : ODBC library - header check failed
Я искал любую информацию, которую мог найти о библиотеках ODBC в OS X, и нашел предыдущий вопрос/ответ, в котором отмечалось, что "Начиная с OS X 10.9 (Mavericks) Apple перестала включать заголовочные файлы iODBC SQL", предполагая, что это может быть ключевой проблемой.
Поэтому я взял libiodbc с iodbc.org, собрал версию для OS X и попробовал еще раз:
odbc : ODBC library - header check failed
Хм. ОК, по-видимому, сборка для OS X по умолчанию сбрасывает библиотеки/заголовки в /Library/Frameworks. Может процесс настройки OTP не знает туда заглянуть? Поэтому я снова попытался собрать libiodbc, на этот раз с параметром --prefix=/usr/local. И:
odbc : ODBC library - header check failed
Я могу убедиться, что /usr/local/include содержит iodbcext.h, iodbcunix.h, isqlext.h, sql.h, sqltypes.h, iodbcinst.h, isql.h, isqltypes.h, odbcinst.h, sqlext.h , sqlucode.h, поэтому определенно кажется, что заголовки должны быть обнаружены.
Я просмотрел все предыдущие обсуждения в списке рассылки erlang-questions об odbc и сборках и нашел старое сообщение, которое предполагает, что было время, когда процесс настройки не распознавал поиск iodbc в OS X... но быстрая проверка lib/odbc/configure.in под erlang директор исходного кода похоже показывает, что патч, предложенный в этом сообщении, был свернут, и это больше не должно быть проблемой.
Что мне не хватает? Есть ли другой способ указать configure, где искать libiodbc? Что-то еще нужно?
В противном случае - могу ли я каким-то образом отладить/изменить процесс настройки?
Изменить
По предложению @legoscia я заглянул внутрь lib/odbc/config.log
. Там много всего, поэтому я скорее свяжу полный файл, чем опубликую его, но есть две ошибки которые кажутся актуальными:
conftest.c:29:10: fatal error: 'sql.h' file not found
...
conftest.c:29:10: fatal error: 'sqlext.h' file not found
Это странно, потому что, как я уже говорил, я могу убедиться, что /usr/local/include содержит эти файлы. Я использую --with-odbc=/usr/local
. А позже в config.log под заголовком Output Variables
также указывается, что он знает ODBC_INCLUDE='-I/usr/local/include'
. Вроде знает где искать, и файлы в том месте, но что-то их не видит.
lib/odbc/config.log
? - person legoscia   schedule 31.08.2016