环境:在windows系统的 linux分发下,Ubuntu 20.04.2 LTS;
问题描述:MySQL C API programming,在安装了MySQL C 开发库之后,sudo apt install default-libmysqlclient-dev
,编译version.c文件:gcc version.c -o version.o
;
version.c如下:
#include <mysql.h>
#include <stdio.h>
int main(int argc, char **argv)
{
printf("MySQL client version: %s\n", mysql_get_client_info());
exit(0);
}
报错:
version.c:1:10: fatal error: mysql.h: No such file or directory
1 | #include <mysql.h>
问题原因:没加头文件路径参数,无法寻址;
问题修改:whereis mysql
找到mysql.h路径:/usr/include/mysql
;
再次编译:gcc version.c -o version.o -I /usr/include/mysql
;
再次报错:
/usr/bin/ld: /tmp/ccEn7kBU.o: in function `main':
version.c:(.text+0x14): undefined reference to `mysql_get_client_info'
collect2: error: ld returned 1 exit status
问题原因:没加lib参数,无法引用函数;
问题修改:gcc version.c -o version.o -I/usr/include/mysql -lmysqlclient
;
问题解决。