【问题标题】:Statically Link OpenSSL in my c program在我的 c 程序中静态链接 OpenSSL
【发布时间】:2014-09-09 15:50:29
【问题描述】:

我正在尝试在我的 Oracle 12 HTTP 服务器中使用 mod_auth_cas。但是,Oracle 在其无限的wizdumb 中删除了 mod_ssl 并使用了自己的 ossl。所以现在我的 mod_auth_cas 不起作用,因为它与 openSSL 链接。 (我收到“未定义符号 SSL_connect”错误)

查看代码 (https://github.com/Jasig/mod_auth_cas/tree/master/src) 我看到了这个:

#include <openssl/crypto.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <openssl/err.h>

我知道我可以通过 gcc 编译器静态链接它,但是它使用 Makefile 并且我绝不(我是 Java 人)我有能力在 makefile 中执行此操作。

所以我的问题是:

  1. 我可以强制编译器从代码本身静态链接 openssl,这样我就不必弄乱 makefile(比如有没有 #includestatic 指令)

  1. 我需要生成文件吗?我可以只创建一行 gcc 来编译我需要的东西吗(它只有 2 个 .c 文件和 2 个 .h 文件)

  1. 我可以根据 oracle 使用的 mod_ossl 编译它吗?我将如何去做,因为我不知道我在这里做什么。 :)

感谢您的任何提示!

【问题讨论】:

  • 你在哪里构建 mod_auth_cas 以便它可以在构建时找到 openssl 但在运行时不可用?你不能在运行的系统上安装那个 openssl 吗?
  • 他们是从 fedora 项目中预构建的。
  • 为这样的事情混合来源通常不是一个好主意。但是为了继续这个概念,他们应该尝试从那里包含 openssl 库。

标签: c++ c oracle gcc makefile


【解决方案1】:
  1. 不行,你需要修改makefile。
  2. 是的,您可以通过一个命令完成所有操作。
  3. 可能不会。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多