当我在 CLion 2020.3 上使用远程工具链时,cmake 无法解析本地路径

Posted

技术标签:

【中文标题】当我在 CLion 2020.3 上使用远程工具链时,cmake 无法解析本地路径【英文标题】:cmake cannot resolve local path when I using remote toolchain on CLion 2020.3 【发布时间】:2021-04-13 08:40:23 【问题描述】:
/usr/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=/usr/bin/make -DCMAKE_C_COMPILER=/usr/lib/llvm/11/bin/clang -DCMAKE_CXX_COMPILER=/usr/lib/llvm/11/bin/clang++ -G "CodeBlocks - Unix Makefiles" /home/a_user_name/CLion_Programmes/VM_D
-- Configuring done
-- Generating done
-- Build files have been written to: /home/a_user_name/CLion_Programmes/VM_D/cmake-build-debug
Cannot resolve path: D:\MyProgrammes\CL\VM_D\cmake-build-debug
[Failed to reload]

客户端:Windows 10 20H2 主机:Hyper-V 上的 Gentoo Linux 通过 openssh 连接 当我设置我的环境时,我使用了这个:https://www.jetbrains.com/help/clion/remote-projects-support.html\ 感谢您的帮助:)

【问题讨论】:

远程主机 RHEL 7 也有同样的问题 【参考方案1】:

服务器上的 tar 文件创建似乎有问题。 FileTransfer 窗口中是否有任何错误消息?你能检查一下 tar 文件是否是在你的 /tmp 文件夹中创建的吗?

我正在使用https://youtrack.jetbrains.com/issue/CPP-17421#focus=Comments-27-4040675.0-0 中描述的 tar 包装器,但它不适用于当前版本,因此没有创建导致该错误消息的 tar 文件。

我按如下方式修复了 tar 包装器:

#!/bin/bash

# Uncomment this line to get details about files beeing transfered
#TAR_LOGFILE=~/.clion_tar_calls.txt

redirect_cmd() 
    if [[ ! -z $TAR_LOGFILE ]]; then
        echo "Executing tar: $@" >> $TAR_LOGFILE
        "$@" >> $TAR_LOGFILE
    else
        "$@" > /dev/null
    fi


if [[ ! -z $TAR_LOGFILE ]]; then
    echo "`date` Called tar at $PWD with parameters: $@" >> $TAR_LOGFILE
    if [[ "$*" == *--files-from* ]]; then
        files=$(echo "$@" | sed 's/.*--files-from=\([^[:space:]]*\).*/\1/')
        cat $files >> $TAR_LOGFILE
    fi
fi

if [[ $PWD =~ cmake-build- ]]; then
    excludes=('--exclude=*.o' '--exclude=*.gcno' '--exclude=*.gcda' '--exclude=*.a' '--exclude=bin' '--exclude=lib')

    first="$1"
    shift
    file="$1"
    shift
    redirect_cmd exec /bin/tar "$first" "$file" "$excludes[@]" "$@" --verbose
else
    exec /bin/tar "$@"
fi

【讨论】:

我也认为这是一个与焦油有关的问题。 Help -> Find Action -> Show Remote Hosts Info 中有一个“[FAILED] tar”行

以上是关于当我在 CLion 2020.3 上使用远程工具链时,cmake 无法解析本地路径的主要内容,如果未能解决你的问题,请参考以下文章

在 windows 上使用 clion 调试 rust 代码

使用gdbserver从clion调试jni库

在使用自定义工具链时包括用于 CLion 检查的目录

在使用自定义工具链时包括CLion检查的目录

如何在 Clion 中使用虚拟环境从 C++ 调用 Python?

CMake File API“找不到回复目录”