Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql在c编程中的应用_Mysql_C_Ubuntu_Gcc - Fatal编程技术网

mysql在c编程中的应用

mysql在c编程中的应用,mysql,c,ubuntu,gcc,Mysql,C,Ubuntu,Gcc,我在虚拟机上安装了ubuntu。在那里,我安装了mysql服务器sudo apt get install mysql server。这很有效,因为我可以访问mysql-u root-p密码 之后,我做了:sudo apt get install libmysqlclient dev #include <my_global.h> #include <mysql.h> int main(int argc, char **argv) { printf("MySQL cli

我在虚拟机上安装了ubuntu。在那里,我安装了mysql服务器
sudo apt get install mysql server
。这很有效,因为我可以访问
mysql-u root-p密码

之后,我做了:
sudo apt get install libmysqlclient 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 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);
}
有人能解释一下我做错了什么,以及如何修复它吗


我只是想从C程序中的表中获取一些数据。

我怀疑您实际上运行了

gcc createdb.c -o createdb -std=c99 `mysql_config` --cflags --libs
而不是

gcc createdb.c -o createdb -std=c99 `mysql_config --cflags --libs`
那是行不通的
mysql\u config
,如果它没有得到任何参数,将打印出一组使用说明,这些说明将被传递到
gcc
,然后您将使用
--cflags--libs
,而
gcc
也不理解
gcc
严重混淆并投诉


如果您确保这些参数到达
mysql\u config
而不是
gcc
,那么每个人都会很高兴。

当您尝试编译时,似乎您的命令出错了,因为某些命令会被调用意外的参数,其中一些是其他命令的输出,这与其他文件无关,但更可能是编辑命令时出错。我无法重现此行为。你能再试一次吗?对我有用。这就是你用来编译它的命令行吗?正如@CMoi所说,您得到的“错误”实际上是来自
mysql\u-config
的输出。我怀疑您实际上运行了
gcc-createdb.c-o-createdb-std=c99`mysql\u-config`--cflags--libs
,而不是
gcc-createdb.c-o-createdb-std=c99`mysql\u-config--cflags--libs`
。请不要在多个站点上发布相同的问题。我总是运行“gcc createdb.c-o createdb-std=c99
mysql\u config--cflags--libs
”。这不是问题…我仍然有这些错误…我的意思是,我使用gcc createdb.c-o createdb-std=c99'mysql_config--cflags--libs'和'institle'
gcc createdb.c -o createdb -std=c99 `mysql_config` --cflags --libs
gcc createdb.c -o createdb -std=c99 `mysql_config --cflags --libs`