尝试构建openssl-1.0.2r
我收到此错误:Can't find library: "dl"
making all in apps...
rm -f openssl
shlib_target=; if [ -n "" ]; then \
shlib_target="hpux-shared"; \
elif [ -n "" ]; then \
FIPSLD_CC="cc"; CC=/usr/local/ssl/fips-2.0/bin/fipsld; export CC FIPSLD_CC; \
fi; \
LIBRARIES="-L.. -lssl -L.. -lcrypto" ; \
make -f ../Makefile.shared -e \
APPNAME=openssl OBJECTS="openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o x509.o genrsa.o gendsa.o genpkey.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_id.o ciphers.o nseq.o pkcs12.o pkcs8.o pkey.o pkeyparam.o pkeyutl.o spkac.o smime.o cms.o rand.o engine.o ocsp.o prime.o ts.o srp.o" \
LIBDEPS=" $LIBRARIES -L/usr/lib/pa20_32 -ldl" \
link_app.${shlib_target}
( :; \
LIBDEPS="${LIBDEPS:--L.. -lssl -L.. -lcrypto -L/usr/lib/pa20_32 -ldl}"; \
LDCMD="${LDCMD:-cc}"; LDFLAGS="${LDFLAGS:--DOPENSSL_THREADS -DDSO_DLFCN -DHAVE_DLFCN_H -D_REENTRANT -Ae +DD32 +O2 +Olit=all -z -DB_ENDIAN -D_REENTRANT}"; \
LIBPATH=`for x in $LIBDEPS; do echo $x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \
LIBPATH=`echo $LIBPATH | sed -e 's/ /:/g'`; \
LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH \
${LDCMD} ${LDFLAGS} -o ${APPNAME:=openssl} openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o x509.o genrsa.o gendsa.o genpkey.o s_server.o s_client.o speed.o s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_id.o ciphers.o nseq.o pkcs12.o pkcs8.o pkey.o pkeyparam.o pkeyutl.o spkac.o smime.o cms.o rand.o engine.o ocsp.o prime.o ts.o srp.o ${LIBDEPS} )
/opt/XPADE/v3/usr/ccs/lbin/ld32: Can't find library: "dl"
问题是我找不到32位计算机上的libdl
。看起来它仅适用于64位
$ ls /usr/lib/pa20_32 | grep dl
libdlv_vxfs.1
libdlv_vxfs.sl
$
$ ls /usr/lib/pa20_64 | grep dl
dld.sl
libdl.1
libdl.sl
libdld.1
libdld.sl
libdlv_vxfs.1
libdlv_vxfs.sl
有人知道这个问题吗?
答案 0 :(得分:1)
PA32(pa20_32)版本称为libdld.sl(libdld.2),副本应该已经在/ usr / lib(也许还有/ usr / ccs / pa / usr / lib)下提供。您可以在适当的目录中建立一个名为“ libdl.sl”的符号链接,也可以将您的makefile更改为使用“ -ldld”而不是“ -ldl”。
答案 1 :(得分:0)
这是我们使用HP ANSI(aCC)编译器在HP-UX PARISC v11.23上构建OpenSSL 1.0.2的工作:
CC="cc -Dinline=" $CONFIGURE no-shared hpux-parisc1_1-cc +DA2.0 +DS2.0
# Fix up HP-UX 11i v2 doesn't have the ALT XOPEN library implementation.
for i in `find . -name '*akefile'`
do
sed 's/-D_HPUX_ALT_XOPEN_SOCKET_API//' $i > $i.new
mv $i.new $i
done
make clean all
构建干净。在11.31上,您可能不需要sed命令。