Недавно я обновил свой gcc с 4.1.2 до 5.2.0.Ошибка связи OCCI с gcc 5
Это вызвало ошибку сцепления с библиотекой OCCI:
Исходный код, который я пытаюсь запустить:
#include <iostream>
#include <occi.h>
using namespace oracle::occi;
using namespace std;
int main (int argc, char *argv[])
{
Environment *env;
Connection *conn;
oracle::occi::MetaData metaData = conn->getMetaData ((char *)"PERSON_OBJ");
metaData.getString(MetaData::ATTR_NAME);
return(0);
}
Ошибка связи:
gmake -f/home/davidd/temp.mak CFG = Debug g ++ -g "-Wl, -rpath,/omniqdir/arch/x86_64/release/lib:/omniqdir/instantclient_12_1:/usr/lib, -rpath-link,/omniqdir/арка/x86_64/release/lib:/omniqdir/instantclient_12_1:/usr/lib, -ldl, -lpthread "/omniqdir/arch/x86_64/release/lib/libjemalloc.so -o" Debug/temp "Debug/temp.o/omniqdir/instantclient_12_1 /libocci.so /omniqdir/instantclient_12_1/libclntsh.so Debug/temp.o: В функции main': temp.cpp:(.text+0xac): undefined reference to
_ZNK6oracle4occi8MetaData9getStringB5 cxx11 ENS1_6AttrIdE» collect2: ошибка: л.д. возвращается 1 выход статус gmake: *** [Debug/темп] ошибка 1
Я заметил, что неопределенная ссылка содержит C++ 11 связанных символов, которые, я думаю, связаны с новым компилятором gcc, который я использую.
Объявление функции от occiControl.h
OCCI_STD_NAMESPACE :: строка GetString (MetaData :: AttrId attrid)
Я использую Centos 6.6 и последняя версия OCCI instantclient-basiclite-linux.x64- 12.1.0.2.0.
Любые идеи?
Спасибо, David