首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >WeChatFerry 编译失败原因

WeChatFerry 编译失败原因

作者头像
查克
发布2025-01-01 09:51:50
发布2025-01-01 09:51:50
27700
代码可运行
举报
文章被收录于专栏:碲矿碲矿
运行总次数:0
代码可运行

好早的时候,有群友反馈编译失败。

前几次,我还会说一下,不是开发人员别折腾。

后来就佛了,当没看见。

有一次有群友说编译失败,还发了截图,我印象中是类似 'magic_enum.hpp': No such file or directory

我也没在意,忽略了。

前阵子有群友提 PR 实现了 3.9.11.25。我合并完后发现 Github Action 没办法自动编译发布了。

一度以为是改脚本的原因,来来回回又改了几次,仍旧不能解决。

直到后面回滚曾经好用的脚本,也没法编译,方开始认真看编译错误。

(先入为主要不得啊!)

其实看了一下,错误也挺简单的:

代码语言:javascript
代码运行次数:0
运行
复制
D:\a\WeChatFerry\WeChatFerry\WeChatFerry\spy\rpc_server.cpp(14,10): fatal error C1083: Cannot open include file: 'magic_enum.hpp': No such file or directory [D:\a\WeChatFerry\WeChatFerry\WeChatFerry\spy\spy.vcxproj]

这科学呀,我开发机上可以编译;Github Action 不能编译,那肯定是 Github Action 的问题呗。

于是 Github Action 被我改来改去,但仍旧不好用。

前两天穆老师送我了一台 4C8G12M 的机器,我装了 Windows Server 2022。

正好搭建一下编译环境。

妈呀,没把我累死。

首先项目拉不下来。

行吧,我还有台 Japan 的机器,借个道吧。

谁知,同是腾讯云,借个道更慢了。不过好歹能下载。

……

等了半天,终于把环境搭建好了。

编译一把试一下,咦,跟上面一样的错误。

不科学啊,我开发机上是好使的呀。行,我把开发机的环境也重置一下。

结果,开发机也编译不过去。

好吧,我再研究一下编译日志:

代码语言:javascript
代码运行次数:0
运行
复制
The following packages will be built and installed:
    * abseil:x64-windows-static@20240722.0
    * abseil:x64-windows@20240722.0
    * fmt:x64-windows-static@11.0.2#1
      magic-enum:x64-windows-static@0.9.7
      minhook:x64-windows-static@1.3.3#4
      nng:x64-windows-static@1.9.0
    * protobuf:x64-windows@5.28.3
      protobuf[core,zlib]:x64-windows-static@5.28.3
      spdlog:x64-windows-static@1.15.0#1
    * utf8-range:x64-windows-static@5.26.1
    * utf8-range:x64-windows@5.26.1
    * vcpkg-cmake:x64-windows@2024-04-23
    * vcpkg-cmake-config:x64-windows@2024-05-23
    * zlib:x64-windows-static@1.3.1
  Additional packages (*) will be modified to complete this operation.
  Restored 14 package(s) from C:\Users\runneradmin\AppData\Local\vcpkg\archives in 10 s. Use --debug to see more details.
  Installing 1/14 vcpkg-cmake-config:x64-windows@2024-05-23...
  ......
  magic-enum provides CMake targets:

      find_package(magic_enum CONFIG REQUIRED)
      target_link_libraries(main PRIVATE magic_enum::magic_enum)

很显然,依赖肯定是装上了的。为啥不行呢?

看看代码:

代码语言:javascript
代码运行次数:0
运行
复制
#include <magic_enum.hpp>
#include <nng/nng.h>
#include <nng/protocol/pair1/pair.h>
#include <nng/supplemental/util/platform.h>

没问题呀,一直这么写的。

看看路径:

代码语言:javascript
代码运行次数:0
运行
复制
Administrator@* MINGW64 /c/Projs/WeChatFerry/WeChatFerry/vcpkg_installed/x64-windows-static/x64-windows-static/include (master)
$ ls -al
total 156
drwxr-xr-x 1 Administrator 197121     0 Dec 30 15:53 ./
drwxr-xr-x 1 Administrator 197121     0 Dec 30 15:51 ../
-rw-r--r-- 2 Administrator 197121  7503 Jan  7  2017 MinHook.h
drwxr-xr-x 1 Administrator 197121     0 Dec 30 15:24 absl/
drwxr-xr-x 1 Administrator 197121     0 Dec 30 15:52 fmt/
drwxr-xr-x 1 Administrator 197121     0 Dec 30 15:51 google/
drwxr-xr-x 1 Administrator 197121     0 Dec 30 15:20 magic_enum/
drwxr-xr-x 1 Administrator 197121     0 Dec 30 15:21 nng/
drwxr-xr-x 1 Administrator 197121     0 Dec 30 15:53 spdlog/
drwxr-xr-x 1 Administrator 197121     0 Dec 30 15:51 upb/
drwxr-xr-x 1 Administrator 197121     0 Dec 30 15:51 upb_generator/
-rw-r--r-- 2 Administrator 197121   540 Dec  4 03:41 utf8_range.h
-rw-r--r-- 2 Administrator 197121   712 Dec  4 03:41 utf8_validity.h
-rw-r--r-- 2 Administrator 197121 17342 Dec 30 15:21 zconf.h
-rw-r--r-- 2 Administrator 197121 96829 Jan 23  2024 zlib.h

嗐,怎么会多一层的呢?

行吧,我改一下代码。

另外,再跟问过这问题的群友道个歉吧。

不过啊,你要真是个开发人员,这问题也是很好解决的嘛……

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 碲矿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档