gpt4 book ai didi

linux - 如何将 vcpkg 与交叉构建工具链以及 sysroot 集成到 linux 中?

转载 作者:行者123 更新时间:2023-12-04 01:38:01 65 4
gpt4 key购买 nike

我的问题是,如何将 vcpkg 与交叉构建工具链以及 sysroot 集成到 linux 中?
例子:

  • 建机是fedora30
  • 交叉构建工具链是 x86_64-centos7-gnu

  • 来自 https://github.com/microsoft/vcpkg快速入门 说:

    > git clone https://github.com/Microsoft/vcpkg.git
    > cd vcpkg

    PS> .\bootstrap-vcpkg.bat
    Linux:~/$ ./bootstrap-vcpkg.sh

    在我的机器上,我安装了 gcc 9.1,它被 vcpkg 检测到的 bootstrap.sh 并且工作正常;

    同时,我构建了一个用于交叉构建的工具链,它位于 $HOME/cross/x64_86-centos7-linux-gnu/
    如何设置另一个 vcpkg使用特定工具链的目录树?

    通过“使用”,我的意思是 vcpkg 及其所有包都应该由该工具链编译,而我使用 vcpkg 工具链文件“$vcpkg_home/scripts/buildsystems/vcpkg.cmake”的项目都应该将该工具链作为 $CC 并构建工具集?

    最佳答案

    你应该写一个 triplet file引用您所需的工具链。创建文件 ${VCPKG_ROOT}/triplets/x64-centos7有内容

    set(VCPKG_TARGET_ARCHITECTURE x64)
    set(VCPKG_CRT_LINKAGE dynamic)
    set(VCPKG_LIBRARY_LINKAGE static)

    set(VCPKG_CMAKE_SYSTEM_NAME Linux)

    set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE /your/cmake/toolchain.cmake)
    /your/cmake/toolchain.cmake蜜蜂 CMake toolchain喜欢
    set(CMAKE_SYSTEM_NAME Linux)
    set(CMAKE_SYSTEM_PROCESSOR x64)

    set(CMAKE_SYSROOT /your/sysroot)

    set(tools $HOME/cross/x64_86-centos7-linux-gnu/)
    set(CMAKE_C_COMPILER ${tools}/bin/your-gcc)
    set(CMAKE_CXX_COMPILER ${tools}/bin/your-g++)

    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
    set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

    关于linux - 如何将 vcpkg 与交叉构建工具链以及 sysroot 集成到 linux 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58777810/

    65 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com