Ubuntu 14.04下使用libpq++

Postgres的c++接口早就改为libpqxx,libpq++在Ubuntu 14.04下不能编译通过,为了使用libpq++需要做一些修改。

一、下载libpq++-4.0.tar.gz并解压

——————————————分割线——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.68idc.cn

具体下载目录在 /2015年资料/12月/13日/Ubuntu 14.04下使用libpq++/

下载方法见 http://www.68idc.cn/Linux/2013-07/87684.htm

——————————————分割线——————————————

二、进入libpq++-4.0目录

三、打开Makefile

修改POSTGRES_HOME=/opt/PostgreSQL/9.3 (你的postgresql安装目录)

修改CXXOPTS=-fPIC -DHAVE_NAMESPACE_STD -DHAVE_CXX_STRING_HEADER -DDLLIMPORT=””

64位系统必需加上-fPIC

四、打开pgdatabase.cc

在最前面包含stdlib.h文件名(否则atoi函数找不到)

五、make&sudo make install

六、/etc/ld.so.conf.d/ 或LD_LIBRARY_PATH加上库搜寻路径

并执行sudo ldconfig -v

或者在编译的时候加上-Wl,-rpath=/opt/PostgreSQL/9.3/lib

七、测试

test.cpp(把mydb,mytable修改一下)

#include <stdlib.h>#include <iostream>#include <libpq++.h>using namespace std;int main() {char query_string[256]= “SELECT * FROM mytable;”;PgDatabase data(“dbname = mydb”);if (data.ConnectionBad()) {cout <<“connected failed” << endl;cout <<“Error is “<<data.ErrorMessage() << endl;exit(1);}if (! data.ExecTuplesOk(query_string)) {cout<<“Query Failed!” << endl;exit(1);}for(int k=0; kcout<<data.FieldName(k);cout <<” ” ;}cout<<endl;for (int i = 0; i < data.Tuples(); i++) {for(int k=0; kcout << data.GetValue(i,k);cout <<” | ” ;}cout<<endl;}return 0 ;}

g++ test.cpp -o test -fPIC -DHAVE_NAMESPACE_STD -DHAVE_CXX_STRING_HEADER -DDLLIMPORT=”” -I /opt/PostgreSQL/9.3/include -L/opt/PostgreSQL/9.3/lib -lpq++ -lpq./test

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.68idc.cn/topicnews.aspx?tid=2

都懒得写日记来记录,可见内心底对旅行是多么的淡漠。

Ubuntu 14.04下使用libpq++

相关文章:

你感兴趣的文章:

标签云: