【问题标题】:Build openvpn with the modified OpenSSL [duplicate]使用修改后的 OpenSSL 构建 openvpn [重复]
【发布时间】:2025-12-01 23:30:01
【问题描述】:

我安装了带有一些日志记录代码的 openssl-1.0.2,这些代码通过 ./config shared --prefix=/usrmakemake install 命令添加到原始版本。之后我根据./configure OPENSSL_SSL_LIBS="-L/usr/ -lssl" OPENSSL_SSL_CFLAGS="-I/usr/include/" OPENSSL_CRYPTO_LIBS="-L/usr/ -lcrypto" OPENSSL_CRYPTO_CFLAGS="-I/usr/include/"makemake install安装了openvpn。

当我创建 vpn 隧道时,我在日志系统文件中看不到任何日志。我认为 openvpn 正在使用另一个 OpenSSL。我不知道如何解决这个问题...

【问题讨论】:

  • --prefix=/usr - 这可能是个坏主意。你应该把它放在/usr/local。否则,您将替换系统的库版本。这通常会导致坏事。
  • openvpn --version 说什么? ldd openvpn 的输出是什么?另见Build OpenVPN with specific OpenSSL version。引用的问题出现在您的问题之后,但它有一个彻底的答案。它还使用RPATHs 来确保在运行时链接预期的 OpenSSL 库。
  • 另请参阅 OpenVPN 问题跟踪器中报告的 Issue 794: Process for builing OpenVPN with OpenSSL

标签: openssl openvpn


【解决方案1】:

您确定这些库安装到/usr 而不是/usr/lib?因为通常前缀只是一个前缀,而不是整个路径。但是,-L 的参数是完整路径,因此请尝试 -L/usr/lib
如果这仍然不起作用,请尝试使用-l 的完整路径:-l/usr/lib/libcrypto.<x>,其中<x> 是您的操作系统的共享库扩展,对于Linux 是.so,对于OS X 是.dylib,对于@ 987654330@ 适用于 Windows。

另外,如果您花更多时间格式化您的问题,我认为人们会很感激。

【讨论】: