LINUX.ORG.RU

Модуль для апача, линковка


0

0

libtool: link: g++ -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.3.2/crtbeginS.o .libs/http_header.o .libs/cgi_application.o .libs/apache_application.o -Wl,-rpath -Wl,/home/dennis/development/libdcl-0.1.0/src/dcl/.libs -L/usr/lib /usr/lib/libapr-1.so -luuid -lrt -lcrypt ./.libs/libdclbase.so -ldl -lpthread -L/usr/lib/gcc/x86_64-linux-gnu/4.3.2 -L/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.3.2/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/crtn.o -Wl,--as-needed -Wl,-soname -Wl,libdclnet.so.0 -o .libs/libdclnet.so.0.0.0 ../../../src/dcl/.libs/libdclnet.so: undefined reference to `ap_rputs' collect2: ld returned 1 exit status

Что ему надо?

anonymous


ну он, этот символ, определён в самом httpd а не в apr или aprutils, так что линкеру об этом нужно лишь как-то хитро сказать. как именно - уже не помни. искать это глубокой ночью уже поздно. могу лишь посоветовать сконфигурировать апач с DSO, собрать и посмотреть как именно линкуются интересующие модули.

// wbr

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

> Я не знаток, но может тут тупо опечатка - s/ap_rputs/apr_puts/ ?

ну может быть и очепятка. тем не менее, указанный ap_rputs а) действительно существует б) активно используется в стандартных апачевских модулях.

// wbr

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

Нет, это не опечатка, это апачевская функция. Она действительно объявлена в самом httpd. По всей видимости, нужно линковаться с -Wl,--as-needed чтобы модуль мог ее использовать в момент загрузки процессом апача. Только у меня это почему-то не сработало, сегодня попорбую еще раз, по крайней мере проблема понятна, всем спасибо.

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