在 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”文件 的相关文章

  • Task.Factory.StartNew 或 Parallel.ForEach 对于许多长时间运行的任务? [复制]

    这个问题在这里已经有答案了 可能的重复 Parallel ForEach 与 Task Factory StartNew https stackoverflow com questions 5009181 parallel foreach
  • 获取 TextBox 中的文本行数

    我试图通过标签显示文本框中的文本行数 但是 问题是如果最后一行为空 标签必须显示没有空行的行号 例如 如果它们有 5 行 最后一行为空 则标签应将行数显示为 4 Thanks private void txt CurrentVinFilte
  • 读取大文件并制作字典

    我有一个大文件 我需要读取它并从中制作字典 我希望这一切能够尽可能快 然而我的Python代码太慢了 这是一个显示问题的最小示例 首先制作一些假数据 paste lt seq 20000000 lt seq 2 20000001 gt la
  • 是否有可能将 *.pdb 文件包含到发布版本中以查看错误行号?

    我做了一个项目 所有设置都是默认的 当我在调试模式 构建配置 调试 下运行它并遇到异常时 它转储到我的自定义日志记录机制 其中包含错误行号 但是当我运行发布构建时 记录相同的异常 没有行号 只有方法抛出和记录调用堆栈 是否有可能在发布配置
  • 当 foreach 块的内容具有 Conditional 属性时,C# 编译器是否会对其进行优化?

    我正在工作中编写一些调试代码 我想知道我所做的是否会损害性能 让我们看一下代码 foreach var item in aCollection Debug WriteLine item Name 我知道 Debug 类使用 Conditio
  • std::bind2nd 和 std::bind 与二维数组和结构数组

    我知道 C 有 lambda 并且 std bind1st std bind2nd 和 std bind 已弃用 然而 从C 的基础开始 我们可以更好地理解新特性 所以 我从这个非常简单的代码开始 使用int 数组s 第一个例子 与std
  • 静态 OpenCV 库中未定义的引用

    我有一个使用 OpenCV 3 1 的 C 项目 并且使用共享库可以正常工作 但现在我想使用静态库 位于项目目录中的文件夹中 来编译它 因为我希望能够在未安装 OpenCV 的情况下导出它 如果需要还可以编辑和重新编译 这次我重新编译了 O
  • 如何部署包含第三方 DLL 文件的 C# 应用程序?

    首先 我对部署了解不多 我希望我的问题有意义 我需要将 C 应用程序安装 部署到多个桌面 它需要一个第三方 DLL 文件 一个 C 库 lpsolve55 dll 对于那些感兴趣的人 它是一个免费的 MIP LP 求解器 请参阅 lpsol
  • 如何在 ASP.NET Core 6.0 Web API 项目中启用 cors?

    在我的 ASP NET Core 6 0 Web API 项目中配置了 CORS 但预检请求收到 http 405 错误 换句话说 不允许使用 HTTP OPTION 看起来 cors 没有启用 我见过的例子config EnableCor
  • 如何从 C# 调用 F# 类型扩展(静态成员函数)

    FSharp 代码的结构如下 我无法控制源代码 namespace FS
  • 防止集成终端自动打开

    每当我在 VS Code 中打开 PowerShell 脚本时 集成终端就会打开 如何防止集成终端自动打开 我搜索了 终端 的设置 但没有发现与自动启动相关的内容 VSCode 会记住您的上一次会话 因此 如果关闭终端并退出 VSCode
  • 多个线程访问一个变量

    我在正在读的一本教科书中发现了这个问题 下面也给出了解决方案 我无法理解最小值怎么可能是 2 为什么一个线程不能读取 0 而所有其他线程都执行并写入 1 而无论是1还是2 最后写入的线程仍然必须完成自己的循环 int n 0 int mai
  • 从二进制文件读取字节到 long int

    我有两个问题 我有二进制文件的数据 我想使用 read 函数读取前 8 个字节以签署 long int 但我不能 你知道我该怎么做吗 如何直接读取一块数据到字符串中 我可以像所示那样阅读吗 前任 ifstream is is open te
  • 主构造函数不再在 VS2015 中编译

    直到今天 我可以使用主构造函数 例如 public class Test string text private string mText text 为了能够做到这一点 在以前的 Visual Studio CTP 中 我必须将其添加到 c
  • 原子的 C++ 内存屏障

    在这方面我是个新手 谁能提供以下内存屏障之间差异的简化解释 窗户MemoryBarrier 围栏 mm mfence 内联汇编asm volatile memory 内在的 ReadWriteBarrier 如果没有简单的解释 一些好文章或
  • XCode std::thread C++

    对于学校的一个小项目 我需要创建一个简单的客户端 服务器结构 它将在路由器上运行 使用 openWRT 并且我试图在这个应用程序中使用线程做一些事情 我的 C 技能非常有限 所以我在internet https stackoverflow
  • 模板定义中的友元函数

    我的问题有点相关this https stackoverflow com questions 1297609 overloading friend operator for template class one 我想重载某些类的运算符 te
  • 动态菜单创建IoC

    我想知道是否有人知道我如何创建如何使用 AutoFac 之类的东西来让我动态地允许 dll 创建自己的表单和菜单项以在运行时调用它们 所以如果我有一个 员工 dll 新入门表格 证书表格 供应商 dll 供应商详细信息来自 产品形态 在我的
  • 是否可以检测流是否已被客户端关闭?

    简要介绍一下情况 我有一项服务可以通过套接字接收信息并发送回复 连接不安全 我想设置另一个可以为这些连接提供 TLS 的服务 这个新服务将提供单个端口并根据提供的客户端证书分发连接 我不想使用 stunnel 有几个原因 其中之一是每个接收
  • execlp() 系统调用输出错误

    这个非常简单的例子exec 系统调用 在这里 我试图打电话execlp 两次 但是 我没有得到例外的输出 它仅显示当前目录的第一次调用的输出 include

随机推荐

  • 对象关系映射

    我需要将复杂数据类型的实例存储到关系数据库中 有没有一种方法可以在不首先建模数据库结构的情况下做到这一点 就像在 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