LINUX.ORG.RU

На восмерку уже доки нету.
Но IMXO эту либу можно создать, в 10-ке так и написано что следует сделать после инсталяции. Там и написано как создать либу для компиляции в static.

Aleks_IZA
()

без статической сборки она у тебя просто не заработает ;-)))))

точнее если не поимееш достаточно секса ;_)))))))))

>Нет lib_name.a

после нормальной установки должен лежать недалеко от lib_name.so. find рулит.

кстати можеть ты вообще не ту либу ищешь???

cvv ★★★★★
()
Ответ на: комментарий от cvv

Вряд ли я не правильно устанавливаю Oracle 8i!!!
Да и команда locate после updatedb никогда не врёт!!!
Дайте ссылки на доку по Oracle 10, может я по аналогу смогу сделать!

kri
() автор топика
Ответ на: комментарий от cvv

> без статической сборки она у тебя просто не заработает ;-)))))

А в глаз за наглый обман? :-) Как же у меня php-oci8 работает???

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

А вообще что, есть любители подтягивать в бинарник статически библиотеку, зависящую от дохрена-скольки файлов? :-)

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

no-dashi :

> А вообще что, есть любители подтягивать в бинарник статически библиотеку, зависящую от дохрена-скольки файлов? :-)

Дык, если их ВСЕХ туда впихнуть...

Зацени строку из Makefile'а:

LIBS = -L$(HOME)/lib/lib -static -lqt -lstdc++ -lX11 -lXext -lm -ldl -lc -lnss_files -lnss_dns -lresolv

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

Respect за строчку!
У моей Ораклы есть почти все либы в *.a архивах, но libclntsh.so - только в so-ке :((
Именно с ней и надо слинковаться!

kri
() автор топика
Ответ на: комментарий от no-dashi

>> без статической сборки она у тебя просто не заработает ;-)))))

>А в глаз за наглый обман? :-) Как же у меня php-oci8 работает???

а ты читай повнимательнее.

я собирал тору с восьмым ораклом. Так вот там в ИНСТАЛЛ рекомендовалось дабы не иметь лишнего сакс с ораклом линковать его статически. чего я человеку и порекомендовал.

cvv ★★★★★
()
Ответ на: комментарий от cvv

Я нашёл Оракловый скриптик genclntsh
Он создаёт libclntsh.so.8.0 и в конце вызывает скриптик genclntst, который в свою очередь создаёт libclntst8.a
В description ко второму скрипту написано, что он делает то же самое, что и предыдущий, но только в архиве, а не а shared library

ОДНАКО!!!
В проекте я линкуюсь статически и при линковке явно указываю файл libclntst8.a 
Куча undefined reference в итоге!!!
OOO "Oracle" :) не предоставляет исходников и скрипт генерит архив из готовых *.o объектных файлов, собраных хрен знает чем и когда!!!!

Возможно в этом проблема? Если просто просмотреть архив (например vim-ом) и прогрепить на нужные функции - то они там найдутся!!!
Почему же тогда gcc их там не видит???!!!

kri
() автор топика
Ответ на: комментарий от kri

>Я нашёл Оракловый скриптик genclntsh
>Он создаёт libclntsh.so.8.0 и в конце вызывает скриптик genclntst, который в свою очередь создаёт libclntst8.a
В description ко второму скрипту написано, что он делает то же самое, что и предыдущий, но только в архиве, а не а shared library

мне здеся повезло потому что ето сделали за меня

>ОДНАКО!!!
>В проекте я линкуюсь статически и при линковке явно указываю файл libclntst8.a
>Куча undefined reference в итоге!!!
>OOO "Oracle" :) не предоставляет исходников и скрипт генерит архив из готовых *.o объектных файлов, собраных хрен знает чем и когда!!!!

явно указывать файл нельзя ибо будеть то что виш. Указывать надо -L/path/to/libclntst8.a -lclntst8

обьектники скомпилены gcc 2.96.1xx . если они не пострипаны то можешь увидеть при помощи strings

>Возможно в этом проблема? Если просто просмотреть архив (например vim-ом) и прогрепить на нужные функции - то они там найдутся!!!
Почему же тогда gcc их там не видит???!!!

cvv ★★★★★
()
Ответ на: комментарий от cvv

Я сделал как ты сказал, вот что из этого получилось:

/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(slpmfpb.o): In function `slpmfpb':
slpmfpb.o(.text+0x71): undefined reference to `dlclose'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(slpmloc.o): In function `slpmloc':
slpmloc.o(.text+0x53a): undefined reference to `dlopen'
slpmloc.o(.text+0x568): undefined reference to `dlsym'
slpmloc.o(.text+0x57f): undefined reference to `dlclose'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(sltsm.o): In function `sltsmdt':
sltsm.o(.text+0x13a): undefined reference to `pthread_mutex_trylock'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(sltsm.o): In function `sltsmnt':
sltsm.o(.text+0x209): undefined reference to `pthread_mutex_trylock'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(slts.o): In function `sltsimt':
slts.o(.text+0x10d): undefined reference to `pthread_mutex_trylock'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(slts.o): In function `sltskyc':
slts.o(.text+0x16e): undefined reference to `pthread_key_create'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(slts.o): In function `sltskyg':
slts.o(.text+0x204): undefined reference to `pthread_getspecific'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(slts.o): In function `sltskys':
slts.o(.text+0x248): undefined reference to `pthread_setspecific'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(sltst.o): In function `sltstcr':
sltst.o(.text+0x196): undefined reference to `pthread_create'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(sltst.o): In function `sltstjn':
sltst.o(.text+0x548): undefined reference to `pthread_join'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(sltst.o): In function `sltstkill':
sltst.o(.text+0x639): undefined reference to `pthread_kill'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(sltst.o): In function `sltstspawn':
sltst.o(.text+0x826): undefined reference to `pthread_create'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(snlso.o): In function `snlsodx_destroy':
snlso.o(.text+0x108): undefined reference to `dlclose'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(snlso.o): In function `snlsolk_lookup':
snlso.o(.text+0x454): undefined reference to `dlopen'
snlso.o(.text+0x4b9): undefined reference to `dlsym'
snlso.o(.text+0x511): undefined reference to `dlclose'
snlso.o(.text+0x57e): undefined reference to `dlclose'
snlso.o(.text+0x65c): undefined reference to `dlclose'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(snlso.o): In function `snlsorm_remove':
snlso.o(.text+0x95b): undefined reference to `dlclose'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(sltspc.o): In function `sltspctimewait':
sltspc.o(.text+0x227): undefined reference to `pthread_cond_timedwait'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(skgup.o): In function `skgupii':
skgup.o(.text+0xa05): undefined reference to `pthread_mutexattr_init'
skgup.o(.text+0xa0b): undefined reference to `pthread_mutexattr_destroy'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(snlj.o): In function `snljgvm':
snlj.o(.text+0x50): undefined reference to `dlopen'
snlj.o(.text+0x6e): undefined reference to `dlsym'
snlj.o(.text+0xfb): undefined reference to `dlsym'
snlj.o(.text+0x166): undefined reference to `dlsym'
snlj.o(.text+0x1c1): undefined reference to `dlclose'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(sskgds.o): In function `sskgds_init':
sskgds.o(.text+0x238): undefined reference to `dlopen'
sskgds.o(.text+0x35e): undefined reference to `dlsym'
sskgds.o(.text+0x53e): undefined reference to `dlopen'
sskgds.o(.text+0x557): undefined reference to `dlerror'
sskgds.o(.text+0x77a): undefined reference to `dlsym'
sskgds.o(.text+0x9b6): undefined reference to `dlclose'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(sslts.o): In function `ssltssigmask':
sslts.o(.text+0x10): undefined reference to `pthread_sigmask'
/oracle/app/oracle/product/8.1.7/lib//libclntst8.a(sslts.o): In function `ssltstraise':
sslts.o(.text+0x3c): undefined reference to `pthread_kill'
collect2: ld returned 1 exit status
make: *** [nf_parser] Ошибка

kri
() автор топика
Ответ на: комментарий от kri

Ето ближе к жизни.

Все оракловые символы отрезольвены что и требовалось.

тебе осталось добавить чтото типа -lpthread -ldl и если я неошибся получиш свою прогу

cvv ★★★★★
()
Ответ на: комментарий от cvv

Два дня гемороя и цель достигнута!!!!!!!!!!!!!!!!!!

Прога почти на 6 Mb получилась! Но в моей ситуации - это просто рулез!

Всем спасибо!!! Особенно cvv!

kri
() автор топика
Ответ на: комментарий от kri

>Два дня гемороя и цель достигнута!!!!!!!!!!!!!!!!!!

Учти что твоим предшественникам ето давалось намного тяжелей

>Прога почти на 6 Mb получилась! Но в моей ситуации - это просто рулез!

Ничего особенно если учесть что оракловая либа весит 9Мб

>Всем спасибо!!! Особенно cvv!

Главное незабывай. может пригодишся. ;-)))

В одиночку мы бы все давно погибли

cvv ★★★★★
()
Ответ на: комментарий от cvv

> дабы не иметь лишнего сакс с ораклом линковать его статически. чего я человеку и порекомендовал

Ну, если у человека все заработает - я рад за него :-)

А как быть со всякими TNS'ами, локалями и прочим? IMHO грустное это занятие, даже на винде народ старается поставить ораклового клиента и использовать его функции... А так придется strace'ом отслеживать куда эта зараза (слинкованная статически oci) лазит и что ей надо подкладывать :-(

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

>А как быть со всякими TNS'ами, локалями и прочим?

Мы выгрызаем из текущей инсталяшки ораклового клиента и распостраняем вместе с приложением. там буквально три папки network, ocommon && rdbms.

и те возможно не полностью.

cvv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.