Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux与shell和cmake等一起带来意想不到的事情_Linux_Bash_Shell_Ubuntu_Cmake - Fatal编程技术网

Linux与shell和cmake等一起带来意想不到的事情

Linux与shell和cmake等一起带来意想不到的事情,linux,bash,shell,ubuntu,cmake,Linux,Bash,Shell,Ubuntu,Cmake,我在cd命令和cmake方面遇到了一个奇怪的问题 cd命令不能处理包含“-”减号的路径。(除非由选项卡扩展使用,该扩展不需要,因为路径将由ENV变量提供) cmake问题 导出此变量的$SOME\u VAR=SOME\u值 现在在cmake中使用它作为 set(SOME_OTHER_VAR“$ENV{SOME_VAR}/后缀”) 上面给出的输出应为SOME_OTHER_VAR=SOME_value_for_this_变量/后缀,但相反,它从开始替换env变量,并给出输出为SOME_OTHER

我在cd命令和cmake方面遇到了一个奇怪的问题

  • cd命令不能处理包含“-”减号的路径。(除非由选项卡扩展使用,该扩展不需要,因为路径将由ENV变量提供)

  • cmake问题

导出此变量的$SOME\u VAR=SOME\u值

现在在cmake中使用它作为
set(SOME_OTHER_VAR“$ENV{SOME_VAR}/后缀”)

上面给出的输出应为
SOME_OTHER_VAR=SOME_value_for_this_变量/后缀
,但相反,它从开始替换env变量,并给出输出为
SOME_OTHER_VAR=SUFFIXalue_for_该_变量
意味着从开始用后缀替换某些_v,这是不期望的


请帮助我,因为我不知道发生了什么。

您遇到了某种字符集问题。有两个不同的减号。连字符-(ASCII 45,U+002D)和实数减号− (U+2212)。文件名本身可能带有非ASCII减号,这是键盘无法轻松键入的。最简单的修复方法是将文件重命名为普通连字符。否则,您必须说服CMake理解您的Unicode文件名。我不知道这是容易还是难

我认为你的第二个问题也是类似的。环境变量可能是其中的一个或多个非打印字符,弄乱了CMake变量,或者至少弄乱了显示。尝试以下操作:在Linux命令提示符下,检查字符串的实际内容

echo $SOME_VAR | od -t c
用于所有内容的ASCII表示,和/或

echo $SOME_VAR | od -t d1

对于比这更糟糕的字节内容,“/”正在完全消失!如果字符串以“/后缀”开头,我会说您的字符串中有回车符。。。