The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Компиляция с поддержкой MySQL, !*! Minotaur, 11-Авг-03, 14:37  [смотреть все]
Всем доброго времени суток!
Проблема: не могу с помощью ld скомпилировать проект. Получаю ошибку

trafstat.o: In function `program_init':
trafstat.o(.text+0x33b): undefined reference to `MYSQL_CONNECT'
trafstat.p(46) Error: Error while linking

Проверил все:
/etc/ld.so.conf
Причем не удается скомпилировать ни с параметром -static, ни без него.
Все библиотеки на месте, ldconfig -r дает правильную распечатку, в параметрах ld указываю -lmysqlclient -L/path/to/mysqlclient
Ничего не помогает... :( Перечитал много форумов - везде все касается
параметров -lmysqlclient -L/path/to/mysqlclient.

В чем еще может быть проблема?

  • Компиляция с поддержкой MySQL, !*! Soldier, 15:54 , 11-Авг-03 (1)
    >Всем доброго времени суток!
    >Проблема: не могу с помощью ld скомпилировать проект. Получаю ошибку
    >
    >trafstat.o: In function `program_init':
    >trafstat.o(.text+0x33b): undefined reference to `MYSQL_CONNECT'
    >trafstat.p(46) Error: Error while linking
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    Это, вы что на паскале(или это Kylix) что-ли под Unix?

    А MYSQL_CONNECT  в этой либе и в самом деле нет - есть mysql_connect :-).

    • Компиляция с поддержкой MySQL, !*! Minotaur, 16:09 , 11-Авг-03 (2)

      >Это, вы что на паскале(или это Kylix) что-ли под Unix?
      >
      >А MYSQL_CONNECT  в этой либе и в самом деле нет -
      >есть mysql_connect :-).

      Это компилятор fpc.
      На самом деле большие буквы появились в результате моих попыток объявить внешнюю функцию. Что-то типа

      function mysql_connect(mysql: PMYSQL; host: pchar; user: pchar; passwd: pchar):PMYSQL;external;

      Дописывание cdecl; ничего не меняет. Линковать все-равно не хочет. Результат тот-же:
      trafstat.o: In function `program_init':
      trafstat.o(.text+0x33b): undefined reference to `mysql_connect'
      trafstat.p(46) Error: Error while linking

      Причем как ни правь ppas.sh (создается fpc и запускается для линкования) - как не добавляй параметры для ld - ситуация не меняется.

      • Компиляция с поддержкой MySQL, !*! Soldier, 07:36 , 12-Авг-03 (3)
        >
        >>Это, вы что на паскале(или это Kylix) что-ли под Unix?
        >>
        >>А MYSQL_CONNECT  в этой либе и в самом деле нет -
        >>есть mysql_connect :-).
        >
        >Это компилятор fpc.
        >На самом деле большие буквы появились в результате моих попыток объявить внешнюю
        >функцию. Что-то типа
        >
        >function mysql_connect(mysql: PMYSQL; host: pchar; user: pchar; passwd: pchar):PMYSQL;external;
        >
        >Дописывание cdecl; ничего не меняет. Линковать все-равно не хочет. Результат тот-же:
        >trafstat.o: In function `program_init':
        >trafstat.o(.text+0x33b): undefined reference to `mysql_connect'
        >trafstat.p(46) Error: Error while linking
        >
        >Причем как ни правь ppas.sh (создается fpc и запускается для линкования) -
        >как не добавляй параметры для ld - ситуация не меняется.


        fpc 1.0.10
        Сработало так:


        {$LINKLIB mysqlclient}

        function mysql_connect(pmysql:pointer;host,user,pass:pchar):pointer;cdecl;external;
        function mysql_error(pmysql:pointer):pointer;cdecl;external;
        function mysql_close(pmysql:pointer):pointer;cdecl;external;


        var mysql:array[0..4096] of char;

        BEGIN
        if mysql_connect(@mysql,'127.0.0.1','user','pass')=nil then begin
          writeln(strpas(mysql_error(@mysql)));
          halt(1);
        end;
        mysql_close(@mysql);
        END.

        Компилировать: fpc file.pp

  • Компиляция с поддержкой MySQL - проблема решена, !*! Minotaur, 10:58 , 12-Авг-03 (4)
    Все. Разобрался. На самом деле проблема совсем иного рода.
    Начиная с версии 4.0 в MySQL присутствует новый API, в котором нет
    функции mysql_connect. Зато есть mysql_init+mysql_real_connect.
    Для того, чтобы mysqlclient версии > 4.0 поддерживал вызовы устаревших функций, его библиотеки следует скомпилировать с ключом
    -DUSE_OLD_FUNCTIONS. Тогда все чудесно работает.
    Но разработчики рекомендуют использовать связку mysql_init+mysql_real_connect.

    Удачи!

    З.Ы. Рекомендую в FAQ.

    • Компиляция с поддержкой MySQL - проблема решена, !*! Soldier, 12:31 , 12-Авг-03 (5)
      >Все. Разобрался. На самом деле проблема совсем иного рода.
      >Начиная с версии 4.0 в MySQL присутствует новый API, в котором нет
      >
      >функции mysql_connect. Зато есть mysql_init+mysql_real_connect.
      >Для того, чтобы mysqlclient версии > 4.0 поддерживал вызовы устаревших функций, его библиотеки следует скомпилировать с ключом
      >-DUSE_OLD_FUNCTIONS. Тогда все чудесно работает.
      >Но разработчики рекомендуют использовать связку mysql_init+mysql_real_connect.
      >
      >Удачи!
      >
      >З.Ы. Рекомендую в FAQ.

      Оно все замечательно... Но почему PASCAL??!! Это конечно же мое личное мнение, но мне кажется, что потивоестественно использовать pascal под *n*x :)))


      • Компиляция с поддержкой MySQL - проблема решена, !*! Minotaur, 14:41 , 12-Авг-03 (6)

        >Оно все замечательно... Но почему PASCAL??!! Это конечно же мое личное мнение,
        >но мне кажется, что потивоестественно использовать pascal под *n*x :)))


        Оно-то так... Да только сроки сжатые. А вот Перл подошел бы идеально,
        да только с ним мне разбираться некогда, а Паскаль как никак досконально знаю... :)




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру