当前位置: 首页 > 面试题库 >

将OpenSSL库链接到程序

方河
2023-03-14
问题内容

我已经从源代码构建了OpenSSL(一个有意的旧版本;使用来构建./config && make && make test),并且更愿意使用我所构建的内容,而不用make install链接到我的程序

失败的命令是:

gcc -Wall -Wextra -Werror -static -Lopenssl/openssl-0.9.8k/ -lssl -lcrypto 
-Iopenssl/openssl-0.9.8k/include -o myApp source1.o source2.o common.o`

并且我收到一系列类似于以下的错误:

common.c:(.text+0x1ea): undefined reference to `SSL_write'

这使我认为我的OpenSSL有点时髦。如果我-Lopenssl/openssl-0.9.8k/从命令中省略,则错误变为无法执行以下操作:

/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto

我是否编译不正确的OpenSSL?还是我应该如何最好地解决这个问题?


问题答案:

愚蠢的“ Linux-isms”再次罢工!很显然,我需要改变我的命令,使得在-L-l东西是 在年底 一样(尽管什么man gcc似乎表明):

gcc -Wall -Wextra -Werror -static -o myApp source1.o source2.o common.o -Lopenssl/openssl-0.9.8k/ -lssl -lcrypto -Iopenssl/openssl-0.9.8k/include



 类似资料:
  • 问题内容: 我有一个32位.so二进制库,我必须生成使用它的64位程序。有没有办法包装或转换它,使其可以与64位程序一起使用? 问题答案: 不能。您不能直接链接到64位程序内部的32位代码。 最好的选择是编译一个可以在64位平台上运行的32位(独立)程序(使用ia32),然后使用一种进程间通信的形式从64位程序与其进行通信。

  • 问题内容: 我试图将静态库(与gcc一起编译)链接到C 程序,但出现了“未定义引用”。我在ubuntu 12.04服务器计算机上使用了gcc和g 版本4.6.3。例如,这是阶乘方法的简单库文件: mylib.h mylib.c 我使用gcc为此mylib.c创建了对象: 再次使用AR实用工具从目标文件创建了静态库: 我用C程序(test.c)和C ++程序(test.cpp)测试了这个库 C和C

  • 问题内容: 我正在尝试构建一个openssl简单程序。这是完整的代码: 我尝试使用以下命令进行编译: 我得到这个: 我在Ubuntu 10.04下。我怎样才能使它工作? 问题答案: 您可能正在尝试静态链接,但是该选项并正在寻找要动态链接的文件。要静态链接到特定库,只需在所有源文件之后在编译器命令行上指定文件即可。 例如,

  • 在构建netty-tcnate-openssl-stest-2.0.28之后。final-windows-从源x86_64,使用创建的jar文件在运行时导致未解决的依赖项错误: 也许这是由内急引起的。依赖于openssl dll的dll: 你知道为什么这些不会被静态地链接到netty_tcnative吗。动态链接库? 构建是使用Windows 10,x86 x64交叉工具完成的Microsoft

  • 我正在将Code::Blocks IDE(v13.12)与GNU GCC编译器一起使用。 我想使用链接器链接我的程序所需的运行库的静态版本,我可以怎么做 我已经知道我的可执行文件的大小会增加,你能告诉我其他的缺点吗 在Visual C Express中执行此操作怎么样

  • 问题内容: 我正在尝试使用集成使用我的应用程序编写的第三方库。我已经为测试编写了所有的python代码。我很难找到设置此示例的方法。 我有一个手动创建的文件。第三方给了我a和a 。据我所知,没有其他依赖项。有人可以提供使用和进行设置的示例吗? 谢谢 问题答案: 当然可以! (在下文中,我假设你已经知道如何处理之间和交互和,如果这不是完全的情况下,只问我会开发部分以及) 示例(来自我的C ++项目,