- Компиляция с поддержкой 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 :))) Оно-то так... Да только сроки сжатые. А вот Перл подошел бы идеально, да только с ним мне разбираться некогда, а Паскаль как никак досконально знаю... :)
|