如何从GitHub下载并使用openssl库?

问题描述 投票:0回答:2

我正在编写一个 C++ 程序,我需要在某个时刻找到文件的 sha512 哈希值,所以我正在考虑使用来自 https://github.com/openssl/openssl/tree/master/include 的 openssl 库/openssl。我已经下载了整个 openssl 存储库,但我想我只需要 include/openssl 文件夹,所以我删除了其余部分。现在我不知道如何告诉我的编译器在 openssl 文件夹中查找 sha.h。我尝试的一种方法是转到我的代码块设置>编译器>链接器设置,然后添加 openssl 文件夹中存在的所有文件,然后编写

include <openssl/sha.h>
但它不起作用,尽管我收到了建议 ,正如您在此处看到的图像。当我点击构建并运行时,出现错误 E:\CodeBlocks\C++ est\main.cpp|2|致命错误:openssl/sha.h:没有这样的文件或目录|。我是使用第三方库的新手,从来没有这样做过。

c++ openssl codeblocks
2个回答
0
投票

问题不在于 OpenSSL,而在于您缺乏如何使用 CodeBlocks 告诉编译器您的库在哪里的知识。

Adding include path in Code::Blocks

在 Code::Blocks 20.3 (Linux) 中,您需要

  1. 从主菜单中选择
    Project
  2. 选择
    Project/targets options
  3. 在弹出对话框中选择
    Project build options
  4. 选择
    Search directories
    选项卡
  5. 选择
    Compiler
    选项卡
  6. Add
    按钮
  7. 导航到包含库头文件的目录;您可以选择“将其保留为相对路径”,建议在不同计算机上开发的项目中

请记住,您向编译器显示了必须查找标头的附加(默认路径)路径,而不是单个标头文件本身。


0
投票

我已经下载了整个 openssl 存储库,但我想我只需要 include/openssl 文件夹,所以我删除了其余的。

Nooooo 你为什么要这样做 =)))))🤦🤦🤦 你从 github 克隆的存储库具有分布在文件夹之间的类,这些类相互依赖才能工作。我知道,它有点臃肿,因为它只是一个示例,而不是您想要的严肃项目。我的意思是,你可以到处挑选一些课程,但这需要大量的努力和时间以及一定程度的理解才能实现这一目标。

如果可以的话,为什么不采取更简单的方法呢?在

Windows
(以及许多其他操作系统)上,这个官方 OpenSSL 文档中列出了可用的预编译二进制文件。下载它,让它运行,将
include
文件夹包含在
Compiler
搜索目录 列表中(设置 > 全局编译器设置 > 搜索目录 > 编译器),将必要的库插入到 链接器设置 (设置 > 全局编译器设置 > 链接器设置),它跑得像一匹马。

您正在使用

Linux
吗?甚至更好。发行版应该已经提供了 OpenSSL。或者只是运行
sudo apt install openssl
或类似的东西,具体取决于您的操作系统,该库就在那里供您使用。

我知道这篇文章已经有两年了,但也许我的回答仍然可以帮助别人。因为我知道无法找到任何可靠答案/只能从那些似乎希望您知道一切的人那里找到非常模糊的答案的感觉。

© www.soinside.com 2019 - 2024. All rights reserved.