【问题标题】:Compiling C++ Program with MYSQL.h in Linux在 Linux 中使用 MYSQL.h 编译 C++ 程序
【发布时间】:2012-07-14 05:13:44
【问题描述】:

我遵循here 的示例,我的代码是相同的。

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

进行编译时

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

我得到错误:

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

【问题讨论】:

    标签: c++ mysql compiler-errors redhat


    【解决方案1】:

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

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

    【讨论】:

    • 是的,我相信你是对的。在摸索了更多之后,我似乎没有合适的软件包来使用 MySQL 开发应用程序。我对自己安装它们有点警惕,因为服务器的管理员在那里安装了 MySQL。虽然,我确实拥有对服务器的“管理员”访问权限,但我想知道添加它们是否有任何潜在的危害。
    • @Aaron 您将需要服务器上的 libmysqlclient,但您需要的开发头文件只需要在您正在开发的机器上。
    • 哦,我明白了。开发头只是在本地编译应用程序,然后我可以将它们上传到服务器运行对吗?
    【解决方案2】:

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

    之类的内容进行搜索

    【讨论】:

    • 嗯,我在 /usr/include 中没有 mysql 目录。在这种情况下,我认为管理员可能没有安装所有必要的软件包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多