linux Ubuntu下,第一个C++程序访问数据库,遇到的问题,及解决办法
在ubuntu下安装了mysql,mysql++以后,编写了第一个访问数据库的程序:
#include <iostream>
#include <string>
#include <cstdlib> //for system
#include <mysql++.h>using namespace std;int main()
{mysqlpp::Connection con(false);con.set_option(new mysqlpp::SetCharsetNameOption("gbk"));cout << "please input (user root) password: ";string pwd;getline(cin, pwd);if(!con.connect("d2school", "localhost", "root", pwd.c_str())){cout << "can't connect database, please check the password!" << endl;return -1;}mysqlpp::Query query = con.query("select * from user");mysqlpp::StoreQueryResult res = query.store();for(unsigned int i = 0; i < res.num_rows(); ++ i){cout << res[i]["name"] << endl;}return 0;
}
结果运行时报错:

运行时的日志信息如下:
-------------- Run: Debug in HelloDatabase_Console (compiler: GNU GCC Compiler)---------------
Checking for existence: /home/yanzhenxi/BaiHuaC++/chap04/HelloDatabase_Console/bin/Debug/HelloDatabase_Console
Set variable: LD_LIBRARY_PATH=.:/usr/lib/x86_64-linux-gnu
:/usr/local/lib:
Executing: gnome-terminal -t HelloDatabase_Console -x /usr/bin/cb_console_runner LD_LIBRARY_PATH=:.:/usr/lib/x86_64-linux-gnu
:/usr/local/lib /home/yanzhenxi/BaiHuaC++/chap04/HelloDatabase_Console/bin/Debug/HelloDatabase_Console (in /home/yanzhenxi/BaiHuaC++/chap04/HelloDatabase_Console/.)
Process terminated with status 0 (0 minute(s), 3 second(s))
我以为,是libmysql++-dev没有安装,所以
sudo apt install libmysql++-dev
结果依然是:

我的codeblocks中Global variable配置如下:


工程HelloDatabase_Console的build options如下:



再经过一顿操作之后,问题依然不能解决:

解决方案:
把下面图片中的$(#mysql.lib)移到$(#mysqlpp.lib)下方,或者删除掉,就可以了

第一种方案:把$(#mysql.lib)移动到下方

这种情况下,运行时信息如下:
-------------- Run: Debug in HelloDatabase_Console (compiler: GNU GCC Compiler)---------------
Checking for existence: /home/yanzhenxi/BaiHuaC++/chap04/HelloDatabase_Console/bin/Debug/HelloDatabase_Console
Set variable: LD_LIBRARY_PATH=.:/usr/local/lib:/usr/lib/x86_64-linux-gnu
:
Executing: gnome-terminal -t HelloDatabase_Console -x /usr/bin/cb_console_runner LD_LIBRARY_PATH=:.:/usr/local/lib:/usr/lib/x86_64-linux-gnu
/home/yanzhenxi/BaiHuaC++/chap04/HelloDatabase_Console/bin/Debug/HelloDatabase_Console (in /home/yanzhenxi/BaiHuaC++/chap04/HelloDatabase_Console/.)
Process terminated with status 0 (0 minute(s), 2 second(s))
运行结果为:

第二种方案:把$(#mysql.lib)删掉

第二种方案,运行时信息如下:
-------------- Run: Debug in HelloDatabase_Console (compiler: GNU GCC Compiler)---------------
Checking for existence: /home/yanzhenxi/BaiHuaC++/chap04/HelloDatabase_Console/bin/Debug/HelloDatabase_Console
Set variable: LD_LIBRARY_PATH=.:/usr/local/lib:
Executing: gnome-terminal -t HelloDatabase_Console -x /usr/bin/cb_console_runner LD_LIBRARY_PATH=:.:/usr/local/lib /home/yanzhenxi/BaiHuaC++/chap04/HelloDatabase_Console/bin/Debug/HelloDatabase_Console (in /home/yanzhenxi/BaiHuaC++/chap04/HelloDatabase_Console/.)
Process terminated with status 0 (0 minute(s), 2 second(s))
运行结果如下:

原因分析:
可以看到,这三种情况下的运行时信息的不同之处:
出错情况:
Set variable: LD_LIBRARY_PATH=.:/usr/lib/x86_64-linux-gnu
:/usr/local/lib:
Executing: gnome-terminal -t HelloDatabase_Console -x /usr/bin/cb_console_runner LD_LIBRARY_PATH=:.:/usr/lib/x86_64-linux-gnu
方案一:
Set variable: LD_LIBRARY_PATH=.:/usr/local/lib:/usr/lib/x86_64-linux-gnu
:
Executing: gnome-terminal -t HelloDatabase_Console -x /usr/bin/cb_console_runner LD_LIBRARY_PATH=:.:/usr/local/lib:/usr/lib/x86_64-linux-gnu
方案二:
Set variable: LD_LIBRARY_PATH=.:/usr/local/lib:
Executing: gnome-terminal -t HelloDatabase_Console -x /usr/bin/cb_console_runner LD_LIBRARY_PATH=:.:/usr/local/lib
相关文章:
linux Ubuntu下,第一个C++程序访问数据库,遇到的问题,及解决办法
在ubuntu下安装了mysql,mysql以后,编写了第一个访问数据库的程序: #include <iostream> #include <string> #include <cstdlib> //for system #include <mysql.h>using namespace std;int main() {mysqlpp::Connect…...
【Flink on k8s】- 7 - 在本地运行第一个 flink wordcount job
目录 1、环境准备 2、代码开发 3、启动运行 4、在控制台找到 web ui,查看监控...
velocity-engine-core是什么?Velocity模板引擎的使用
velocity-engine-core是什么?Velocity模板引擎的使用 1. 常见的模板引擎2. Velocity 的语法3.Velocity的使用 相信在日常开发中或多或少都听过或者使用过模板引擎,比如熟知的freemarker, thymeleaf等。而模板引擎就是为了实现View和Data分离而产生的。 而…...
【华为od】存在一个m*n的二维数组,其成员取值范围为0,1。其中值为1的元素具备扩散性,每经过1S,将上下左右值为0的元素同化为1。
存在一个m*n的二维数组,其成员取值范围为0,1。其中值为1的元素具备扩散性,每经过1S,将上下左右值为0的元素同化为1。将数组所有成员初始化为0,将矩阵的[i, j]和[m,n]位置上元素修改成1后,在经过多长时间所有元素变为1。 输入描述 输入的前两个数字是矩阵大小。后面是数字…...
docker学习(七、搭建mysql8.2主从)
一、主库搭建 1.构建主库镜像 # 运行mysql镜像,配置端口3307为主库 docker run -p 3307:3306 --name mysql-master --privilegedtrue -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /mydata/mysql-master/conf:/etc…...
消费升级:无人零售的崛起与优势
消费升级:无人零售的崛起与优势 随着人们生活水平的提高,消费内容正在从生存型消费转向以精神体验和享乐为主的发展型消费。社会居民的消费结构不断变迁,明显呈现消费升级趋势。个性化和多元化消费势头正在崛起,特别是无人零售的自…...
【开题报告】基于SpringBoot的煤炭企业安全宣传学习平台的设计与实现
1.选题背景 煤炭企业作为我国能源行业的重要组成部分,承担着国民经济的支撑和推动作用。然而,煤炭生产过程中存在较高的安全风险,煤矿事故频发,给人员生命财产安全带来严重威胁,也给社会稳定和经济发展带来不利影响。…...
机器连接和工业边缘计算
软件应用和IT创新是制造业投资的主要驱动力。解决方案架构应围绕特定标准进行整合,并采用架构蓝图和最佳实践来满足最终用户的需求。此外,边缘计算(Edge Computing)也将在制造业中加速部署。 边缘计算是制造业的下一个变革驱动力。…...
java系列-LinkedHashMap
1.插入新节点时,会将该节点加到链表尾部 public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>{/*** The head (eldest) of the doubly linked list.*/transient LinkedHashMapEntry<K,V> head;/*** The tail (young…...
【linux】查看CPU和内存信息
之前咱们一起学习了查看内存的和CPU的命令。 mpstat : 【linux】 mpstat 使用 uptime:【Linux】 uptime命令使用 CPU的使用率:【linux】查看CPU的使用率 nmon :【linux】nmon 工具使用 htop :【linux】htop 命令…...
【产品经理】产品专业化提升路径
产品专业化就是上山寻路,梳理一套作为产品经理的工作方法。本文作者从设计方法、三基座、专业强化、优秀产品拆解、零代码这五个方面,对产品经理的产品专业化进行了总结归纳,一起来看一下吧。 产品专业化就是上山寻路,梳理一套作为…...
Ubuntu(WSL)卸载与安装指定版本的 openssl
卸载 openssl 1)查找并删除 openssl 关联的目录与文件 whereis opensslwhich opensslrm -rf /a/b/c/ // 使用 rm 命令删除所有 openssl 相关目录 2)删除软件安装包 apt-get purge openssl 3)删除配置文件 rm -rf /etc/ssl 安装 ope…...
leetcode1115. 交替打印 FooBar
题目 1115. 交替打印 FooBar 给你一个类: class FooBar {public void foo() {for (int i 0; i < n; i) {print("foo");}}public void bar() {for (int i 0; i < n; i) {print("bar");}} }两个不同的线程将会共用一个 FooBar 实例&am…...
qt有哪些常用控件
Qt 是一个跨平台的应用程序开发框架,提供了许多不同类型的控件来构建用户界面。以下是一些常见的 Qt 控件: 按钮(Button):用于执行操作或触发事件。文本框(TextBox):用于输入和显示文…...
docker 手工redis7.x cluster
IP端口192.168.0.816379/6380192.168.0.826379/6380192.168.0.1146379/6380 mdkir /data/{6379,6380}cat <<END> /data/6379.conf # 端口号 port 6379# 设置客户端连接后进行任何其他指定前需要使用的密码 #requirepass 123456 ## 当master服务设置了密码保护时(用re…...
【华为OD题库-082】TLV解析II-Java
题目 两端通过TLVQ格式的报文来通信,现在收到对端的一个TLV格式的消息包,要求生成匹配后的(tag,length,valueOffset)列表。具体要求如下: (1)消息包中多组tag、length、value紧密排列,其中tag,length各占1字节(uint8),value所占字节数等于len…...
Memcached学习
一、概念 Memcached是一个开源的,高性能的内存缓存软件,从名称上看Mem就是内存,二cache是缓存。作用通过在事先规划好的内存空间中临时缓存数据库中的各类数据,以达到减少业务对数据库的直接高并发访问,从而达到提升数…...
2024最新金三银四软件测试面试题
一直以来大大小小参与过不少面试,遇到过不少坑,但是没来的及好好总结汇总下。现在把之前遇到的问题汇总下,希望以后自己能加深印象。 1、appium 怎么定位toast弹框 appium1.6以后回答需要升级u2进行定位。 2、什么是事务,知道事…...
微信小程序动态加载图表[echart]
1.引入Echarts (1)将ec-canvas文件拷贝下来放到你自己的项目中: (2)在你需要使用Echarts的页面的json文件中引入Echarts "usingComponents": {"ec-canvas": "../utils/ec-canvas/ec-canva…...
《opencv实用探索·十八》Camshift进行目标追踪流程
CamShift(Continuously Adaptive Mean Shift)是一种用于目标跟踪的方法,它是均值漂移(Mean Shift)的扩展,支持对目标的旋转跟踪,能够对目标的大小和形状进行自适应调整。 cv::CamShift和cv::me…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
