| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > undefined reference to `mysql_connect' |
| Автор: Larrikin 19.10.2007, 17:00 | ||||
| делаю по этому примеру http://im-host.net/uchebnik-mysql55.html ncalcd.c
common.h
при сборке: gcc -c godaemon.c main.c ncalc.c -I /usr/local/include/ -I /home/larrikin/files/ncalcd gcc -o ncalcd godaemon.o main.o ncalc.o -L /usr/local/lib/mysql/ -l mysqlclient ncalc.o(.text+0x5a): In function `ncalcd': : undefined reference to `mysql_connect' gmake: *** [ncalcd] Error 1 как правильно? нужно всего лишь работать с mysql из проги - select, insert, delete uname -sr FreeBSD 6.2-STABLE |
| Автор: JackYF 19.10.2007, 17:20 |
| mysql сам собирал, раз в /usr/local/lib лежит? Экспортирует ли /usr/local/lib/mysql/mysqlclient.so нужные недостающие функции? Если установлен mc, посмотри это через F3 на этот файл и поищи там эти функции, например mysql_connect... |
| Автор: archimed7592 19.10.2007, 17:24 |
Я не уверен, но вроде это нужно без пробела писать... |
| Автор: GrayCardinal 20.10.2007, 09:55 |
Добавлено @ 09:55 Моды, убейте рекламу, плиз... |
| Автор: Larrikin 20.10.2007, 15:13 |
| > nm -g /usr/local/lib/mysql/mysqlclient.so | grep mysql_connect nm: '/usr/local/lib/mysql/mysqlclient.so': No such file |
| Автор: MAKCim 20.10.2007, 15:34 |
| Larrikin, значит посмотри как библиотека называется у тебя (если она конечно есть) |
| Автор: Larrikin 4.11.2007, 18:28 |
| # nm -g /usr/local/lib/mysql/libmysqlclient.so | grep mysql_connect # |
| Автор: JackYF 4.11.2007, 21:46 |
| Larrikin, итого ты сам видишь - нужной тебе функции нет. Собери еще раз, полностью мускул, а лучше установи из репозитория. |
| Автор: Larrikin 4.11.2007, 23:33 |
| да я из портов и ставил... может там какие опции надо при сборке? |
| Автор: JackYF 5.11.2007, 02:30 |
а, так у тебя gentoo... с этого надо было начинать. Тогда иди в мануалы, смотреть, какие там флаги нужно при сборке проставлять... |
| Автор: orthrus 5.11.2007, 06:25 | ||
Если из портов то это не gentoo а freeBSD. |
| Автор: archimed7592 5.11.2007, 11:14 |
А в генту что? rpm'ки? Не помню какой МП использует FreeBSD, но точно помню, что гента использует portage и ставит она всё как раз таки из портов |
| Автор: bsa 5.11.2007, 12:13 |
| archimed7592, в FreeBSD все в основном ставится буквально из "портов" ("ports"). Только там не так все круто как в дженте. Чтобы что-то установить из исходников надо найти это "что-то" в /usr/ports, зайти в каталог и дать команду make install. |
| Автор: orthrus 5.11.2007, 13:42 |
| В gentoo пакеты так и называется package. А во фрях порты(если из исходников собирать) или пакеты(если ставить бинарную сборку). |
| Автор: Larrikin 6.11.2007, 11:28 |
| парни, как мне сделать свою первую программу, которая может делать хотя бы SELECT и INSERT на MySQL сервере через unix сокет? > pkg_info apache-1.3.37_1 The extremely popular Apache http server. Very fast, very c autoconf-2.59_2 Automatically configure source code on many Un*x platforms autoconf-2.61_2 Automatically configure source code on many Un*x platforms autoconf-wrapper-20070404 Wrapper script for GNU autoconf automake-1.10_3 GNU Standards-compliant Makefile generator (1.10) automake-wrapper-20070404 Wrapper script for GNU automake chrootuid-1.3 A simple wrapper that combines chroot(8) and su(1) into on cvsd-1.0.13_1 CVS pserver daemon cvsup-without-gui-16.1h_2 General network file distribution system optimized for CVS expat-2.0.0_1 XML 1.0 parser written in C gettext-0.14.5_2 GNU gettext package glib-2.8.6_1 Some useful routines of C programming (current stable versi gmake-3.81_1 GNU version of 'make' utility help2man-1.36.4_1 Automatically generating simple manual pages from program o jabberd-2.0.11_2 Online presence and instant messaging server jpeg-6b_4 IJG's jpeg compression utilities libiconv-1.9.2_2 A character set conversion library libidn-0.6.8 Internationalized Domain Names command line tool libtool-1.5.22_2 Generic shared library support script libxml2-2.6.26 XML parser library for GNOME links-2.1.p21,1 Lynx-like text WWW browser lynx-2.8.5_2 A non-graphical, text-based World-Wide Web client m4-1.4.4 GNU m4 mc-4.6.1_3 Midnight Commander, a free Norton Commander Clone mu-conference-0.6.0_3 Multi-User Conferencing component for Jabber mysql-client-5.0.27 Multithreaded SQL database (client) mysql-server-5.0.27 Multithreaded SQL database (server) nmap-4.11 Port scanning utility for large networks p5-gettext-1.05_1 Message handling functions pcre-6.7 Perl Compatible Regular Expressions library pecl-PDO-1.0.3 PHP Data Objects Interface perl-5.8.8 Practical Extraction and Report Language php5-5.2.0 PHP Scripting Language (Apache Module and CLI) php5-ctype-5.2.0 The ctype shared extension for php php5-dom-5.2.0 The dom shared extension for php php5-extensions-1.0 A "meta-port" to install PHP extensions php5-iconv-5.2.0 The iconv shared extension for php php5-mysql-5.2.0 The mysql shared extension for php php5-pcre-5.2.0 The pcre shared extension for php php5-posix-5.2.0 The posix shared extension for php php5-session-5.2.0 The session shared extension for php php5-simplexml-5.2.0 The simplexml shared extension for php php5-sqlite-5.2.0 The sqlite shared extension for php php5-tokenizer-5.2.0 The tokenizer shared extension for php php5-xml-5.2.0 The xml shared extension for php php5-xmlreader-5.2.0 The xmlreader shared extension for php php5-xmlwriter-5.2.0 The xmlwriter shared extension for php php5-zlib-5.2.0 The zlib shared extension for php pkgconfig-0.20 A utility to retrieve information about installed libraries png-1.2.14 Library for manipulating PNG images ssh2-nox11-3.2.9.1_6 Secure shell client and server for V.2 SSH protocol svgalib-1.4.3_5 A low level console graphics library tiff-3.8.2_1 Tools and library routines for working with TIFF images unzip-5.52_2 List, test and extract compressed files in a ZIP archive > uname -sr FreeBSD 6.2-STABLE > |
| Автор: JackYF 6.11.2007, 15:13 |
| Одна тема - один вопрос. Создавай новую. |
| Автор: Larrikin 6.11.2007, 17:18 |
| а это и есть тот же вопрос! он не менялся с первого поста - мне в проге первый раз в моей жизни надо работать с MySQL и не получается. Примеры не работают из доки - что делать не знаю, только надежда на помощь зала. Хотя бы, может, подскажите доку конкретную по работе с мускулем в бзде, только работающую и достаточную для простых случаев, как у меня - получить массив, записать строку. |
| Автор: bsa 6.11.2007, 18:12 |
| Larrikin, ты бы для приличия написал что именно у тебя не работает. и как именно. А то может у тебя, например, сервер не запущен, база или таблица не созданы. |
| Автор: Larrikin 6.11.2007, 20:20 | ||||
| ээээ... первое сообщение вижу только я? продублирую, может поможет: делаю по этому примеру http://im-host.net/uchebnik-mysql55.html ncalcd.c
common.h
при сборке: gcc -c godaemon.c main.c ncalc.c -I /usr/local/include/ -I /home/larrikin/files/ncalcd gcc -o ncalcd godaemon.o main.o ncalc.o -L /usr/local/lib/mysql/ -l mysqlclient ncalc.o(.text+0x5a): In function `ncalcd': : undefined reference to `mysql_connect' gmake: *** [ncalcd] Error 1 как правильно? нужно всего лишь работать с mysql из проги - select, insert, delete uname -sr FreeBSD 6.2-STABLE |
| Автор: JackYF 6.11.2007, 21:43 |
| Larrikin, ты понимаешь, что у тебя неправильно собрана библиотека libmysqlclient, на основании которой ты собираешь писать программу? Тебе надо её пересобрать правильно, добыть/установить требуемую версию с помощью средств FreeBSD (я ими не владею, например). |
| Автор: Larrikin 7.11.2007, 02:36 |
| не понимаю, как может быть неправильно собрана библиотека стандартным make install clean из свежих портов может надо какой-нибудь особый порт ставить еще? |
| Автор: orthrus 7.11.2007, 06:07 | ||
попробуйте в замен функции mysql_connect использовать mysql_real_connect, у вас наверное mysql был собран без USE_OLD_FUNCTIONS а в <mysql.h> по этому поводу описано следующие:
да и во всех примерах идущих с mysql используется mysql_real_connect. Это все относительно mysql-5.0.34. |
| Автор: Larrikin 7.11.2007, 08:18 |
| очень похоже, что дело в этом... gcc -c godaemon.c main.c ncalc.c -I/usr/local/include/ -I/home/larrikin/files/ncalcd ncalc.c: In function `ncalcd': ncalc.c:18: error: too few arguments to function `mysql_real_connect' gmake: *** [godaemon.o] Error 1 спасибо, хоть есть направление куда копать... |
| Автор: orthrus 7.11.2007, 09:13 |
| посмотрите список параметров в <mysql.h>, или как его используют в тестовых примерах |
| Автор: bsa 7.11.2007, 12:50 | ||
http://dev.mysql.com/doc/refman/5.0/en/mysql-real-connect.html |
| Автор: Larrikin 12.2.2008, 19:38 | ||
| я не понимаю, это что, сложно чтоль? просто подключиться к серверу mysql из unix на C? ни один пример в интернете из разных док даже не компилируется... ну это же бред, такая элементарная операция столько времени задерживает... > uname -rs FreeBSD 6.2-RELEASE > cat ncald.c
> gcc -o ncalcd -I /usr/local/include/ ncald.c ncald.c: In function `main': ncald.c:18: warning: passing arg 6 of `mysql_real_connect' makes integer from pointer without a cast /var/tmp//cclz8wKX.o(.text+0x22): In function `main': : undefined reference to `mysql_init' /var/tmp//cclz8wKX.o(.text+0x64): In function `main': : undefined reference to `mysql_real_connect' /var/tmp//cclz8wKX.o(.text+0x79): In function `main': : undefined reference to `mysql_error' /var/tmp//cclz8wKX.o(.text+0xb3): In function `main': : undefined reference to `mysql_close' > pkg_info | grep mysql- mysql-client-5.1.21 Multithreaded SQL database (client) mysql-server-5.1.21 Multithreaded SQL database (server) |
| Автор: popovb 14.2.2008, 09:31 | ||
Все предельно просто? Как собираешь? Инклюды подключил. А либы? Ясно тебе компилятор сказал, что ссылка не определена. Добавь -L/bla-bla/mysql -lmysqlclient -lz |
| Автор: Larrikin 14.2.2008, 11:59 |
| действительно, проблема была всего-лишь узнать о ключе компиляции -L пока продвигаюсь дальше... |
| Автор: popovb 14.2.2008, 12:07 | ||
удачи! |