在Linux中设置Mysql++

2024-01-23

我想在linux中用C++连接mysql数据库。在我的本地计算机上,我运行 Ubuntu,并安装了 mysql 服务器和客户端软件包:

sudo apt-get install mysql-server mysql-client

我碰到Mysql++ http://tangentsoft.net/mysql++/但从二进制包运行 ./configure 时遇到一些问题。错误说:

检查 MySQL 库目录...配置:错误:在 '/usr/lib64 /usr/lib /usr/lib64/mysql /usr/lib/mysql /usr/local/lib64 /usr/local 中找不到 mysqlclient 库/lib /usr/local/lib/mysql /usr/local/mysql/lib /usr/local/mysql/lib/mysql /usr/mysql/lib/mysql /opt/mysql/lib /opt/mysql/lib/mysql /sw/lib /sw/lib/mysql'

我看到可以在哪里使用此命令来指定路径:

./configure --with-mysql-lib=/...

但我不知道该指向哪里。我使用了whereis mysql,但找不到任何包含lib子目录的mysql目录。 mysqlclient 库将安装在哪里?


EDIT:

完成定位后libmysqlclient我回来了

/usr/lib/i386-linux-gnu/libmysqlclient.so.18
/usr/lib/i386-linux-gnu/libmysqlclient.so.18.0.0
/usr/lib/i386-linux-gnu/libmysqlclient_r.so.18
/usr/lib/i386-linux-gnu/libmysqlclient_r.so.18.0.0
/usr/share/doc/libmysqlclient18
/usr/share/doc/libmysqlclient18/changelog.Debian.gz
/usr/share/doc/libmysqlclient18/版权
/var/cache/apt/archives/libmysqlclient18_5.5.22-0ubuntu1_i386.deb
/var/lib/dpkg/info/libmysqlclient18:i386.list
/var/lib/dpkg/info/libmysqlclient18:i386.md5sums
/var/lib/dpkg/info/libmysqlclient18:i386.postinst
/var/lib/dpkg/info/libmysqlclient18:i386.postrm
/var/lib/dpkg/info/libmysqlclient18:i386.shlibs

所以,我尝试了./configure --with-mysql-lib=/usr/lib/i386-linux-gnu而且似乎没有任何抱怨就完成了。

虽然这解决了让./configure完成的问题,但我仍然有进一步的麻烦。当我跑步时make事情进展顺利,直到此时:

在 ./lib/sql_buffer.h:31:0 包含的文件中, 来自 ./lib/sql_buffer.cpp:26: ./lib/refcounted.h:258:2: 错误:‘size_t’没有命名类型 ./lib/refcounted.h:在构造函数‘mysqlpp::RefCountedPointer::RefCountedPointer()’中:./lib/refcounted.h:89:2:错误: 类“mysqlpp::RefCountedPointer”没有任何 名为“refs_”的字段./lib/refcounted.h:在构造函数中 ‘mysqlpp::RefCountedPointer::RefCountedPointer(T*)’: ./lib/refcounted.h:100:2: 错误:类“mysqlpp::RefCountedPointer”没有任何名为“refs_”的字段 ./lib/refcounted.h:104:4:错误:“refs_”未在此声明 范围 ./lib/refcounted.h:104:16:错误:之前预期的类型说明符 ‘size_t’ ./lib/refcounted.h:104:16: 错误:之前应有‘;’ ‘size_t’./lib/refcounted.h:在构造函数中 ‘mysqlpp::RefCountedPointer::RefCountedPointer(const ThisType&)’: ./lib/refcounted.h:112:2: 错误:类 ‘mysqlpp::RefCountedPointer’没有任何字段 名为“refs_”./lib/refcounted.h:115:8:错误:“refs_”不是 在此范围内声明 ./lib/refcounted.h:在析构函数中 ‘mysqlpp::RefCountedPointer::~RefCountedPointer()’: ./lib/refcounted.h:125:7:错误:“refs_”未在此声明 作用域./lib/refcounted.h:在成员函数“void”中 mysqlpp::RefCountedPointer::swap(mysqlpp::RefCountedPointer::ThisType&)’: ./lib/refcounted.h:246:13: 错误: ‘refs_’ 是 未在此范围内声明 make: *** [mysqlpp_sql_buffer.o] 错误 1

我对 C++ 不太熟悉,所以我不确定该错误的确切含义。任何有关如何从此时开始设置 Mysql++ 的帮助或指导将不胜感激。尽管如此,我承认我也开始寻找可供使用的替代库。


这个问题是因为size_t取决于在配置 (make) 文件中调用 stddef 命名空间之前是否包含该命名空间。

我遇到了同样的问题(使用亚马逊 EC2 ubuntu 12.04 云服务器)并通过编辑有问题的文件解决了它(sql_buffer.cpp就我而言,位于 /home/ubuntu/mysql++-3.1.0/lib )并包括 stddef (同时还将字符串命名空间向上移动):

#include <stddef.h>
#include <string.h>
#include "sql_buffer.h"

您的问题已通过此更正得到解答。但是,您可能会遇到其他问题,就像我一样。所以我解释一下我是如何解决一些后续问题的,你可能也有也可能没有。

你可能需要使用

sudo chown username sql_buffer.cpp

能够编辑该文件,具体取决于您的安装设置方式(例如,我是 ubuntu 用户)。

然后我遇到了另一个问题:

./ssx/genv2.cpp: In function âbool generate_ssqls2(const char*, const ParseV2*)â:
./ssx/genv2.cpp:70:28: error: âstrcmpâ was not declared in this scope

所以我编辑了有问题的文件(genv2.cpp) 和包含的字符串命名空间

#include <string.h>

然后我遇到了另一个问题:

./libmysqlpp_ssqls2parse.a(ssqls2parse_parsev2.o): In function `Type':
/home/ubuntu/mysql++-3.1.0/./ssx/parsev2.cpp:256: undefined reference to `mysqlpp::internal::str_to_lwr

我本来可以编辑的Makefile.in但选择简单地在命令行中运行:

sudo  g++ -o test_ssqls2 test_ssqls2_ssqls2.o -lmysqlpp_ssqls2parse   -L. -lmysqlclient   -L/usr/lib/x86_64-linux-gnu  -lmysqlpp

然后我继续make过程。

这对我有用:mysql++已安装并正在运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Linux中设置Mysql++ 的相关文章

  • 在内连接中重用 mysql 子查询

    我正在尝试优化查询 试图避免重复用 指示的查询 复杂查询 使用两次 结果相同 原始查询 SELECT news FROM news INNER JOIN SELECT myposter FROM SELECT COMPLEX QUERY U
  • 条件对列表的 In 子句

    有一个表 我需要通过在配对值列表中应用和条件来获取分页记录 下面是解释 假设我有一堂课Billoflading其中有各个领域 表中两个重要字段是 tenant billtype 我有一个包含值的对列表 tenant1 billtype1 t
  • 如何在没有 DROP 数据库权限的情况下从命令行删除所有 MySQL 表? [复制]

    这个问题在这里已经有答案了 如何使用命令提示符删除 Windows MySQL 中的所有表 我想这样做的原因是我们的用户有权访问数据库删除 但无权重新创建数据库本身 因此我们必须手动删除表 有没有办法一次删除所有表 请记住 大多数表都与外键
  • 在 SQL 中如何获得整数的最大值?

    我试图从 MySQL 数据库中找出整数 有符号或无符号 的最大值 有没有办法从数据库本身提取这些信息 是否有我可以使用的内置常量或函数 标准 SQL 或 MySQL 特定的 At http dev mysql com doc refman
  • “create_date”时间戳字段的默认值无效

    我有以下 sql 创建语句 mysql gt CREATE TABLE IF NOT EXISTS erp je menus gt id INT 11 NOT NULL AUTO INCREMENT gt name VARCHAR 100
  • sql直接获取表行数的方法

    stackoverflow 的朋友们大家好 我的例行程序中有一个我认为不必要的步骤 假设您想从图库中获取所有图像 并限制每页一定数量的图像 db PDO object start pagenum x images per page limi
  • Ubuntu systemd 自定义服务因 python 脚本而失败

    希望获得有关 Ubuntu 中的 systemd 守护进程服务的一些帮助 我写了一个 python 脚本来禁用 Dell XPS 上的触摸屏 这更像是一个问题 而不是一个有用的功能 该脚本可以工作 但我不想一直启动它 这就是为什么我想到编写
  • 更新到 3.6.5 后,Hibernate 将属性映射到 SQL 公式失败

    我刚刚从 3 3 0 GA 更新到 Hibernate 3 6 5 Final 并且在对 XML 映射属性进行 SQL 公式调用时遇到了问题
  • 考虑到我的图像链接存储在MySQL数据库中,如何通过php显示存储在文件夹中的图像

    作为良好的做法 我只将图像链接存储在数据库中 问题是 我应该如何存储图像的链接 假设它在 c 上 c image jpg 我应该使用哪段 PHP 代码来显示该图像 我只显示路径 我该怎么做才能显示图像 我可以用这个吗 query SELEC
  • 如何处理多个连接

    我有一个复杂的查询 需要总共 4 个表中的字段 内部联接导致查询花费的时间比应有的时间长得多 我已经运行了一个 EXPLAIN 语句 其可视化结果附在下面 这是我的查询 SELECT pending corrections correcte
  • 执行mvn sql:execute时出错

    我希望 Maven 执行该 sql 文件 它生成的数据库模式稍后将在我的程序中使用 但它不起作用 可能是由 DELIMITER 引起的 当我执行 mvn sql execute 时 它会打印出 ERROR Failed to execute
  • 即使更新语句没有影响任何行,ExecuteNonQuery 返回 1

    我在这里面临一个非常奇怪的问题 我的 DAL 是使用编写的OdbcConnection对象并且工作完美 然而 我必须尊重一些要求 因此必须移动系统来使用MySqlConnection 你会说 不应该有任何问题 但是 现在有一点误解 当我执行
  • 如何更改mysql.sock?

    我已经通过二进制安装安装了mysql并按照以下步骤操作http dev mysql com doc refman 5 0 en binary installation html http dev mysql com doc refman 5
  • 有什么办法可以自动生成UML图吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 MySQL 数据库 我想生成它的关系图 有没有一个工具可以连接到数据库并自动为我生成它 是的
  • JPA:如何将字符串持久保存到数据库字段中,输入 MYSQL Text

    需求是用户可以写文章 所以我选择typeText为了contentmysql数据库内的字段 我怎样才能转换Java String into MySQL Text 干得好Jim Tough Entity public class Articl
  • 为什么这个 JavaScript 可以在 Safari 上运行,但不能在 Firefox 上运行?

    我有 HTML 文件 我在 Safari 上尝试了该代码 运行良好 但是当我在 Firefox 上尝试这个时 它不起作用 任何人都可以建议如何使其在 Firefox 上工作吗 单击撤消按钮时 我想从 jsp 文件中检索内容 当我在 mac
  • 当我在 MySQL 中使用 UUID 作为主键时,会如何影响性能

    我想知道当我在 MySQL 中使用 UUID 作为主键时 会对服务器的性能产生怎样或多大的影响 我想你正在使用InnoDB 无论如何你应该 因此 请阅读 高性能 MySQL 2ed 第 117 页中的以下章节 一般来说 从性能的角度来看 U
  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi
  • 使用整数数组设置外键

    我对使用 SQL 还很陌生 但我在 Stack Overflow 上遇到过这个关于使用标签的问题 推荐用于标记或标记的 SQL 数据库设计 https stackoverflow com questions 20856 recommende
  • Python中的MariaDB连接器无法连接到远程服务器

    我使用与远程 Mariadb 服务器的连接已有几个月了 今天 无法再通过 macOS 上的 python mariadb 模块和 mariadb 连接器建立连接 基本安装如下 brew install mariadb connector c

随机推荐

  • Android:Deviceready 5 秒后尚未触发

    将 Cordova 更新到 v6 4 0 并将 Android 平台更新到 6 0 0 后 我的应用程序不再运行 我得到这个 deviceready has not fired after 5 seconds cordova js 1223
  • NDK/Java项目中的Eclipse CDT C/C++代码补全问题

    我有一个 Android Java 项目 其中包含一些本机 C C 代码 我需要它能够在各种 C 类和函数上完成代码 然而 包含 完整 源代码来源的选项似乎在 Android Java 项目中不可用 有谁知道一种方法 1 欺骗 Eclips
  • 带有 Google 服务帐户主题的generate_access_token()

    在 python 中 我尝试通过服务帐户调用 GMail API委派全域权限 https developers google com identity protocols oauth2 service account authorizing
  • 检索具有 CLSID 的组件的 COM 类工厂错误:8000401a

    从上次开始 我多次收到以下错误 因为我正在使用 Microsoft Word dll 创建 Word 文件 并将其进一步附加到邮件中 Server Error in Application Retrieving the COM class
  • 我如何快速更新其他控制器的用户界面?

    我的应用程序中有几个控制器 当我的应用程序调用一个控制器中的一个函数时 我想更新其他控制器的 UI 我怎样才能做到这一点 class FirstViewController UIViewController func updateUI cl
  • 通过 svnsync 复制 SVN 存储库时如何解决此错误?

    我正在使用 svnsync 复制存储库 并且每次在同一修订版上都会收到此错误 正在传输文件数据 svnsync REPORT of https svn1 avlux net xxxxxx net https svn1 avlux net x
  • Java wait()、notify() 的实现与锁有显着不同吗?

    出于好奇 当Java实现wait 和notify 方法时 它们真的只是使用锁吗 即 wait 获取互斥体 notify 释放互斥体 notifyAll 释放所有互斥体 当然在同一个对象中 使用wait 和notify 除了比使用锁方便之外还
  • 如何向 iOS 14 小部件添加按钮

    我正在尝试向具有系列类型 systemLarge 的小部件添加按钮 我想在不打开应用程序的情况下执行一些代码 有人知道该怎么做吗 例如 快捷方式应用程序小部件包含您可以点击以执行快捷方式而无需打开应用程序的按钮 小部件是只读的 快捷方式应用
  • 使用 ElasticSearch 术语聚合动态创建的存储桶构建 Kibana 直方图

    我希望能够结合Kibana 术语图 能够根据特定属性值的唯一性创建存储桶 以及直方图 根据查询将数据分成桶 然后根据时间说明日期 总的来说 我想创建一个直方图 但我只想根据一个查询的结果创建直方图 而不是像在Kibana 演示应用程序 ht
  • IE10有flex-grow吗?

    Caniuse 使用 ms 前缀表示部分支持http caniuse com search flex grow http caniuse com search flex grow据我所知 然而 当测试 ms flex grow 在 IE10
  • 使用 OpenCV 检测越线人员

    我想统计从两边越线的人数 我有一个放置在天花板上的摄像机 拍摄线条所在的地板 因此摄像机只能看到人的头顶 因此它更多的是物体检测而不是人检测 是否有针对此问题或类似问题的示例解决方案 那我可以向他们学习吗 编辑1 任何时刻都有不止一个人越线
  • python:从字符串模板中提取变量

    我熟悉使用将变量插入字符串的能力模板 https docs python org 2 library string html template strings 像这样 Template value is between min and ma
  • 如何判断该点是否在四面体中?

    我知道四面体的所有坐标和我想确定的点 那么有人知道该怎么做吗 我试图确定该点属于四面体的每个三角形 如果它对所有三角形都成立 则该点位于四面体中 但这绝对是错误的 对于四面体的每个平面 检查该点是否与其余顶点位于同一侧 bool SameS
  • dplyr 中字符串的新列[重复]

    这个问题在这里已经有答案了 我有一个数据框 library tidyverse df lt tribble col1 col2 1 2 现在我想创建一个专栏 我有一个字符串中的新列的名称 它确实像这样工作 df gt mutate col3
  • 可以在运行时将目录添加到类路径中吗?

    为了更好地理解 Java 中的工作原理 我想知道是否可以在运行时动态地将目录添加到类路径中 例如 如果我启动一个 jar using java jar mycp jar 并输出java class path财产 我可能会得到 java cl
  • 类型错误:+ 不支持的操作数类型:“生成器”和“生成器”

    我在目标函数中添加三个表达式时遇到问题 我用了quicksum构建每个表达式 但是 当我尝试将它们添加在一起时 出现错误 无法在 生成器 类上使用 操作数 这是我的代码的最后一部分 the shipping cost expression
  • Angular是否需要取消订阅this.activatedRoute订阅

    My code ngOnInit this activatedRoute params subscribe params Params gt do stuff this activatedRoute data subscribe data
  • Builders 页面从 Eclipse 项目属性中消失

    我不知道我的带有最新 Android SDK 和最新 Sequoyah 插件的 Eclipse Helios 发生了什么 突然 我在项目属性中看不到 构建器 页面 不是工作区中的单个项目 我怎样才能恢复这个页面 检查您目前处于哪个视角 右上
  • 如何处理ETIMEDOUT错误?

    如何处理此调用的 etimedout 错误 var remotePath myremoteurltocopy var localStream fs createWriteStream myfil var out request uri re
  • 在Linux中设置Mysql++

    我想在linux中用C 连接mysql数据库 在我的本地计算机上 我运行 Ubuntu 并安装了 mysql 服务器和客户端软件包 sudo apt get install mysql server mysql client 我碰到Mysq