如何使用mariadb-connector-c在Mac OS上编译gcc

qlfbtfca  于 12个月前  发布在  Mac
关注(0)|答案(1)|浏览(317)

我已经使用Homebrew在Mac OS Monterey上成功安装了mariadb和mariadb-connector-c,但无法弄清楚如何使用gcc编译一个简单的c源文件。如果我尝试:

gcc -o test main.c
# main.c:1:10: fatal error: 'mysql.h' file not found

尝试一些不同的东西,如果我调整MySQL指令使用自己的连接器-c here,我已经尝试过:

gcc -o main main.c /usr/local/bin/mariadb_config
# ld: can't link with a main executable file '/usr/local/bin/mariadb_config' for architecture x86_64

我尝试的另一件事是为mariadb调整答案here

gcc -o test main.c $(mariadb_config --libs)
# main.c:1:10: fatal error: 'mysql.h' file not found

如何在Mac上编译使用mariadb-connector-c的c程序?
以下是main.c

#include <mysql.h>
#include <stdio.h>
#include <stdlib.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", "(...)", "(...)", 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);

  printf("MySQL client version: %s\n", mysql_get_client_info());

  exit(0);
}
aor9mmx1

aor9mmx11#

gcc需要知道在哪里可以找到MariaDB Connector/C包含文件(大多数情况下是mysql.h)以及MariaDB C/C库的位置和名称。
您可以使用-I/include_path-L/library_path-lmariadb指定它们,也可以使用mariadb_config:

gcc -o test main.c $(mariadb_config --include --libs)

相关问题