nixp.ru v3.0

17 января 2017,
вторник,
12:03:00 MSK

DevOps с компанией «Флант»
pionersurg написал 6 апреля 2009 года в 18:40 (2182 просмотра) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 1 комментарий на сайте.

не получается установить PWlib (и openh323) из исходников.

В соот с инструкцией

1. If you have not put pwlib it into your home directory (~/pwlib) then

you will have to defined the environment variable PWLIBDIR to point to

the correct directory.

Also make sure you have added the $PWLIBDIR/lib directory to your

LD_LIBRARY_PATH environment variable if you intend to use shared

libraries (the default).

прописал необходимые environment variable

#export PWLIBDIR=/usr/src/pwlib

#export OPENH323DIR=/usr/src/openh323

#export LD_LIBRARY_PATH=$PWLIBDIR/lib:$OPENH323DIR/lib

# echo $PWLIBDIR

/usr/src/pwlib

# echo $OPENH323DIR

/usr/src/openh323

# echo $LD_LIBRARY_PATH

/usr/src/pwlib/lib:/usr/src/openh323/lib

2. Build the debug and release versions of the PWLib library as follows:

cd ~/pwlib

./configure

отлично.. прошли этот этап.. ошибок ни одной..

лог следующий..

###################################################

checking for g++… g++

checking for C++ compiler default output file name… a.out

checking whether the C++ compiler works… yes

checking whether we are cross compiling… no

checking for suffix of executables…

checking for suffix of object files… o

checking whether we are using the GNU C++ compiler… yes

checking whether g++ accepts -g… yes

configure: PTLib version is 1.8.7

checking build system type… x86_64-unknown-linux-gnu

checking host system type… x86_64-unknown-linux-gnu

checking target system type… x86_64-unknown-linux-gnu

configure: OSTYPE set to linux

configure: OSRELEASE set to «2.6.27.19-5-default»

configure: MACHTYPE set to x86_64

configure: gcc version is 4.3

checking checking if pragma implementation should be used… no

checking whether byte ordering is bigendian… no

checking if linker accepts -felide-constructors… yes

checking if linker accepts -Wreorder… no

checking if compiler uses RTTI by default… yes

checking for working long double with more range or precision than double… yes

checking if readdir_r has 2 parms… no

checking if readdir_r has 3 parms… yes

checking for recvmsg… yes

checking if using STL streams… yes

checking if atomic integer available… no

checking if Unix semaphores are available… yes

checking for pthread_create in -lpthread… yes

checking if pthread_mutex_timedlock is available… yes

checking for sem_timedwait in -lpthread… yes

checking if sem_timedwait is compilable… yes

checking if recursive mutexes are available… yes

checking how to run the C++ preprocessor… g++ -E

checking for egrep… grep -E

checking for ANSI C header files… yes

checking for sys/types.h… yes

checking for sys/stat.h… yes

checking for stdlib.h… yes

checking for string.h… yes

checking for memory.h… yes

checking for strings.h… yes

checking for inttypes.h… yes

checking for stdint.h… yes

checking for unistd.h… yes

checking regex.h usability… yes

checking regex.h presence… yes

checking for regex.h… yes

checking for regcomp… yes

checking dlfcn.h usability… yes

checking dlfcn.h presence… yes

checking for dlfcn.h… yes

checking if dlopen is available… yes

checking for dlopen in -ldl… yes

checking if plugins support needs to be compiled… no

checking for res_search… no

checking for res_search in -lresolv… yes

checking for sasl_version in -lsasl2… no

checking for sasl_client_auth in -lsasl… no

checking if works… no

checking if works… no

checking ldap.h usability… no

checking ldap.h presence… no

checking for ldap.h… no

checking for /usr/local/include/ldap.h… no

checking openssl/ssl.h usability… no

checking openssl/ssl.h presence… no

checking for openssl/ssl.h… no

checking if openssl/ssl.h works with OPENSSL_NO_KRB5… no

checking for OpenSSL in /usr/local/openssl… no

checking for OpenSSL in /usr/local/ssl… no

checking expat.h usability… no

checking expat.h presence… no

checking for expat.h… no

checking for /usr/local/include/expat.h… no

checking for IPv6 support… yes

checking SDL/SDL.h usability… no

checking SDL/SDL.h presence… no

checking for SDL/SDL.h… no

checking for /usr/local/include/SDL11/SDL.h… no

checking linux/videodev.h usability… yes

checking linux/videodev.h presence… yes

checking for linux/videodev.h… yes

checking alsa/asoundlib.h usability… no

checking alsa/asoundlib.h presence… no

checking for alsa/asoundlib.h… no

checking for ALSA sound support… no

checking for swab… yes

checking for a BSD-compatible install… /usr/bin/install -c

configure: creating ./config.status

config.status: creating make/ptbuildopts.mak

config.status: creating make/ptlib-config

config.status: creating Makefile

config.status: creating include/ptbuildopts.h

configure: configuring in plugins

configure: running /bin/sh './configure' —prefix=/usr/local —cache-file=/dev/null —srcdir=.

checking for g++… g++

checking for C++ compiler default output file name… a.out

checking whether the C++ compiler works… yes

checking whether we are cross compiling… no

checking for suffix of executables…

checking for suffix of object files… o

checking whether we are using the GNU C++ compiler… yes

checking whether g++ accepts -g… yes

Plugin source directory is /usr/src/pwlib/plugins

checking for gcc… gcc

checking whether we are using the GNU C compiler… yes

checking whether gcc accepts -g… yes

checking for gcc option to accept ANSI C… none needed

checking how to run the C preprocessor… gcc -E

checking for egrep… grep -E

checking for ANSI C header files… yes

checking for sys/types.h… yes

checking for sys/stat.h… yes

checking for stdlib.h… yes

checking for string.h… yes

checking for memory.h… yes

checking for strings.h… yes

checking for inttypes.h… yes

checking for stdint.h… yes

checking for unistd.h… yes

checking alsa/asoundlib.h usability… no

checking alsa/asoundlib.h presence… no

checking for alsa/asoundlib.h… no

checking for ALSA sound support… no

checking sys/soundcard.h usability… yes

checking sys/soundcard.h presence… yes

checking for sys/soundcard.h… yes

checking for OSS sound support… yes

checking linux/videodev.h usability… yes

checking linux/videodev.h presence… yes

checking for linux/videodev.h… yes

checking for V4L video support… yes

checking machine/ioctl_meteor.h usability… no

checking machine/ioctl_meteor.h presence… no

checking for machine/ioctl_meteor.h… no

checking i386/ioctl_meteor.h usability… no

checking i386/ioctl_meteor.h presence… no

checking for i386/ioctl_meteor.h… no

checking dev/ic/bt8xx.h usability… no

checking dev/ic/bt8xx.h presence… no

checking for dev/ic/bt8xx.h… no

checking for BSD video support… no

checking libavc1394/avc1394.h usability… no

checking libavc1394/avc1394.h presence… no

checking for libavc1394/avc1394.h… no

checking libdv/dv.h usability… no

checking libdv/dv.h presence… no

checking for libdv/dv.h… no

checking libraw1394/raw1394.h usability… no

checking libraw1394/raw1394.h presence… no

checking for libraw1394/raw1394.h… no

checking for IEEE1394/AVC video support… no

checking libdc1394/dc1394_control.h usability… no

checking libdc1394/dc1394_control.h presence… no

checking for libdc1394/dc1394_control.h… no

checking for libraw1394/raw1394.h… (cached) no

checking for IEEE1394/DC video support… no

configure: creating ./config.status

config.status: creating Makefile

config.status: creating vidinput_dc/Makefile

###################################################

pionersurg

make

А вот на этом этапе возникают ошибки

xxx:/usr/src/pwlib # make

make P_SHAREDLIB=1 opt

make[1]: Entering directory `/usr/src/pwlib'

set -e; make -C src/ptlib/unix opt;

make[2]: Entering directory `/usr/src/pwlib/src/ptlib/unix'

g++ -D_REENTRANT -Wall -DP_64BIT -fPIC -I/usr/src/pwlib/include -M assert.cxx >> /usr/src/pwlib/lib/obj_linux_x86_64_r/*.dep

make[2]: Leaving directory `/usr/src/pwlib/src/ptlib/unix'

make[2]: Entering directory `/usr/src/pwlib/src/ptlib/unix'

g++ -D_REENTRANT -Wall -DP_64BIT -fPIC -I/usr/src/pwlib/include -Os -felide-constructors -x c++ -c ../../ptclib/asner.cxx -o /usr/src/pwlib/lib/obj_linux_x86_64_r/asner.o

In file included from /usr/src/pwlib/include/ptlib/timer.h:137,

from /usr/src/pwlib/include/ptlib.h:175,

from ../../ptclib/asner.cxx:315:

/usr/src/pwlib/include/ptlib/notifier.h: In constructor ‘PNotifierFunction::PNotifierFunction(void*)’:

/usr/src/pwlib/include/ptlib/notifier.h:42: warning: the address of ‘obj’ will always evaluate as ‘true’

../../ptclib/asner.cxx: In member function ‘PString PASN_Choice::GetTagName() const’:

../../ptclib/asner.cxx:2112: error: ‘psprintf’ was not declared in this scope

make[2]: * [/usr/src/pwlib/lib/obj_linux_x86_64_r/asner.o] Error 1

make[2]: Leaving directory `/usr/src/pwlib/src/ptlib/unix'

make[1]: * [opt] Error 2

make[1]: Leaving directory `/usr/src/pwlib'

make: * [optshared] Error 2

функция на которую обругался компилятор из файла ../../ptclib/asner.cxx

PString PASN_Choice::GetTagName() const

{

if (names.Contains(tag))

return names[tag];

if (CheckCreate() &&

PIsDescendant(choice, PASN_Choice) &&

choice->GetTag() == tag &&

choice->GetTagClass() == tagClass)

return PString(choice->GetClass()) + «->» + ((PASN_Choice *)choice)->GetTagName();

return psprintf(»

Дмитрий Шурупов

Ошибка — вот она: ‘psprintf’ was not declared in this scope

Т.е. не определена некая функция psprintf(). Как правило, это означает, что нет каких-то заголовочных файлов стандартных библиотек, в которых определена такая функция. Причем разработчики не проверяют, установлена ли нужная библиотека в ./configure (а следовало бы). В общем, надо понять, откуда она берется.

Гугл сразу же приводит сюда: http://doc.dvgu.ru/devel/c2lib/psprintf.3.html

Получается, это библиотека c2lib. Гугл приводит на ее домашнюю страничку — http://www.annexia.org/freeware/c2lib/

Предлагается поставить эту библиотеку (на приведенном сайте есть исходники), после чего повторить процедуру.

Дмитрий Шурупов

P.S. А вообще, в бинарных дистрибутивах обычно установка из исходников не нужна и создает только больше проблем. Вы пробовали найти нужную вам библиотеку в бинарном виде для своего дистрибутива?

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.