Доброго времени суток.
У меня Кубнта 8,10.
Установлен LAMP. Так же библиотеки mysql (пакет libmysqlclient10.deb или что-то такое).
Мне надо написать библиотеку. Там применяется C API. Пишу там #include <mysql/mysql.h>. И мне g++ выдал "test_mysql.cpp:11: ошибка: нет декларации ‘mysql_connect’ в этой области видимости". Я думал я что-то недопонял и написал другой код простой и примитивный. Он только осуществляет соединение с базой данных. Надо было просто проверить ф-цию.
Вот код:
#include <iostream>
#include <mysql/mysql.h>
using namespace std;
int main()
{
MYSQL *mysql;
mysql_connect(mysql, "localhost", "root", "rfhnjirf");
return 0;
}
Затем происходит следующее:
root@alegz:~/WebServer/soft.linugz.uz/cgi-bin# g++ test_mysql.cpp
test_mysql.cpp: In function ‘int main()’:
test_mysql.cpp:11: ошибка: нет декларации ‘mysql_connect’ в этой области видимости
Я был по меньшей мере удивлён этим результатом залез в /usr/include/mysql/mysql.h .
Нашёл объявление ф-ции. Вот этот кусок:
...
#define MYSQL_NO_DATA 100
#define MYSQL_DATA_TRUNCATED 101
#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT)
#ifdef USE_OLD_FUNCTIONS
MYSQL * STDCALL mysql_connect(MYSQL *mysql, const char *host,
const char *user, const char *passwd);
int STDCALL mysql_create_db(MYSQL *mysql, const char *DB);
int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB);
#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT)
#endif
...
Как видно из кода все объявления имеються. Либо я чё-то упустил. Либо я глюк поймал. Подскажите пожалуйста. Заранее благодарен.