当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/258311.html

相关文章:

  • 【Flink on k8s】- 7 - 在本地运行第一个 flink wordcount job
  • velocity-engine-core是什么?Velocity模板引擎的使用
  • 【华为od】存在一个m*n的二维数组,其成员取值范围为0,1。其中值为1的元素具备扩散性,每经过1S,将上下左右值为0的元素同化为1。
  • docker学习(七、搭建mysql8.2主从)
  • 消费升级:无人零售的崛起与优势
  • 【开题报告】基于SpringBoot的煤炭企业安全宣传学习平台的设计与实现
  • 机器连接和工业边缘计算
  • java系列-LinkedHashMap
  • 【linux】查看CPU和内存信息
  • 【产品经理】产品专业化提升路径
  • Ubuntu(WSL)卸载与安装指定版本的 openssl
  • leetcode1115. 交替打印 FooBar
  • qt有哪些常用控件
  • docker 手工redis7.x cluster
  • 【华为OD题库-082】TLV解析II-Java
  • Memcached学习
  • 2024最新金三银四软件测试面试题
  • 微信小程序动态加载图表[echart]
  • 《opencv实用探索·十八》Camshift进行目标追踪流程
  • MAP: Multimodal Uncertainty-Aware Vision-Language Pre-training Model
  • 【SpringCache】快速入门 通俗易懂
  • GeoTools学习笔记
  • 短剧规模达到了百亿元,短剧分销成为短剧新模式
  • Kotlin 中的 `as` 关键字:类型转换的艺术
  • CDN可以给企业网站带来哪些优势?
  • 离线运行Oracle Database In-Memory Advisor
  • 2,PyCharm的下载与安装
  • HNU计算机视觉作业一
  • Java:SpringBoot获取当前运行的环境activeProfile
  • 射频功率放大器的参数有哪些