我已经使用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);
}
1条答案
按热度按时间aor9mmx11#
gcc需要知道在哪里可以找到MariaDB Connector/C包含文件(大多数情况下是mysql.h)以及MariaDB C/C库的位置和名称。
您可以使用
-I/include_path
-L/library_path
-lmariadb
指定它们,也可以使用mariadb_config: