Я установил ubuntu на виртуальную машину Там я установил сервер mysql (sudo apt-get install mysql-server). Это сработало, потому что я мог получить доступ к паролю mysql-u root -p. После этого я сделал: sudo apt-get install libmysq lclient-dev.
#include <my_global.h>
#include <mysql.h>
int main(int argc, char **argv)
{
printf("MySQL client version: %s\n", mysql_get_client_info());
exit(0);
}
Когда я компилирую это с помощью gcc version.c -o version mysql_config --cflags --libs, он работает. Но когда я компилирую это снизу (gcc createdb.c -o createdb -std = c99 mysql_config --cflags --libs), я получаю некоторые ошибки.
#include <my_global.h>
#include <mysql.h>
int main(int argc, char **argv)
{
MYSQL *con = mysql_init(NULL);
if (con == NULL)
{
fprintf(stderr, "%s\n", mysql_error(con));
exit(1);
}
if (mysql_real_connect(con, "localhost", "root", "root_pswd",
NULL, 0, NULL, 0) == NULL)
{
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
exit(1);
}
if (mysql_query(con, "CREATE DATABASE testdb"))
{
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
exit(1);
}
mysql_close(con);
exit(0);
}
Ошибки:
"Usage:: No such file or directory
[OPTIONS]: No such file or directory
Options:: No such file or directory
[-I/usr/include/mysql: No such file or directory
[-L/user/lib/x86_64-linux-gnu: No such file or directory
.
.
.
unrecognized command line option '--cflags'
unrecognized command line option '--libs'
.
.
unrecognized command line option '--socket'
unrecognized command line option '--port' "
Может кто-нибудь объяснить мне, что я сделал не так, и как это исправить? Я просто хочу получить данные из таблиц в программе на языке C.
Вам нужно замена команды синтаксис вокруг эти mysql_config
команда; любой с 'обратными галочками':
gcc createdb.c -o createdb -std=c99 `mysql_config --cflags --libs`
или с $(...)
gcc createdb.c -o createdb -std=c99 $(mysql_config --cflags --libs)