在過去使用libpq-fe.h之後,對於新項目我開始使用pqxx。如何用代碼塊下的pqxx解決編譯錯誤
所以,在我的代碼包括:
#include <pqxx/pqxx>
我編譯。一切都很好。
當我宣佈:
pqxx::connection p_con;
我編譯,我有錯誤:
obj/Debug/src/dbfunc.o: In function `pqxx::connect_direct::connect_direct(std::string const&)':
/usr/include/pqxx/connection.hxx:87: undefined reference to `pqxx::connectionpolicy::connectionpolicy(std::string const&)'
/usr/include/pqxx/connection.hxx:87: undefined reference to `vtable for pqxx::connect_direct'
obj/Debug/src/dbfunc.o: In function `pqxx::connect_direct::~connect_direct()':
/usr/include/pqxx/connection.hxx:84: undefined reference to `vtable for pqxx::connect_direct'
/usr/include/pqxx/connection.hxx:84: undefined reference to `pqxx::connectionpolicy::~connectionpolicy()'
obj/Debug/src/dbfunc.o: In function `pqxx::basic_connection<pqxx::connect_direct>::basic_connection()':
/usr/include/pqxx/basic_connection.hxx:61: undefined reference to `pqxx::connection_base::connection_base(pqxx::connectionpolicy&)'
/usr/include/pqxx/basic_connection.hxx:62: undefined reference to `pqxx::connection_base::init()'
obj/Debug/src/dbfunc.o: In function `pqxx::basic_connection<pqxx::connect_direct>::~basic_connection()':
/usr/include/pqxx/basic_connection.hxx:78: undefined reference to `pqxx::connection_base::close()'
搜索谷歌表示這是不是圖書館的問題。
逸岸:一個非常類似的問題,同樣的錯誤,在這裏已經解決:Problem compiling program with pqxx
我不明白怎麼解決它的代碼::塊。任何建議?
軟件版本:
- 代碼:: Blocks的13.12
- O的:Debian的8.2
- Libpqxx:libpqxx-4.0
- 編譯器用於:gcc的
- 的gcc --version:GCC (Debian 4.9.2-10)4.9.2
我是相對的ne w至使用代碼::塊,所以也許我失去了一些東西: -/
編輯:由於要求2路:
- /usr/lib目錄/ x86_64的-Linux的GNU/libpq.so
- /usr/lib目錄/ x86_64的-Linux的GNU/libpq.a
你與'-lpq'正確編譯? – Azad
不,我沒有」 t。我在項目 - >編譯選項 - >編譯器設置 - >其他選項中添加了它但是沒有任何變化,那麼命令改變了:「g ++ -std = C++ 11 -Wall -fexceptions -g -lpq -Iinclude -c/myfil e.cpp -o /myfile.o「 –
首先嚐試Mike Kinghan的建議,如果在你的系統上搜索一個名爲'libpq.so'或'libpq.a'的文件失敗並且發佈它的路徑 – Azad