在 vscode 上找不到“openssl/crypto.h”文件

2024-03-25

即使我将包含路径添加到 openssl,我也收到以下编译错误。我在 MAC 上使用 vscode。你能告诉我如何修复它吗?

Error

main.cpp:3:10: fatal error: 'openssl/crypto.h' file not found
#include <openssl/crypto.h>
         ^
1 error generated.

main.cpp

#include <iostream>

#include <openssl/crypto.h>

using namespace std;

int main()
{
    cout << "hoge" << endl;
}

.vscode/tasks.json

{
    "version": "0.1.0",
    "command": "g++",
    "isShellCommand": true,
    "args": ["-std=c++14", "-O2", "-l", "boost_system", "-l", "boost_thread", "-o", "test", "-g",
        "main.cpp"
    ],
    "showOutput": "always"
}

.vscode/c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "/usr/include",
                "/usr/local/include",
                "/usr/local/opt/openssl/include"
            ],
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": "",
                "path": [
                    "/usr/include",
                    "/usr/local/include",
                    "/usr/local/opt/openssl/include"
                ]
            }
        }
    ]
}

.vscode/c_cpp_properties.json

$ which openssl
/usr/bin/openssl

$ ls  /usr/local/opt/openssl/include/openssl | grep crypto.h
crypto.h

Update 1

我发现了类似的问题,但仍然没有找到适合我的解决方案。

在 OS X El Capitan 上使用 libssl 编译 C 程序? https://stackoverflow.com/questions/33530865/compiling-c-programs-using-libssl-on-os-x-el-capitan

如何将 OpenSSL 与 GCC 一起使用? https://stackoverflow.com/questions/1894013/how-to-use-openssl-in-gcc

http://qiita.com/marumaru/items/ca801c957986302f6fe6 http://qiita.com/marumaru/items/ca801c957986302f6fe6


Update 2

我尝试使用 g++ 进行编译,但它也不起作用。我的 Mac 是 OS X El Capitan 版本10.11.6

$ g++ main.cpp -L/usr/local/opt/openssl/lib -lssl -lcrypto -o test
main.cpp:3:10: fatal error: 'openssl/crypto.h' file not found
#include <openssl/crypto.h>
         ^
1 error generated.

Update 3

问题解决了。我添加了 -I 和 -L 选项。

g++ main.cpp -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib -lssl -lcrypto -o test

另一个解决方案: 在 Mac 上(但这也应该适用于其他操作系统),我首先更新了 openssl:

brew upgrade openssl

然后设置以下环境变量:

export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"

我通过简单的尝试得到了:

brew info openssl

我仍然需要更新tasks.json,但现在更改有效(clang for c):

{
    "tasks": [
        {
            "type": "shell",
            "label": "clang build active file",
            "command": "/usr/bin/clang",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-I/usr/local/opt/openssl/include",
                "-L/usr/local/opt/openssl/lib",
                "-lssl",
                "-lcrypto"
            ],
            "options": {
                "cwd": "/usr/bin"
            }
        }
    ],
    "version": "2.0.0"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 vscode 上找不到“openssl/crypto.h”文件 的相关文章

  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • 重载<<的返回值

    include
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 对象关系映射

    我需要将复杂数据类型的实例存储到关系数据库中 有没有一种方法可以在不首先建模数据库结构的情况下做到这一点 就像在 ado net 中所做的那样 数据库 或表 结构应从类结构创建 该类具有一些属性 例如整数 字符串或布尔值 但也可以具有更复杂
  • 保持函数参数的保守性

    我正在使用整洁的 fmt 库 该库在其版本 8 中会在编译时检查其格式字符串 如果编译器支持相关功能 在某些时候 我想编写以下代码 throw my exception error 123 可悲的是 天真的实现 struct my exce
  • Spring Security删除用户-会话仍然活动

    我得到了一个带有用户管理的简单的 Spring Security 应用程序 管理员应该能够在数据库上创建 更新 删除用户 通过 hibernate 如果更新了用户 我将重新加载当前登录的用户的身份验证 这是通过以下代码完成的 根据this
  • 如何在groovy SPOCK框架中测试静态java方法?

    我正在尝试使用 Maven 在 SPOCK groovy 框架中测试静态 java 方法 这是java类 public class DataController private DataInterface userService publi
  • 放入drawables文件夹时图像被破坏

    我打算在游戏中使用以下图像 当我使用 添加新图像资源 并将该图像添加为 操作栏和选项卡图标 时 图像的所有黑色部分都替换为白色 因此在画布上绘制图像时 图像看起来像这样 为什么图像被破坏以及如何修复它 我考虑过将图像作为 启动器图标 但这似
  • Java BCrypt 不支持较新的版本(种子前缀为 2b、2y 等)

    我正在使用 jBCrypt Java 中 它无法处理来自 PHP 或 Python 的较新版本的 BCrypt 例外是 无效的盐版本 因为它仅支持 2a 版本 BCrypt 是否有另一个更新的 Java 库 谷歌代码 jbcrypt 工作组
  • 使用 XMLReader 解析媒体 RSS

  • Yeoman 生成器中的“{.tmp,app}”是什么?

    我正在开始使用 Yeoman 工作流程 但我似乎无法完全理解 index html 文件中 usemin 任务的 备用搜索路径 例如 使用 yo angular 命令生成了 2 个块
  • 构建保留策略 - 最大构建数量

    我们有一个每天触发 5 到 10 次的构建定义 我们只想保留最后一个版本 我们如何通过构建保留策略来实现这一目标 该策略仅接受保留的最小数量 而不接受最大数量 在 TFS 之前 Xaml 构建可以配置为仅保留最后的 x 构建 例如 保留最后
  • Titan 顶点中心索引与 Neo4j 标签

    在接近这个问题时 我试图对这两种技术进行比较 我想知道你们中是否有人已经有处理其中任何一种或两种技术的经验 我主要对处理类似用例时的性能数字感兴趣 这两个概念之间的区别是全局索引和本地索引之间的区别 据我了解 Neo4j顶点标签允许您通过顶
  • 进入交互式会话以检查失败的单元测试

    如果单元测试失败 我希望能够进入交互式会话 最好使用 IPython 是否有捷径可寻 edit 我所说的 交互式会话 是指完整的 Python REPL 而不是 pdb shell 编辑编辑 作为进一步的解释 我希望能够启动一个交互式会话
  • Q_DECL_EXPORT关键字含义

    Q DECL EXPORT int main int argc char argv 这是做什么的Q DECL EXPORT before int main means 摘自QT docs https doc qt io qt 5 share
  • 使用 Spring 进行多部分文件上传:NoSuchMethodException: ...CommonsMultipartFile.()

    我正在尝试使用 javascript 上传图像XMLHttpRequest对象 但 Spring 不断抛出NoSuchMethodException 例外情况如下 java lang NoSuchMethodException org sp
  • ThreeJS中InstancedMesh和InterleavedBuffer的区别和使用

    任何人都可以帮助我们解决 Threejs 中 InstancedMesh 和 InterleavedBuffer 之间的区别吗 我对这两个主题都感到困惑 任何人都可以让我知道哪种是渲染大量几何图形的优化方法 提前致谢 实例化渲染和交错缓冲区
  • Restlet用json接收和响应实现post

    首先 我想知道我正在做的事情是否正确 我有一个场景 我将收到一个 json 请求 并且我必须用它来更新数据库 一旦数据库更新 我必须用 json 确认进行响应 到目前为止我所做的是创建类扩展应用程序 如下所示 Override public
  • 在 Ubuntu 20.04 上自动启动 MailHog

    我按照以下步骤在临时环境中安装了 MailHog sudo apt get y install golang go go get github com mailhog MailHog 为了手动启动该服务 我这样做 cd go bin Mai
  • Visual Studio:MSB3073 错误退出,代码为 1

    每个人 我正在 Visual Studio 2013 中编译 DCMTK 3 6 1 我的操作系统是 Windows 8 我还使用了 CMake 3 2 3 我已经为 ALL BUILD 项目成功编译了 x64 版本的调试版本和发布版本 但
  • 如何在基于自定义策略的授权中访问 dbcontext 和会话

    我们是否可以访问 dbcontext 来获取自定义基于策略的授权中的表数据和会话 任何人都可以帮助如何实现它 services AddAuthorization options gt options AddPolicy CheckAutho
  • Objective-C 中省略返回类型和参数类型

    如果未显式声明返回或参数类型 则假定它是方法和消息的默认类型 id 因此 从技术上讲 它是如何工作的 这是毫无疑问的 但是忽略该类型是否是明智的 或者这只是一种不好的做法 苹果有这方面的官方指南吗 这是不好的做法 这是 C 早期的遗留问题
  • 在 vscode 上找不到“openssl/crypto.h”文件

    即使我将包含路径添加到 openssl 我也收到以下编译错误 我在 MAC 上使用 vscode 你能告诉我如何修复它吗 Error main cpp 3 10 fatal error openssl crypto h file not f