要想获得libmysqld库,应使用“--with-embedded-server”选项配置MySQL。 请参见2.8.2节,“典型配置选项”。
将你的程序与libmysqld链接时,还必须包含系统的pthread库以及MySQL服务器使用的一些库。 执行“mysql_config --libmysqld-libs”,可获得库的完整列表。
对于线程程序的编译和链接,必须使用正确的标志,即使你未在代码中直接调用任何线程函数也同样。
要想编译C程序以包含必要文件,并将MySQL服务器库嵌入到程序的编译版本中,可使用GNU C编译器(gcc)。 编译器需要知道各种文件的位置,并需了解如何编译程序的指令。 在下面的示例中,介绍了如何从命令行编译程序的方法:
gcc mysql_test.c -o mysql_test -lz \
`/usr/local/mysql/bin/mysql_config --include --libmysqld-libs`
在gcc命令后紧跟着未编译C程序文件的名称。 接下来,给定的“-o”选项指明,它后面的文件名是编译器将输出文件的名称,即编译后的程序。 在下一行的代码中,通知编译器获取包含文件和库的位置,以及在其上进行编译的系统的其他设置。 由于“mysql_config”存在的问题,在此添加了“-lz”选项(压缩)。 “mysql_config”部分包含在backticks中,而不是单引号内。