2015-06-17 8 views
0

Я пытаюсь разработать статически связанное приложение OCi/OCCI, и я получаю много неопределенных ошибок, как показано ниже.Ошибки связи во время статической привязки программ OCCI/OCI в Oracle 12c

Может кто-нибудь сказать мне, какие .a библиотеки будут включены в линию ссылок.

Спасибо.

/u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxxmlidc.o). В функции lxXmlIdConv': lxxmlidc.c:(.text+0x15d): undefined reference to lxuCvtToCtx» lxxmlidc.c :(текст + 0x23f): неопределенная ссылка на lxu4TstClass' lxxmlidc.c:(.text+0x36f): undefined reference to lxu4TstClass'. lxxmlidc.c :(текст + 0x386): неопределенная ссылка на lxu4TstClass' lxxmlidc.c:(.text+0x39d): undefined reference to lxu4TstClass' lxxmlidc.c :(текст + 0x3be). неопределенная ссылка на lxu4TstClass' /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxxmlidc.o):lxxmlidc.c:(.text+0x7d4): more undefined references to lxu4TstClass' следовать /u01/home/oracle/product/12.1 .0.2/Библиотека/libnls12.a (lxuca.o): В функции lxucaFindLastNonCombiningChar': lxuca.c:(.text+0xc82): undefined reference to lxu4GCombiningClass' /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxuca.o): В функции lxucaFindTrimPosition': lxuca.c:(.text+0xfd6): undefined reference to lxuCvtToCtx» /u01/дома/оракул/продукта/12 .1.0.2/lib/libnls12.a (lxuca.o): В функции lxucaGetKey': lxuca.c:(text.hot+0xb2c): undefined reference to lxuComposition ' lxuca.c: (text.hot + 0xe06): undefined ссылка на lxu4GCombiningClass' lxuca.c:(text.hot+0xeaa): undefined reference to lxu4GCombiningClass' lxuca.c: (text.hot + 0x112b): не определено ссылка на lxu4GCombiningClass' /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxuca.o): In function lxucaConvertAndDecompose ': lxuca.c: (text.hot + 0x181a): не определено ссылка на lxuDecomposition' /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxuca.o): In function lxucaGetImplicitWeightBase': lxuca.c: (text.hot + 0x1b16) не определено ссылкой на lxu4GBlock' /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxpisac.o): In function lxpIsACollationElement ': lxpisac.c :(текст + 0x2fc). неопределенная ссылка на lxuCvtToCtx' /u01/home/oracle/product/12.1.0.2/lib/libnls12.a(lxpisac.o): In function lxpNumOfUc4CollationElem ':. lxpisac.c :(текст + 0x753): неопределенная ссылка на lxuCvtToCtx' lxpisac.c:(.text+0x91a): undefined reference to lxuComposition' /u01/home/oracle/product/12.1.0.2 /lib/libcore12.a(lrmini.o): В функциях на lrminiu': lrmini.c:(.text+0x5b6): undefined reference to lxuCvtToCtx ' /u01/home/oracle/product/12.1.0.2/lib/libcore12.a(lrmpu.o): функция lrmpu16to8': lrmpu.c:(text.unlikely+0x57): undefined reference to lxuStrLen' /u01/home/oracle/product/12.1.0.2/lib/ libcore12.a (lsf.o): В функции lsfiniu': lsf.c:(.text+0x551): undefined reference to lxuCvtToCtx ' /u01/home/oracle/product/12.1.0.2/lib/libcore12.a(lsfu.o): В функции lsfu16to8': lsfu.c:(text.unlikely+0x65): undefined reference to lxuStrLen' /u01/home/oracle/product/12.1.0.2/lib/libcore12.a (lrmckv.o): В функции lrmckv': lrmckv.c:(.text+0x54f): undefined reference to lxuCmpBinStr ' /u01/home/oracle/product/12.1.0.2/lib/libcore12.a(lrmpatk.o): В функция lrmpatk': lrmpatk.c:(text.unlikely+0x2f1): undefined reference to lxuCmpBinStr ' /u01/home/oracle/product/12.1.0.2/lib/libcore12.a(lrmcvv.o): В функции lrmcvv': lrmcvv.c:(.text+0x219): undefined reference to lxuCmpBinStr'

+0

Я сделал это раз много лет назад. кроме библиотеки liclntsh.so есть также библиотека libclntst.a (sh-shared, st-static). Посмотрите на сценарий relink - это может генерировать статическую версию библиотеки. Также я вспоминаю, что мне нужна статическая версия некоторых библиотек, поставляемых с компилятором ICC от Intel (Oracle не использует gcc). Просто напишите сценарий, который использует 'nm' и попытайтесь найти отсутствующие символы во всех файлах' .a'' .o', поставляемых с установкой Oracle. Какую команду вы используете для связи своего приложения? – ibre5041

+0

g ++. Является ли libclntst.a статическим эквивалентом libclntsh.so? – Chandu

+0

Раньше я был. Как я помню, вер. 8i/9i. См. «Задачи после установки»: http://docs.oracle.com/html/B10811_05/ch4.htm. Но даже если я использовал эту библиотеку, мне пришлось найти некоторые символы из компилятора ICC. Что-то вроде __fast_memcpy. Я думаю, что даже у gcc есть библиотека libgcc, которая содержит необходимые функции времени исполнения. – ibre5041

ответ

1

Спасибо, что я использовал команду nm для всех символов во всех библиотеках Oracle и включил их в линию ссылок. После попытки перестановок и комбинаций он связался

+0

, вы должны опубликовать то, что вы придумали, для следующего бедного рыдака, который находит themselvs в той же ситуации. – EvilTeach

+0

Для каждого символа не найдена ошибка ... goto lib dir в Oracle ... используйте команду nm, чтобы найти файл .a, в котором существует символ, и этот файл для ссылки. – Chandu