You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 11下Phoenix应用编译ssl_verify_fun失败求解决

Windows 11下Phoenix应用编译依赖错误修复方案

问题背景

在Windows 11系统中运行Phoenix应用时,因依赖错误无法完成编译。

已尝试操作

  1. 下载适配OTP 26的Erlang和Elixir 1.15.4,执行mix phx.server时触发错误:
$ mix deps.compile ssl_verify_fun
==> ssl_verify_fun
Compiling 7 files (.erl)
src/ssl_verify_hostname.erl:16: can't find include lib "public_key/include/public_key.hrl"
  1. 参考Ubuntu环境的同类问题,得知Linux下可通过安装erlang-dev包解决,但Windows无对应选项。
  2. 卸载原有Erlang和Elixir,改用Scoop安装旧版本:
elixir 1.15.4   main   2023-07-27 10:27:04
erlang 25.3.2.4 main   2023-07-27 10:10:31

错误详情

问题仍未解决,编译时出现大量关联错误,核心原因均为无法找到public_key/include/public_key.hrl头文件,导致证书相关的记录、宏未定义:

==> ssl_verify_fun
Compiling 7 files (.erl)
src/ssl_verify_fingerprint.erl:15:14: can't find include lib "public_key/include/public_key.hrl"
%   15| -include_lib("public_key/include/public_key.hrl").
%     |              ^

src/ssl_verify_pk.erl:14:14: can't find include lib "public_key/include/public_key.hrl"
%   14| -include_lib("public_key/include/public_key.hrl").
%     |              ^

# 其余关联错误省略,均源于上述头文件缺失

修复方法

1. 更换完整Erlang安装包

确保安装的是完整Erlang/OTP开发包,而非精简运行时版本。官网下载Windows安装包时,选择带开发组件的完整版,精简版通常会缺失public_key相关头文件。

2. 校验环境变量配置

  • 设置ERLANG_HOME环境变量指向Erlang安装根目录,例如C:\Program Files\Erlang OTP\25.3.2.4
  • 将%ERLANG_HOME%\bin添加到系统PATH,确保命令行能识别erl、rebar3等工具

3. 手动指定编译路径

在项目根目录执行以下命令,强制指定public_key的头文件路径进行编译(替换public_key-1.12.1为你安装目录下实际的版本号,可在%ERLANG_HOME%\lib下查看):

mix deps.compile ssl_verify_fun --force --erl-opts "-I \"%ERLANG_HOME%\lib\public_key-1.12.1\include\""

4. 调整依赖版本

尝试锁定ssl_verify_fun为Windows兼容性较好的版本,修改项目mix.exs中的依赖项:

defp deps do
  [
    # 其他依赖保留
    {:ssl_verify_fun, "~> 1.1.6", override: true}
  ]
end

随后执行:

mix deps.get
mix deps.compile --force

5. 切换到WSL2环境

若上述方法无效,推荐使用Windows Subsystem for Linux 2(WSL2):

  • 启用WSL2并安装Ubuntu发行版
  • 在WSL2中执行sudo apt update && sudo apt install erlang-dev elixir
  • 将项目复制到WSL2环境,执行mix deps.get和mix phx.server

内容的提问来源于stack exchange,提问作者Flame_Phoenix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 20:15:44