1. 程式人生 > >mysql++ 中遇到的安裝問題 及linux下C++新增共享庫

mysql++ 中遇到的安裝問題 及linux下C++新增共享庫

linux下安裝mysql++

官方網站下載mysql++

tar 命令解壓

./configure --prefix=/local   //安裝路徑自定義

問題:

checking for MySQL library directory... configure: error: Didn't find mysqlclient library in '/usr/lib64 /usr/lib /usr/lib64/mysql /usr/lib/mysql /usr/local/lib64 /usr/local/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'

解決方法:sudo apt-get install libmysqlclient

然後locate libmysqlclient去查詢你的系統中的libmysqlclient.so library在哪個檔案下(我的/usr/lib/x86_64-linux-gnu)

注意:(使用locate之前先sudo updatedb手動更新資料庫下,因為locate是經過資料庫來查詢的,而資料庫預設自動更新是一天一次。這樣可能導致你locate不到今天剛剛生成的檔案)

重新使用命令:./configure --prefix=/local --with-mysql-lib=/usr/lib/x86_64-linux-gnu

問題消除 ,

make

sudo make install

測試連線mysql demo

#include <mysql++.h>
#include <iostream>

using namespace std;
int main(int argc, char *argv[])
{
	// Get database access parameters from command line
	const char* db = 0, *server = 0, *user = 0, *password = "";
	db = "healthcareweb";
	server = "11.0.17.208";
	user = "root";
	password = "123456";
	// Connect to the sample database.
	mysqlpp::Connection conn(false);
	if (conn.connect(db, server, user, password)) {
		cout << "success. " << endl;
	} else {
		cout << "false. " << endl;
	}
	return 0;
}

g++ -o main main.cpp -I /home/onejian/local/include/mysql++ -I /usr/include/mysql -L /home/onejian/local/lib -lmysqlpp
(/home/onejian/local/即安裝的路徑,另外mysql_version.h在/usr/include/mysql中所以需要新增,-L 包含庫的路徑)

遇到問題:

error while loading shared libraries: libmysqlpp.so.3: cannot open shared object file: No such file or directory

原因:

1) 如果共享庫檔案安裝到了/lib或/usr/lib目錄下, 那麼需執行一下ldconfig命令

ldconfig命令的用途, 主要是在預設搜尋目錄(/lib和/usr/lib)以及動態庫配置檔案/etc/ld.so.conf內所列的目錄下, 搜尋出可共享的動態連結庫(格式如lib*.so*), 進而創建出動態裝入程式(ld.so)所需的連線和快取檔案. 快取檔案預設為/etc/ld.so.cache, 此檔案儲存已排好序的動態連結庫名字列表.

2) 如果共享庫檔案安裝到了/usr/local/lib(很多開源的共享庫都會安裝到該目錄下)或其它"非/lib或/usr/lib"目錄下, 那麼在執行ldconfig命令前, 還要把新共享庫目錄加入到共享庫配置檔案/etc/ld.so.conf中, 如下:

# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf  
# ldconfig

3) 如果共享庫檔案安裝到了其它"非/lib或/usr/lib" 目錄下,  但是又不想在/etc/ld.so.conf中加路徑(或者是沒有許可權加路徑). 那可以export一個全域性變數LD_LIBRARY_PATH, 然後執行程式的時候就會去這個目錄中找共享庫.
LD_LIBRARY_PATH的意思是告訴loader在哪些目錄中可以找到共享庫. 可以設定多個搜尋目錄, 這些目錄之間用冒號分隔開. 比如安裝了一個mysql到/usr/local/mysql目錄下, 其中有一大堆庫檔案在/usr/local/mysql/lib下面, 則可以在.bashrc或.bash_profile或shell里加入以下語句即可:
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH   

一般來講這只是一種臨時的解決方案, 在沒有許可權或臨時需要的時候使用.

採用第二種解決方法。解決了問題,完成安裝

相關推薦

mysql++ 遇到的安裝問題 linuxC++新增共享

linux下安裝mysql++ 官方網站下載mysql++ tar 命令解壓 ./configure --prefix=/local   //安裝路徑自定義 問題: checking for MySQL library directory... configure: err

Spark本地安裝Linux偽分散式搭建

title: Spark本地安裝及Linux下偽分散式搭建 date: 2018-12-01 12:34:35 tags: Spark categories: 大資料 toc: true 個人github部落格:Josonlee’s Blog 文章目錄

SSL握手通訊詳解linuxc/c++ SSL Socket(另附SSL雙向認證客戶端程式碼)

SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網路通訊提供安全及資料完整性的一種安全協議。TLS與SSL在傳輸層對網路連線進行加密。   安全證書既包含了用於加密資料的金鑰

SSL握手通信詳解linuxc/c++ SSL Socket代碼舉例

perf 加密技術 rec 套件 amp lin codes errno 機構 SSL握手通信詳解及linux下c/c++ SSL Socket代碼舉例 摘自:http://www.169it.com/article/3215130236.html 分

LinuxC程式動態的生成和呼叫

Linux下C程式動態庫的生成和呼叫 文章目錄 Linux下C程式動態庫的生成和呼叫 1 動態庫的打包和呼叫 2 靜態庫打包和呼叫 3 常用命令 4 gcc 和 g++ 區別 5 編譯和連結的理解

linux C++的標準標頭檔案所在目錄

其中以.h為字尾的標頭檔案在這個目錄下的backward資料夾裡 查詢檔案的相應命令:比如要找iostream,可以使用locate命令,如locate iostream 也可以使用find命令,find命令比locate複雜一點 關於 Linux下或

Linuxtftp安裝使用筆記

模式 clas art netstat 參數 log 狀態信息 use 幫助 tftp命令用在本機和tftp服務器之間使用TFTP協議傳輸文件。 TFTP是用來下載遠程文件的最簡單網絡協議,它其於UDP協議而實現。 linux服務器端tftp-server的配置 1、安裝t

Linux C++ 在類的多線程技

sleep 是我 調用 目標 阻塞 com turn thread log 有很多時候,我們希望可以在C++類裏面對那些比較耗時的函數使用多線程技術,但是,C++類的成員函數的函數指針不能直接做為參數傳到pthread_create,主要因為是C++成員函數指針帶有類命名空

Linux c語言連線與操作MYSQL

1.安裝mysql 2.安裝mysql.h函式庫 sudo apt-get install libmysqlclient-dev 3. mysql_real_connect() 連線一個mysql伺服器  語法如下 MYSQL *mysql_real_connect

Nginx介紹linux安裝

是什麼? 高效能HTTP伺服器/反向代理伺服器。 用途? HTTP伺服器,做靜態資源(靜態網頁,圖片等)伺服器。 虛擬主機,實現一臺伺服器虛擬多個小網站。 反向代理、負載均衡,多臺伺服器叢集需要Nginx做反向代理,使伺服器之間負載均衡。 安裝? 1.安裝環境及依賴包

informix資料庫在linux安裝以及用java/c/c++訪問

一、安裝前準備 安裝JDK(略) 到IBM官網上下載informix軟體:iif.12.10.FC9DE.linux-x86_64.tar放在某個大家都可以訪問的目錄比如:/mypkg,並解壓到該目錄下。 我也放到了百度雲和天翼雲上供下載。 建立informix使

linux c++ 連線mysql

系統: ubuntu14 資料庫:mysql5.5 步驟: g++/ mysql 資料庫安裝略 1. 首先安裝mysql對 C/C++的API, 可以通過下面命令安裝: sudo apt-get install mysql-server libmysql++-dev 如

linuxC語言程式設計操作MySQL資料庫

原文地址:http://www.2cto.com/database/201506/407827.html 在實際應用中,我們不可能在命令列登入進資料庫進行資料的查詢、插入等操作,使用者一般是使用一個介面良好的應用程式軟體來對資料進行管理。為了方便應用程式的開發,MySQ

linuxc++學習筆記——c++編譯器安裝(CLion)

c++編譯器安裝 參考部落格 https://blog.csdn.net/weixin_36926794/article/details/80291034 啟用 https://blog.csdn.net/krais_wk/article/details/80970355 wget

LinuxC語言執行MySQL語句

執行SQL語句的增、刪、改、查的主要API函式為: int mysql_query(MYSQL *connection, const char *query); 函式接收引數連線控制代碼和字串形式的有效SQL語句(沒有結束的分號,這與mysql工具不同)。如果

linux c++ 標準安裝

1 install   sudo apt-get install libstdc++6 libstdc++6-4.2-doc   sudo apt-get install stl-manual 2. using   man c++intro   man std

linuxc++連線mysql資料庫

在Linux下,我們可以通過MySQL提供的C API連線資料庫。 使用C API連線mysql資料庫除了要安裝mysql-client和mysql-server,還需要安裝mysql的開發包mysql-devel。 我的系統是fedora,安裝命令如下:s

Java 在WindowLinux備份MySQL資料庫

轉自:http://www.linuxidc.com/Linux/2010-12/30652.htm   首先是Windows系統下:   給大家提個醒:   有人說用:"mysqldump --uroot --p123456 --opt"。但是我沒有成功,最後使用

ElasticSearch概述Linux的單機ElasticSearch安裝

這兩天在專案中要涉及到ElasticSearch的使用,就上網去搜索了一些這方面的資料,發現elasticSearch的安裝分為單機和叢集兩種方式。在本例中,我們重點介紹單機下的ElasticSearch的安裝,親測可用,記錄下來與各位同仁分享。 一、Elas

初學Linux(二)---LinuxC語言的陣列與指標

初學Linux(二)—Linux下C語言中的陣列與指標 在經過階段一的linux學習之後,我來到了階段二的Linux下的C語言程式設計,雖然學到目前linux下的C語言似乎跟之前學的C語言所差無幾,但是按照老師的話來說,C語言指標這塊尤為重要,而我在這一方面的