Linux与shell和cmake等一起带来意想不到的事情
我在cd命令和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命令不能处理包含“-”减号的路径。(除非由选项卡扩展使用,该扩展不需要,因为路径将由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
对于比这更糟糕的字节内容,“/”正在完全消失!如果字符串以“/后缀”开头,我会说您的字符串中有回车符。。。