3

目前,我有一个 C++ 项目,我必须在其中获取一个 mysql 数据库并询问表值。我知道现在我必须导入 mysql 库。

所以我通过访问这个网站来做到这一点: MySQL Mac OSX 10.7 (64bit)

现在我已经成功下载了文件并导入了该文件夹包含的包含文件夹和库,我在我刚刚下载的文件夹中的其余 mysql 文件导入的 mysql.driver.h 文件中收到此错误.. .

#include <boost/scoped_ptr.hpp> // 'boost/scoped_ptr.hpp' file not found

所以这告诉我找不到这个模板化的头文件......

我现在需要下载 boost 库吗?我做了并将 BOOST 导入到我的项目中,但它只是给了我更多错误......

有人遇到过同样的问题或可以提供帮助吗?:) 我将不胜感激!

编辑

我还阅读了 mySQL 网页中的一个论坛,发现我需要添加链接器标志和标题/库搜索路径?我这样做了,但没有任何帮助:(

Header Search Paths - /usr/local/mysql/include

Library Search Paths - /usr/local/mysql/lib

Other Linker Flags -lz -lm -lmysqlclient
4

2 回答 2

1

我是一个新手,很难让 mysql 的 C++ 连接器在 Xcode 下工作。这些是它工作所必需的步骤:

  1. 下载 MySQL C 连接器 dmg 包并安装它。此软件包安装在/usr/local/mysql-connector.... 将该文件夹重命名为 mysql。(为了查看 finder 中的 /usr 文件夹,请单击 GO 菜单,然后在输入 后单击 GO TO FOLDER /usr。)
  2. 下载 MySQL C++ 连接器二进制文件。双击文件解压。文件解压缩后,在其中创建一个名为 mysqlCPP 的文件夹/usr/local/(您现在将拥有一个名为 mysql 和 mysqlCPP 的文件夹)。现在将文件夹从未压缩/include/libC++ 连接器文件夹复制到您刚刚创建的 mysqlCPP 文件夹。
  3. 从 boost.org 下载 BOOST 库。解压下载的文件并将 boost 目录复制到/usr/local/. (现在你应该有 /mysql /mysqlCPP /boost 目录。可能还有其他系统文件夹不要删除它们。

现在在 XCODE 上打开您的项目并在 Build Settings 中执行以下操作:

  1. 查找其他链接器标志,双击并添加以下内容:(-lz -lm -lmysqlcppconn-static这会构建一个静态引用和一个更大的可执行文件,如果您希望动态链接您需要类型-lz -lm -lmysqlcppconn,但您必须将动态库复制到文件的执行目录中。添加到其他链接器标志下的所有选项。
  2. 查找 HEADER SEARCH PATHS,双击并添加以下内容/usr/local/mysqlCPP/include/usr/local/mysql/include并且/usr/local/ all应该以非递归方式添加。不要忘记输入所有输入 Debug、Release、Any Architecture 等。
  3. 查找 LIBRARY SEARCH PATHS,双击并添加以下内容:/usr/local/mysql/lib/usr/local/mysqlCPP/lib. 不要忘记输入所有输入 Debug、Release、Any Architecture 等。现在您已经安装了 Connector-C 和 Connector-C++。
  4. 查找 C++ 标准库并选择 libstdc++(GNU C++ 标准库)

现在您应该已经准备好编译 C++ 程序了。如果您希望改用 C 连接器,则应将 OTHER LINKER FLAGS 更改为:-lm -lz -lmysqlclient。只需尝试使用 mysql.com 上的任何示例,两个连接器都应该可以工作。

于 2016-01-14T00:24:27.873 回答
0

文档明确指出从源代码构建 MySQL 连接器需要 boost

从 MySQL Connector/C++ 1.1.0 开始,必须安装 Boost C++ 库 1.34.0 或更高版本。仅需要 Boost 来构建连接器,

安装 boost 后,只需指向其安装位置

安装 Boost 后,通过定义BOOST_ROOT:STRING选项告诉构建系统 Boost 文件在哪里。这可以在您调用 CMake 时完成。例如:

外壳> cmake 。-DBOOST_ROOT:STRING=/usr/local/boost_1_40_0

于 2013-08-01T16:56:35.683 回答