1

У меня возникла ошибка при работе с libpqxx. Я использую c++ 14 и libpqxx 6.4 в ide netbeans 14. Так нигде и не смог найти ответ.

Пример кода:

#include <string>
#include <iostream>
#include <pqxx/pqxx>

using namespace pqxx;

int main() { std::string connectionString = "host=localhost port=5432 dbname=test user=postgres password =123454321";

try
{
    pqxx::connection connectionObject(connectionString.c_str());

    pqxx::work worker(connectionObject);

    pqxx::result response = worker.exec(&quot;SELECT * FROM users&quot;);

    for (size_t i = 0; i &lt; response.size(); i++)
    {
        std::cout &lt;&lt; &quot;Id: &quot; &lt;&lt; response[i][0] &lt;&lt; &quot; Username: &quot; &lt;&lt; response[i][1] &lt;&lt; &quot; Password: &quot; &lt;&lt; response[i][2] &lt;&lt; &quot; Email: &quot; &lt;&lt; response[i][3] &lt;&lt; std::endl;
    }
}
catch (const std::exception&amp; e)
{
    std::cerr &lt;&lt; e.what() &lt;&lt; std::endl;
}

system(&quot;pause&quot;);

}

Логи:

cd '/home/maksimk30/NetBeansProjects/car_shering'
/usr/bin/make -f Makefile CONF=Release
"/usr/bin/make" -f nbproject/Makefile-Release.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: вход в каталог «/home/maksimk30/NetBeansProjects/car_shering»
"/usr/bin/make"  -f nbproject/Makefile-Release.mk dist/Release/GNU-Linux/car_shering
make[2]: вход в каталог «/home/maksimk30/NetBeansProjects/car_shering»
mkdir -p dist/Release/GNU-Linux
g++ -m64    -o dist/Release/GNU-Linux/car_shering build/Release/GNU-Linux/Administrator.o build/Release/GNU-Linux/Car.o build/Release/GNU-Linux/Client.o build/Release/GNU-Linux/DBFunctions.o build/Release/GNU-Linux/DriverLicense.o build/Release/GNU-Linux/InurancePolice.o build/Release/GNU-Linux/Operator.o build/Release/GNU-Linux/Passport.o build/Release/GNU-Linux/User.o build/Release/GNU-Linux/main.o 
/usr/bin/ld: build/Release/GNU-Linux/main.o: предупреждение: перемещение указывает на «_ZTVN4pqxx14connect_directE» из раздела только для чтения «.text._ZN4pqxx21basic_connection_baseINS_14connect_directEED2Ev[_ZN4pqxx21basic_connection_baseINS_14connect_directEED5Ev]»
/usr/bin/ld: build/Release/GNU-Linux/main.o: в функции «pqxx::transaction<(pqxx::isolation_level)0, (pqxx::readwrite_policy)1>::~transaction()»:
main.cpp:(.text._ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EED1Ev[_ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EED1Ev]+0xf): неопределённая ссылка на «pqxx::transaction_base::End()»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EED1Ev[_ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EED1Ev]+0x28): неопределённая ссылка на «pqxx::dbtransaction::~dbtransaction()»
/usr/bin/ld: build/Release/GNU-Linux/main.o: в функции «pqxx::transaction<(pqxx::isolation_level)0, (pqxx::readwrite_policy)1>::~transaction()»:
main.cpp:(.text._ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EED0Ev[_ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EED0Ev]+0xf): неопределённая ссылка на «pqxx::transaction_base::End()»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EED0Ev[_ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EED0Ev]+0x28): неопределённая ссылка на «pqxx::dbtransaction::~dbtransaction()»
/usr/bin/ld: build/Release/GNU-Linux/main.o: в функции «pqxx::basic_connection_base<pqxx::connect_direct>::basic_connection_base(char const*)»:
main.cpp:(.text._ZN4pqxx21basic_connection_baseINS_14connect_directEEC2EPKc[_ZN4pqxx21basic_connection_baseINS_14connect_directEEC5EPKc]+0x16e): неопределённая ссылка на «pqxx::connection_base::clearcaps()»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx21basic_connection_baseINS_14connect_directEEC2EPKc[_ZN4pqxx21basic_connection_baseINS_14connect_directEEC5EPKc]+0x19c): неопределённая ссылка на «pqxx::connectionpolicy::connectionpolicy(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx21basic_connection_baseINS_14connect_directEEC2EPKc[_ZN4pqxx21basic_connection_baseINS_14connect_directEEC5EPKc]+0x1a3): неопределённая ссылка на «vtable for pqxx::connect_direct»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx21basic_connection_baseINS_14connect_directEEC2EPKc[_ZN4pqxx21basic_connection_baseINS_14connect_directEEC5EPKc]+0x1b2): неопределённая ссылка на «pqxx::connection_base::init()»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx21basic_connection_baseINS_14connect_directEEC2EPKc[_ZN4pqxx21basic_connection_baseINS_14connect_directEEC5EPKc]+0x228): неопределённая ссылка на «int pqxx::internal::check_library_version<6, 4>()»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx21basic_connection_baseINS_14connect_directEEC2EPKc[_ZN4pqxx21basic_connection_baseINS_14connect_directEEC5EPKc]+0x2b2): неопределённая ссылка на «pqxx::connectionpolicy::~connectionpolicy()»
/usr/bin/ld: build/Release/GNU-Linux/main.o: в функции «pqxx::basic_connection_base<pqxx::connect_direct>::~basic_connection_base()»:
main.cpp:(.text._ZN4pqxx21basic_connection_baseINS_14connect_directEED2Ev[_ZN4pqxx21basic_connection_baseINS_14connect_directEED5Ev]+0x8): неопределённая ссылка на «pqxx::connection_base::close()»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx21basic_connection_baseINS_14connect_directEED2Ev[_ZN4pqxx21basic_connection_baseINS_14connect_directEED5Ev]+0xf): неопределённая ссылка на «vtable for pqxx::connect_direct»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx21basic_connection_baseINS_14connect_directEED2Ev[_ZN4pqxx21basic_connection_baseINS_14connect_directEED5Ev]+0x22): неопределённая ссылка на «pqxx::connectionpolicy::~connectionpolicy()»
/usr/bin/ld: build/Release/GNU-Linux/main.o: в функции «pqxx::transaction<(pqxx::isolation_level)0, (pqxx::readwrite_policy)1>::transaction(pqxx::connection_base&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)»:
main.cpp:(.text._ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEC1ERNS_15connection_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEC1ERNS_15connection_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x92): неопределённая ссылка на «pqxx::dbtransaction::fullname(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEC1ERNS_15connection_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEC1ERNS_15connection_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x162): неопределённая ссылка на «pqxx::internal::basic_transaction::basic_transaction(pqxx::connection_base&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pqxx::readwrite_policy)»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEC1ERNS_15connection_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEC1ERNS_15connection_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x18c): неопределённая ссылка на «pqxx::transaction_base::Begin()»
/usr/bin/ld: main.cpp:(.text._ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEC1ERNS_15connection_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEC1ERNS_15connection_baseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x1e1): неопределённая ссылка на «pqxx::dbtransaction::~dbtransaction()»
/usr/bin/ld: build/Release/GNU-Linux/main.o: в функции «main»:
main.cpp:(.text.startup+0x109): неопределённая ссылка на «pqxx::transaction_base::exec(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)»
/usr/bin/ld: main.cpp:(.text.startup+0x5d7): неопределённая ссылка на «pqxx::result::size() const»
/usr/bin/ld: main.cpp:(.text.startup+0x617): неопределённая ссылка на «pqxx::result::operator[](unsigned long) const»
/usr/bin/ld: main.cpp:(.text.startup+0x624): неопределённая ссылка на «pqxx::row::operator[](int) const»
/usr/bin/ld: main.cpp:(.text.startup+0x62c): неопределённая ссылка на «pqxx::field::size() const»
/usr/bin/ld: main.cpp:(.text.startup+0x637): неопределённая ссылка на «pqxx::field::c_str() const»
/usr/bin/ld: main.cpp:(.text.startup+0x67f): неопределённая ссылка на «pqxx::result::operator[](unsigned long) const»
/usr/bin/ld: main.cpp:(.text.startup+0x68f): неопределённая ссылка на «pqxx::row::operator[](int) const»
/usr/bin/ld: main.cpp:(.text.startup+0x697): неопределённая ссылка на «pqxx::field::size() const»
/usr/bin/ld: main.cpp:(.text.startup+0x6a2): неопределённая ссылка на «pqxx::field::c_str() const»
/usr/bin/ld: main.cpp:(.text.startup+0x6e9): неопределённая ссылка на «pqxx::result::operator[](unsigned long) const»
/usr/bin/ld: main.cpp:(.text.startup+0x6f9): неопределённая ссылка на «pqxx::row::operator[](int) const»
/usr/bin/ld: main.cpp:(.text.startup+0x701): неопределённая ссылка на «pqxx::field::size() const»
/usr/bin/ld: main.cpp:(.text.startup+0x70c): неопределённая ссылка на «pqxx::field::c_str() const»
/usr/bin/ld: main.cpp:(.text.startup+0x74c): неопределённая ссылка на «pqxx::result::operator[](unsigned long) const»
/usr/bin/ld: main.cpp:(.text.startup+0x75c): неопределённая ссылка на «pqxx::row::operator[](int) const»
/usr/bin/ld: main.cpp:(.text.startup+0x764): неопределённая ссылка на «pqxx::field::size() const»
/usr/bin/ld: main.cpp:(.text.startup+0x76f): неопределённая ссылка на «pqxx::field::c_str() const»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTIN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE[_ZTIN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x10): неопределённая ссылка на «typeinfo for pqxx::internal::basic_transaction»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTCN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE0_NS_13dbtransactionE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x10): неопределённая ссылка на «typeinfo for pqxx::dbtransaction»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTCN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE0_NS_13dbtransactionE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x28): неопределённая ссылка на «pqxx::dbtransaction::do_begin()»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTCN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE0_NS_13dbtransactionE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x30): неопределённая ссылка на «pqxx::dbtransaction::do_exec(char const*)»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTCN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE0_NS_13dbtransactionE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x40): неопределённая ссылка на «pqxx::dbtransaction::do_abort()»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTCN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE0_NS_8internal17basic_transactionE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x10): неопределённая ссылка на «typeinfo for pqxx::internal::basic_transaction»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTCN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE0_NS_8internal17basic_transactionE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x28): неопределённая ссылка на «pqxx::dbtransaction::do_begin()»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTCN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE0_NS_8internal17basic_transactionE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x30): неопределённая ссылка на «pqxx::dbtransaction::do_exec(char const*)»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTCN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE0_NS_8internal17basic_transactionE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x38): неопределённая ссылка на «pqxx::internal::basic_transaction::do_commit()»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTCN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE0_NS_8internal17basic_transactionE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x40): неопределённая ссылка на «pqxx::dbtransaction::do_abort()»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x28): неопределённая ссылка на «pqxx::dbtransaction::do_begin()»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x30): неопределённая ссылка на «pqxx::dbtransaction::do_exec(char const*)»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x38): неопределённая ссылка на «pqxx::internal::basic_transaction::do_commit()»
/usr/bin/ld: build/Release/GNU-Linux/main.o:(.data.rel.ro._ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE[_ZTVN4pqxx11transactionILNS_15isolation_levelE0ELNS_16readwrite_policyE1EEE]+0x40): неопределённая ссылка на «pqxx::dbtransaction::do_abort()»
/usr/bin/ld: предупреждение: создаётся DT_TEXTREL в PIE
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
make[2]: *** [nbproject/Makefile-Release.mk:72: dist/Release/GNU-Linux/car_shering] Ошибка 1
make[2]: выход из каталога «/home/maksimk30/NetBeansProjects/car_shering»
make[1]: *** [nbproject/Makefile-Release.mk:68: .build-conf] Ошибка 2
make[1]: выход из каталога «/home/maksimk30/NetBeansProjects/car_shering»
make: *** [nbproject/Makefile-impl.mk:40: .build-impl] Ошибка 2
MaksimK30
  • 11
  • 1
  • Библиотека не правильно установлена. Попробуйте это: https://ru.stackoverflow.com/questions/1148588/libpqxx-%D0%BA%D0%B0%D0%BA-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C Ещё посмотрите это: https://github.com/jtv/libpqxx – Bloody.cpp Aug 31 '22 at 19:35
  • Проблему удалось решить, перейдя в режим Release, и установив параметры компилятора -lpqxx -lpq, но возникли другие проблемы. – MaksimK30 Aug 31 '22 at 20:15

0 Answers0