Я не уверен, что проблема больше подходит для Переполнение стека или же AskUbuntu, но я спрошу.
У меня есть две виртуальные машины. На одной Ubuntu 14.04 LTS и другой Ubuntu 16.04 LST. На обоих установлен Oracle Instant Client 12.1 следующим образом:
arkadiuszg@ubuntu:~/install/oracle$ ls -1
oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
arkadiuszg@ubuntu:~/install/oracle$ sudo alien -i oracle-instantclient12.1-*
arkadiuszg@ubuntu:~/install/oracle$ cd /etc/ld.so.conf.d/
arkadiuszg@ubuntu:/etc/ld.so.conf.d$ sudo touch oracle-instantclient12.1.conf
arkadiuszg@ubuntu:/etc/ld.so.conf.d$ sudo vi oracle-instantclient12.1.conf
В созданном файле я набираю:
/usr/lib/oracle/12.1/client64/lib
И наконец:
arkadiuszg@ubuntu:/etc/ld.so.conf.d$ sudo ldconfig
Я использую инструменты C ++, такие как: g ++, make, gdb. Компиляция проекта выполняется на обеих машинах правильно, но проблема связана с Ubuntu 16.04. Я продолжаю получать следующие ошибки:
DbConnection.cpp:(.text+0x536): undefined reference to `oracle::occi::Date::toText(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&) const'
build/Release/GNU-Linux/database/DbConnection.o: In function `CDbConnection::connect()':
DbConnection.cpp:(.text+0x1314): undefined reference to `oracle::occi::Environment::createEnvironment(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&, oracle::occi::Environment::Mode, void*, void* (*)(void*, unsigned long), void* (*)(void*, void*, unsigned long), void (*)(void*, void*))'
collect2: error: ld returned 1 exit status
Когда я делаю то же самое на Ubuntu 14.04, тогда все в порядке. Компиляция и компоновка заканчиваются успехом.
Кто-нибудь может мне помочь, пожалуйста …
Задача ещё не решена.
Других решений пока нет …