我在 MacbookPro 上的虚拟机上使用 Ubuntu 12.04。我安装了 build-essential、mysql-server 和 libmysqlclient-dev。“mysql”和“mysql_config”命令均有效。
但是,以下程序没有链接:
#include <stdio.h>
#include <unistd.h>
#include <mysql.h>
int main(int argc,char *argv[]){
printf("hello world\n");
//init
{
MYSQL itsmysql;
MYSQL* mytemp=0; mytemp=mysql_init(&itsmysql);
if(mytemp){
printf("hello world YEP\n");
}
else{
printf("hello world NOOOO\n");
}
}
return 0;
}
我使用以下命令运行 g++:
g++ `mysql_config --cflags` `mysql_config --libs` test.cpp
我之前在 32 位版本的 Ubuntu 下运行这个程序,但现在我有一个 64 位版本。使用 VirtualBox 和 Parallels 都会出现问题。'mysql_config' 的输出看起来没问题。
在我看来,链接器无法在 libmysqlclient 文件中找到适当的文件/架构类型。
下一步我应该尝试什么?
错误消息是“对 mysql_init 未定义的引用”。
答案1
尝试一下这个:对我有用
g++ -o test test.cpp `mysql_config --cflags` `mysql_config --libs`
然后测试
./test
Hello world YEP