Ubuntu 16.04 LTS和Oracle Instant Client-C ++链接错误

问题描述 投票:1回答:1

我不确定该问题是否更适合StackOverflowAskUbuntu,但我会问。我有两个虚拟机。在一个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上完全相同时,则一切正常。编译和链接以成功结束。

有人可以帮我吗?

c++ oracle ubuntu-14.04 instantclient ubuntu-16.04
1个回答
0
投票

这是由于编译器版本。oracle occi与gcc 4.8.2兼容检查编译器版本以查看差异

© www.soinside.com 2019 - 2024. All rights reserved.