1

問題がStackOverflowまたはAskUbuntuに適しているかどうかはわかりませんが、質問します。2 つの仮想マシンがあります。一方の 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

g++、make、gdb などの C++ ツールを使用しています。プロジェクトのコンパイルは両方のマシンで正しく実行されますが、問題は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 でこれとまったく同じことを行うと、すべて問題ありません。コンパイルとリンクは正常に終了します。

誰か助けてくれませんか...

4

1 に答える 1