我有一个作为第三方应用程序(app.exe)的一部分运行的 solaris 共享对象(common.so 文件)。我无权访问应用程序的源代码。为此,我需要添加发布 http 请求的功能。我的计划是将 libcurl 与 openssl 一起使用。棘手的部分是 app.exe 已经依赖于旧版本的 curl (7.14),它不支持 tls v1.2 的 ssl。
我下载了源代码并构建了 curl (7.55.1) 和 openssl .a 文件。我还能够构建 common.so 并静态依赖这些存档文件。ldd 不显示对 curl 或 ssl .so 文件的依赖,也不会报告任何“未找到符号”错误。
有了这个结果,我希望当 so 作为应用程序的一部分运行时调用我的 curl 版本,但它没有。相反 curl_version() 显示旧版本,我收到错误未知 ssl 协议错误
我正在使用 solaris studio 编译器。该应用程序不直接依赖于 curl 库,而是依赖于一个不同的 .so 文件,该文件导出与 curl 同名的符号。我从 nm 中意识到,我假设这个 .so 文件也静态链接 curl。