【问题标题】:Making Symbolic links in Windows OS for CMake在 Windows 操作系统中为 CMake 创建符号链接
【发布时间】:2018-10-04 17:28:00
【问题描述】:

我为我的工具链路径创建了指向文件的软符号链接。在 CMake 文件中,我有命令 CMAKE_FORCE_C_COMPILER,它必须采用我的 c 编译器 arm-none-eabi-gcc.exe 的路径。但是当新的更新到来时,这个编译器的路径总是在变化。因此,我创建了符号链接“C:/Program Files (x86)/GNU Tools ARM Embedded/gcc-compiler”而不是路径“C:/Program Files (x86)/GNU Tools ARM Embedded/6 2017-q2-update/bin” /bin", 指向以前的文件。但是现在的问题是符号链接,它不会找到 "arm-none-eabi-gcc.exe" 编译器。

所以这段代码可以在没有符号链接和编译器直接路径的情况下工作。

但是使用符号链接,它不起作用,在构建控制台中它说:“arm-none-eabi-gcc.exe 不是这样的文件或目录”

set(ARM_TOOLCHAIN_DIR "C:/Program Files (x86)/GNU Tools ARM Embedded/gcc-compiler/bin")
set(ARM_TOOLCHAIN_SUFFIX ".exe")
MAKE_FORCE_C_COMPILER("${ARM_TOOLCAHIN_DIR}/arm-none-eabi-gcc${ARM_TOOLCAHIN_SUFFIX}" GNU)

【问题讨论】:

    标签: cmake symlink


    【解决方案1】:

    在 Windows 中创建符号链接时,它指向编译器 arm-none-eabi-gcc.exe 所在的文件。在您的情况下,您做了符号链接直接指向完整路径“C:/Program Files (x86)/GNU Tools ARM Embedded/6 2017-q2-update/bin”中的文件“/bin”。 当命令 CMAKE_FORCE_C_COMPILER 将带有符号链接的路径作为参数时,Windows 将找不到完整路径。

    解决方案是让符号链接只指向前一个文件,而不是最后的文件! NOT 也要让符号链接指向您的 *.exe 文件所在的最终文件。 Windows 将无法识别您的路径。

    所以不要让它指向“/b​​in”,而是指向“C:/Program Files (x86)/GNU Tools ARM Embedded/6 2017-q2-update/”。

    在你的情况下,使用 Windows Cmd 命令行并输入:

    mklink /D "C:/Program Files (x86)/GNU Tools ARM Embedded/gcc-arm-none-eabi/"  "C:/Program Files (x86)/GNU Tools ARM Embedded/6 2017-q2-update"
    

    现在在您的 CMake 文件中,您可以使用 C 编译器的路径:

    set(ARM_TOOLCHAIN_DIR "C:/Program Files (x86)/GNU Tools ARM Embedded/gcc-compiler/bin")
    MAKE_FORCE_C_COMPILER("${ARM_TOOLCAHIN_DIR}/arm-none-eabi gcc.exe GNU)
    

    【讨论】:

      猜你喜欢
      • 2014-01-10
      • 1970-01-01
      • 2017-08-26
      • 2019-12-07
      • 2017-09-10
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 2010-09-16
      相关资源
      最近更新 更多