【问题标题】:CMake: specifying build toolchainCMake:指定构建工具链
【发布时间】:2011-07-03 04:07:24
【问题描述】:

对 CMake 非常陌生,到目前为止,我发现它非常有帮助。我有一组自定义库,我想使用交叉编译为多个平台构建它们。工具链已安装,我可以手动创建我需要这样做的Makefiles,但我希望能够使用 CMake。

有没有办法告诉cmake 使用哪个工具链,无论是在命令行还是在CMakeLists.txt 文件中?

【问题讨论】:

    标签: makefile build-automation cmake cross-compiling


    【解决方案1】:

    看看here:基本上,你定义了一个“工具链文件”来设置系统名称、编译器路径等。然后你像这样调用cmake

    cmake /path/to/src -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain/foo-bar-baz.cmake
    

    【讨论】:

    • 看起来像我要找的东西;会试一试的。
    • 完美运行,谢谢。当我开始迁移我的源代码树以使用 cmake 而不是我手工制作的 Makefile 时,这将为我省去很多麻烦。
    • 目前我正在建立一个项目,该项目将使用 Emscripten SDK 独家开发。有没有办法在 CMakeLists.txt 文件中指定工具链文件?
    • 与 CMake 的开箱即用选项对应的工具链文件在哪里?
    • 有没有办法配置 cmake 以使用项目配置文件中的特定工具链文件(即,避免每次我需要配置构建时都指定 -DCMAKE_TOOLCHAIN_FILE?)
    【解决方案2】:

    自定义构建设置,这样您就不必每次都指定参数:

    对于 Visual Studio - here

    对于 Vusual Studio 代码:

    如果尚未安装 Cmake Tools 扩展程序,请安装。 在 .vscode/settings.json 文件中设置参数 cmake.configureArgs。您也可以从设置 -> CMake工具配置 -> 添加项目进行设置。我的看起来像这样:

    {
        "cmake.configureArgs": [
            "-DCMAKE_TOOLCHAIN_FILE=C:/Users/.../vcpkg/scripts/buildsystems/vcpkg.cmake"
        ]
    }
    

    【讨论】:

    • 请解释 Visual Studio 的链接 - 它如何回答问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2014-02-17
    • 2018-09-20
    相关资源
    最近更新 更多