我按照 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 完全陌生。如果我需要提供更多信息,请询问。
提前非常感谢您
我发现问题了。结果 Ubuntu 没有安装最新版本的
liburing
。我重新安装了它,但没有用,它仍然安装了旧版本。所以我必须删除 liburing,克隆 liburing git 存储库,构建它,然后使用 sudo make install 安装它。开什么玩笑啊。
但是在我构建了库之后,我的内存不足了。我在 .wslconfig 文件中为 WSL 提供了 14 GB 内存,但这也不起作用。因此,我使用 -j 1 运行脚本来限制进程数量,最终成功了。