将 VCPKG 与 cmake 和 Qt 6 一起用于 Windows ARM64
Using VCPKG with cmake and Qt 6 for Windows ARM64
Qt 6.2 在 Arm 支持上引入了 Windows(https://bugreports.qt.io/browse/QTBUG-85820). I tried to create a new cmake project set up using Qt Creator and everything works fine. Then I wanted to add some external packages to my project using vcpkg. The standard way to use vcpkg with cmake is using the CMAKE_TOOLCHAIN_FILE variable (as mentioned here。但是,当我在 Qt Creator(项目 > 构建)中单击项目设置时,Qt Creator 似乎已经设置了 CMAKE_TOOLCHAIN_FILE 变量到另一个文件
据推测,这样做是为了可以 cross-compile 来自 x64 机器的 ARM64 二进制文件。但是,这会阻止我在我的 Qt 项目中设置 vcpkg。有没有办法解决这个问题? CMake 是否支持多个工具链文件或是否有适合我的方案的替代设置?
我发现 VCPKG 提供了一种实现此目的的方法,如解释的那样 here:
To use an external toolchain file with a project using vcpkg, you can set the cmake variable VCPKG_CHAINLOAD_TOOLCHAIN_FILE on the configure line:
cmake ../my/project \
-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake \ -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=../my/project/compiler-settings-toolchain.cmake
所以在我的例子中,我可以使用 VCPKG_CHAINLOAD_TOOLCHAIN_FILE 选项只 qt 工具链文件。
Qt 6.2 在 Arm 支持上引入了 Windows(https://bugreports.qt.io/browse/QTBUG-85820). I tried to create a new cmake project set up using Qt Creator and everything works fine. Then I wanted to add some external packages to my project using vcpkg. The standard way to use vcpkg with cmake is using the CMAKE_TOOLCHAIN_FILE variable (as mentioned here。但是,当我在 Qt Creator(项目 > 构建)中单击项目设置时,Qt Creator 似乎已经设置了 CMAKE_TOOLCHAIN_FILE 变量到另一个文件
据推测,这样做是为了可以 cross-compile 来自 x64 机器的 ARM64 二进制文件。但是,这会阻止我在我的 Qt 项目中设置 vcpkg。有没有办法解决这个问题? CMake 是否支持多个工具链文件或是否有适合我的方案的替代设置?
我发现 VCPKG 提供了一种实现此目的的方法,如解释的那样 here:
To use an external toolchain file with a project using vcpkg, you can set the cmake variable VCPKG_CHAINLOAD_TOOLCHAIN_FILE on the configure line:
cmake ../my/project \
-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake \ -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=../my/project/compiler-settings-toolchain.cmake
所以在我的例子中,我可以使用 VCPKG_CHAINLOAD_TOOLCHAIN_FILE 选项只 qt 工具链文件。