用静态openssl-lib编译tcltls .so

时间:2019-01-04 13:57:47

标签: openssl tcl static-linking activetcl

我需要自己编译tcl / tk并想添加tcltls-Package。 因为我不想依赖系统openssl-lib,所以我想将openssl包含在共享对象中。

因此,我在系统上安装了openssl-static并编译了tcl / tcltls。 我也尝试过“ ./configure --enable-static-ssl”,但是tcltls总是链接到系统库:

  

ldd tcltls.so
         linux-gate.so.1 =>(0xf77d2000)
         libdl.so.2 => /lib/libdl.so.2(0xf77b8000)
    libresolv.so.2 => /lib/libresolv.so.2(0xf779e000)
    libssl.so.10 => /usr/lib/libssl.so.10(0xf7735000)
    libcrypto.so.10 => /usr/lib/libcrypto.so.10(0xf756a000)
    libz.so.1 => /lib/libz.so.1(0xf7555000)
    libgssapi_krb5.so.2 => /lib/libgssapi_krb5.so.2(0xf7515000)
    libkrb5.so.3 => /lib/libkrb5.so.3(0xf7437000)
    libcom_err.so.2 => /lib/libcom_err.so.2(0xf7432000)
    libk5crypto.so.3 => /lib/libk5crypto.so.3(0xf7407000)
    libc.so.6 => /lib/libc.so.6(0xf7270000)
    /lib/ld-linux.so.2(0xf77d3000)
    libkrb5support.so.0 => /lib/libkrb5support.so.0(0xf7263000)
    libkeyutils.so.1 => /lib/libkeyutils.so.1(0xf725f000)
    libpthread.so.0 => /lib/libpthread.so.0(0xf7244000)
    libselinux.so.1 => /lib/libselinux.so.1(0xf7225000)

我检查了ActiveState tcltls-Package,并且不存在指向系统ssl(或crypto)库的链接:

  

ldd tcltls.so
    linux-vdso.so.1 =>(0x00007ffdba8b9000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2(0x00007f7f59e72​​000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6(0x00007f7f59aa8000)
    /lib64/ld-linux-x86-64.so.2(0x00007f7f5a47f000)

那么,ActiveState-Crew如何编译tcltls,或者必须设置哪些选项才能将ssl静态链接到我的tcltls-shared-object-package中?

共享对象的大小也有所不同(当然): 我的tcltls.so大约有380kB。 ActiveState tcltls.so 2,3MB

在Linux上使用tcl8.6.8 + tcltls-1.7.16。

感谢任何提示/想法/帮助!
马蒂亚斯

0 个答案:

没有答案