目前,我正在进行一项通过Bazel支持Qt6的实验。我的代码可以在这里找到。
在安装了 Bazel 和 GCC9 的 Linux 上,您可以通过以下方式测试我的 Qt6 Bazel 规则:
git clone https://github.com/Vertexwahn/rules_qt6
cd rules_qt6
bazel run --config=gcc9 //:Qt6HelloWorld # run Qt6HelloWorld binary
尝试运行Qt6HelloWorld
时报告此错误:
/home/user/.cache/bazel/_bazel_$USER/196a14423fc09522ef7bd657344d1cd0/execroot/Qt6Testbed/bazel- out/k8-fastbuild/bin/Qt6HelloWorld:
error while loading shared libraries: libQt6Network.so.6: cannot open shared object file: No such file or directory
在 Qt6.1.0 中似乎有一个libQt6Network.so
,libQt6Network.so.6
和。libQt6Network.so.6.1.0
如果我将这些文件复制到bazel-out/k8-fastbuild/bin
(Qt6HelloWorld
二进制文件所在的位置),我仍然会收到此错误。
有关如何解决此错误的任何想法?关于如何扩展规则以复制那些必需的库以使 Bazel 满意的任何想法?