我需要自己编译 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(或加密)库的链接:
ldd tcltls.so
linux-vdso.so.1 => (0x00007ffdba8b9000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7f59e72000)
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。
感谢您的任何提示/想法/帮助!
马蒂亚斯