【问题标题】:libdl not found on HPUX for OpenSSL 32bit build在 HPUX 上找不到用于 OpenSSL 32 位构建的 libdl
【发布时间】:2019-05-15 10:13:09
【问题描述】:

当尝试构建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

有人知道这个问题吗?

【问题讨论】:

    标签: unix openssl hp-ux


    【解决方案1】:

    PA32 (pa20_32) 版本称为 libdld.sl (libdld.2),应该在 /usr/lib 下提供一个副本(也许还有 /usr/ccs/pa/usr/lib)。您可以在适当的目录中创建一个名为“libdl.sl”的符号链接,或者将您的 makefile 更改为使用“-ldld”而不是“-ldl”。

    【讨论】:

      【解决方案2】:

      这是我们在工作中使用 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 命令。

      【讨论】:

        猜你喜欢
        • 2011-05-04
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 2013-04-05
        • 1970-01-01
        • 2012-11-09
        • 2016-12-02
        • 2013-11-07
        相关资源
        最近更新 更多