在Linux中用MYSQL.h编译C ++程序

时间:2012-07-14 17:45:33

标签: c++ mysql compiler-errors redhat

我正在关注here中的示例,我的代码完全相同。

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

进行编译时
  

g ++ -o output-file $(mysql_config --cflags)test.cpp $(mysql_config   --libs)

我收到了错误:

  

test.cpp:3:25:错误:mysql.h:没有这样的文件或目录
  test.cpp:在函数âintmain()â:中   test.cpp:6:错误:âMYSQLâ未在此范围内声明
  test.cpp:6:错误:âconnâ未在此范围内声明
  test.cpp:7:错误:âMYSQL_RESâ未在此范围内声明
  test.cpp:7:错误:未在此范围内声明â   test.cpp:8:错误:âMYSQL_ROWâ未在此范围内声明
  test.cpp:8:错误:预期`;'在â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。谢谢!

2 个答案:

答案 0 :(得分:2)

这里的代码编译得很好(我只需要为exit()包含stdlib.h)。 MySQL标题应该在/ usr / include / mysql中,并且因为你有“mysql_config --cflags”的相同输出,你可能有一个丢失/损坏的包。

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

答案 1 :(得分:1)

该文件应该位于/ usr / include / mysql下。您可以尝试使用find /usr -name mysql.h

之类的内容进行搜索