[Решено] Тупит линкер при связи прогы с библиотекой клиента MySQL

Модератор: Модераторы разделов

ubuntuAndrew
Сообщения: 205
ОС: Linux Ubuntu 12.04

[Решено] Тупит линкер при связи прогы с библиотекой клиента MySQL

Сообщение ubuntuAndrew »

Вот исходник:

Код: Выделить всё

 // Заголовочные файлы

#include <mysql/mysql.h>
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;

int main(){

    MYSQL_RES *result;
        MYSQL_ROW row;
        MYSQL *connection, mysql;
        int state;
    mysql_init(&mysql);
        connection = mysql_real_connect(&mysql,"localhost","username","password","database",0,NULL,0); //Открытие соединения
    state = mysql_query(connection, "SELECT * FROM clients");
    result = mysql_store_result(connection);
    printf("Строк: \n", mysql_num_rows(result));
    while( ( row = mysql_fetch_row(result)) != NULL ) {
                printf("id: %s, значение: %s\n", (row[0] ? row[0] : "NULL"), (row[1] ? row[1] : "NULL"));
        }
    mysql_free_result(result); // закрыть соединение
        mysql_close(connection);
        printf("Koнец, работы.\n");
}

При компиляции выдает:
/tmp/ccy9cr1d.o: In function `main':
sql-prog.cpp:(.text+0x23): undefined reference to `mysql_init'
sql-prog.cpp:(.text+0x67): undefined reference to `mysql_real_connect'
sql-prog.cpp:(.text+0x7f): undefined reference to `mysql_query'
sql-prog.cpp:(.text+0x8f): undefined reference to `mysql_store_result'
sql-prog.cpp:(.text+0x9f): undefined reference to `mysql_num_rows'
sql-prog.cpp:(.text+0x109): undefined reference to `mysql_fetch_row'
sql-prog.cpp:(.text+0x125): undefined reference to `mysql_free_result'
sql-prog.cpp:(.text+0x131): undefined reference to `mysql_close'
collect2: ld returned 1 exit status
Чего теперь делать-то? Компилил и gcc и g++ - все без толку!
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: [Решено] Тупит линкер при связи прогы с библиотекой клиента MySQL

Сообщение Crazy »

думаю что нужно -lmySQL(или что-то подобное) добавить к параметрам компоновки.

Desipere in loco
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: [Решено] Тупит линкер при связи прогы с библиотекой клиента MySQL

Сообщение Rootlexx »

ubuntuAndrew
Добавьте в командную строку компилятора:

Код: Выделить всё

$(mysql_config --cflags) $(mysql_config --libs)
- должен быть установлен libmysqlclient-dev.
Спасибо сказали:
ubuntuAndrew
Сообщения: 205
ОС: Linux Ubuntu 12.04

Re: [Решено] Тупит линкер при связи прогы с библиотекой клиента MySQL

Сообщение ubuntuAndrew »

libmysql-dev уже установлен.
После того, как ввел gcc с указанными параметрами, ошибок стало меньше, но они есть:

Код: Выделить всё

/tmp/ccOmYud2.o: In function `__static_initialization_and_destruction_0(int, int)':
sql-prog.cpp:(.text+0x17a): undefined reference to `std::ios_base::Init::Init()'
sql-prog:(.text+0x17f): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccOmYud2.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: [Решено] Тупит линкер при связи прогы с библиотекой клиента MySQL

Сообщение watashiwa_daredeska »

ubuntuAndrew писал(а):
28.10.2010 21:08
ввел gcc
ubuntuAndrew писал(а):
28.10.2010 21:08
sql-prog.cpp:(.text+0x17a): undefined reference to `std::ios_base::Init::Init()'
Вообще, C++ рекомендуется линковать g++'ом, а не gcc'ом, ибо второй нифига не сечёт в плюсовых особенностях и библиотеках (если не укзать явно, что это c++, но тогда это тоже самое, что g++, только длиннее).
Спасибо сказали:
ubuntuAndrew
Сообщения: 205
ОС: Linux Ubuntu 12.04

Re: [Решено] Тупит линкер при связи прогы с библиотекой клиента MySQL

Сообщение ubuntuAndrew »

Уррра!!! Заработало! :)
Спасибо сказали: