2

我正在按照这里的示例进行操作,并且我的代码是相同的。

当我按照他的解释在控制台中键入 mysql_config --libs 和 mysql_config --cflags 时,我得到的输出与他显示的相同。然而,当我尝试使用编译时

g++ -o 输出文件 $(mysql_config --cflags) test.cpp $(mysql_config --libs)

我得到错误:

test.cpp:3:25: error: mysql.h: No such file or directory
test.cpp: In functionâint main()â:
test.cpp:6: error:âMYSQLâ is not declared in this scope
test.cpp: 6:错误:âconnâ 未在此范围内声明
test.cpp:7:错误:âMYSQL_RESâ 未在此范围内声明
test.cpp:7:错误:âresâ 未在此范围内声明
test.cpp:8:错误:“MYSQL_ROW”未在此范围内声明
test.cpp:8: error: expected `;' 在“row”
test.cpp:13 之前:错误:“mysql_init”未在此范围内声明
test.cpp:17:错误:“mysql_real_connect”未在此范围内声明
test.cpp:18:错误:“mysql_error”未在此范围内声明
test.cpp:19:错误:“exit”未在此范围内声明
test.cpp:22:错误:“mysql_query”未在此范围内声明
test.cpp:23:错误:“mysql_error”未在此范围内声明
test.cpp:24 :错误:“exit”未在此范围内声明
test.cpp:27:错误:“mysql_use_result”未在此范围内声明
test.cpp:31:错误:“row”未在此范围内声明
test.cpp:31:错误:“mysql_fetch_row”已未在此范围内声明
test.cpp:35:错误:“mysql_free_result”未在此范围内声明
test.cpp:36:错误:“mysql_close”未在此范围内声明

当我尝试“whereis mysql”时,它会显示 /usr/bin/mysql、/usr/lib/mysql 和 /usr/share/mysql,但我不确定 mysql.h 的确切位置。我正在处理的服务器管理员说他安装了 MySQL,我确实可以使用 phpMyAdmin 创建/操作表。

另外,请给我有关此特定问题的建议。我知道 MySQL 的 C++ 包装器,但我现在尝试只使用 C API。谢谢!

4

2 回答 2

2

这里的代码编译得很好(我只需要为 exit() 包含 stdlib.h)。MySQL 标头应该在 /usr/include/mysql 中,并且由于“mysql_config --cflags”的输出相同,因此您可能缺少/损坏了包。

尝试重新安装他在文章开头列出的包,或检查标头在您的发行版中的哪个包。我正在使用 Ubuntu,这里带有标头的包是 libmysqlclient15-dev。

于 2012-07-14T18:00:48.817 回答
1

该文件应该在 /usr/include/mysql 下的某个地方。你可以尝试使用类似的东西来搜索它find /usr -name mysql.h

于 2012-07-14T17:50:35.750 回答