相关疑难解决方法(0)

如何使用OpenSSL编译.c文件包括?

我正在尝试编译一个包含以下内容的小型.c文件:

#include <openssl/ssl.h>
#include <openssl/rsa.h>
#include <openssl/x509.h>
#include <openssl/evp.h>
Run Code Online (Sandbox Code Playgroud)

在我拥有.c文件的同一个文件夹中,我有一个/ openssl包含所有这些文件(以及更多),同样在synaptic包管理器中我看到安装了OpenSSL,我试图用这个编译:

gcc -o Opentest Opentest.c -lcrypto
Run Code Online (Sandbox Code Playgroud)

但我总是得到错误:

error: openssl/ssl.h: No such file or directory
error: openssl/rsa.h: No such file or directory
error: openssl/x509.h: No such file or directory
error: openssl/evp.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我想编译的文件只是一个.c文件,没有Makefile或./configure.

我已经尝试过:

env CFLAGS=-I/path/to/openssl/
Run Code Online (Sandbox Code Playgroud)

并尝试再次编译,但我得到相同的错误.

我应该怎么做才能用openssl编译包括?

c linux compiler-construction openssl compiler-errors

67
推荐指数
4
解决办法
16万
查看次数

使用 RPATH 构建 OpenSSL?

我有 Ubuntu 14.04。它附带了 openssl 1.0.1f。我想安装另一个openssl版本(1.0.2)并且我想自己编译它。

我将其配置如下:

LDFLAGS='-Wl,--export-dynamic -L/home/myhome/programs/openssl/i/lib 
-L/home/myhome/programs/zlib/i/lib'

CPPFLAGS='-I/home/myhome/programs/openssl/i/include 
-I/home/myhome/programs/zlib/i/include'

./config --prefix=/home/myhome/programs/openssl/i \
zlib-dynamic shared --with-zlib-lib=/home/myhome/programs/zlib/i/lib \
--with-zlib-include=/home/myhome/programs/zlib/i/include

make 

make install
Run Code Online (Sandbox Code Playgroud)

安装后,当我用 检查二进制文件时ldd openssl,结果是:

...
libssl.so.1.0.0 => /home/myhome/programs/openssl/i/lib/libssl.so.1.0.0 (0x00007f91138c0000)
libcrypto.so.1.0.0 => /home/myhome/programs/openssl/i/lib/libcrypto.so.1.0.0 (0x00007f9113479000)
...
Run Code Online (Sandbox Code Playgroud)

看起来不错。但是当我检查 ldd 时libssl.so,结果是:

...
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fac70930000)
...
Run Code Online (Sandbox Code Playgroud)

它仍然使用系统版本的libcrypto。我尝试了不同的构建方法,但结果始终保持不变。

我的问题是如何以某种方式配置构建,使其可以对共享库的所有二进制和库依赖项进行硬编码LD_LIBRARY_PATH,而无需使用 或类似的东西。

linux openssl rpath ldd

6
推荐指数
1
解决办法
8189
查看次数

标签 统计

linux ×2

openssl ×2

c ×1

compiler-construction ×1

compiler-errors ×1

ldd ×1

rpath ×1