在 Ubuntu 22.04.4、WSL 上构建 Proxygen(网络库)时出错

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

我按照 Proxygen 的 github 存储库 上的说明来构建和安装它。他们说只需在 proxygen 目录中运行 ./build.sh 即可。一旦 proxygen 构建完毕,我就会收到错误,全部显示“

undefined reference to folly::AsyncIoUringSocket
”。
liburing
图书馆出了点问题。

当我第一次尝试构建 proxygen 时,我遇到了与

proxygen
liburing
中不存在的函数调用相关的编译器错误。
proxygen
显然使用了与安装版本不同的
liburing
版本,因此我删除并重新安装了
liburing-dev
软件包,重新运行
./build.sh
,并且这些错误得到了修复。但现在我遇到了上述链接错误。

在构建时,如果有任何意义,就会出现此警告: "传递给

find_package_handle_standard_args (LIBURING)
的包名 与调用包 (LibUring) 的名称不匹配。”但是我对所有其他依赖项都收到相同类型的 CMake 警告,并且这些都构建得很好。

我使用的是 Windows 10,使用 WSL 和 Ubuntu 22.04.4。我有海湾合作委员会 11.4。他们只在 Ubuntu 18.04 上测试了 proxygen,但表示“它应该可以在许多其他平台上运行”。我尝试使用 vcpkg 和 linuxbrew 安装 proxygen,但两次都出现构建错误。请怜悯,我一生都在使用 Windows 和 Visual Studio,并且对 CMake 工具和 Linux 完全陌生。如果我需要提供更多信息,请询问。

提前非常感谢您

c++ ubuntu windows-subsystem-for-linux io-uring proxygen
1个回答
0
投票

我发现问题了。结果 Ubuntu 没有安装最新版本的

liburing
。我重新安装了它,但没有用,它仍然安装了旧版本。所以我必须删除 liburing,克隆 liburing git 存储库,构建它,然后使用 sudo make install 安装它。开什么玩笑啊。

但是在我构建了库之后,我的内存不足了。我在 .wslconfig 文件中为 WSL 提供了 14 GB 内存,但这也不起作用。因此,我使用 -j 1 运行脚本来限制进程数量,最终成功了。

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