Eiffel 18.07 пытается установить соединение ODBC из примеров - PullRequest
0 голосов
/ 20 сентября 2018

Попытка просто скомпилировать Eiffel_18.07 / examples / store / esql / в Debian 9 У меня появляется следующая ошибка:

In file included from od243.c:202:0,
                 from big_file_C8_c.c:42:
/opt/Eiffel_18.07/library/store/dbms/rdbms/odbc/Clib/odbc.h:27:17: fatal error: sql.h: No such file or directory
 #include <sql.h>
                 ^
compilation terminated.
Makefile:36: recipe for target 'big_file_C8_c.o' failed
make[1]: *** [big_file_C8_c.o] Error 1
Makefile:72: recipe for target 'C8/Cobj8.o' failed
make: *** [C8/Cobj8.o] Error 2
make: *** Waiting for unfinished jobs....

apt-get install unixodbc unixodbc-dev odbc-postgresql подтолкнуло меня к

gcc: error: /opt/Eiffel_18.07/library/store/spec/linux-x86-64/lib/libodbc.a: No such file or directory
Makefile:177: recipe for target 'esql' failed

Когда я попытаюсь перейти к /opt/Eiffel_18.07/library/store/dbms/rdbms/odbc/Clib, думая, что смогу сгенерировать некоторый код, чтобы он заработал после /opt/Eiffel_18.07/library/store/install в /opt/Eiffel_18.07/library/store/dbms/rdbms/odbc/Clib, пытаясь sudo /opt/Eiffel_18.07/studio/spec/linux-x86-64/bin/finish_freezing -library, получил

cp: cannot stat '/usr/include/eiffelstudio-18.07/config.sh': No such file or directory
Can't find config.sh.
Makefile.SH: 6: .: Can't open ./config.sh

Будучи фанатом Eiffel, похоже, что он работает не из коробки, и я не нашел достаточно документации, чтобы заставить его работать: - ()

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Вход в систему как root изменил мою проблему вместо того, чтобы делать sudo только из команды finish_freezing

    sudo -i

, а затем

    cd ${ISE_EIFFEL}/library/store/dbms/rdbms/odbc/Clib
    finish_freezing -library
0 голосов
/ 20 сентября 2018

Вот последовательность шагов, которые позволили мне построить пример на Ubuntu 16.04 :

  1. Скачать и распаковать EiffelStudio вновый каталог (давайте обозначим абсолютный путь как #ES#).

  2. Установить переменные среды:

    export ISE_EIFFEL=#ES#
    export ISE_PLATFORM=linux-x86-64
    export PATH=$PATH:$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
    

    Эти команды предполагают bash, замените их эквивалентамипри использовании другой оболочки.

  3. Установить пакет unixodbc-dev:

    sudo apt-get install unixodbc-dev
    
  4. Скомпилировать код C библиотеки Eiffel store :

    cd ${ISE_EIFFEL}/library/store/dbms/rdbms/odbc/Clib
    finish_freezing -library
    

    Примечание: нет необходимости добавлять префикс finish_freezing к sudo, если EiffelStudio не установлен в путь без разрешений на запись для обычныхпользователи.В противном случае (например, для первоначального автора сообщения о проблеме в Debian 9 , где EiffelStudio был установлен в /opt), необходимо повысить разрешения:

    sudo -i
    cd ${ISE_EIFFEL}/library/store/dbms/rdbms/odbc/Clib
    finish_freezing -library
    exit
    
  5. Скомпилируйте пример esql:

    cd ${ISE_EIFFEL}/examples/store/esql
    ec -c_compile -config esql.ecf -target esql_odbc
    
  6. Запустите скомпилированный исполняемый файл:

    ./EIFGENs/esql_odbc/W_code/esql
    
...