Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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
C++ 在windows上的ubuntu中执行.sh文件_C++_Bash_Shell_Ubuntu_Windows Subsystem For Linux - Fatal编程技术网

C++ 在windows上的ubuntu中执行.sh文件

C++ 在windows上的ubuntu中执行.sh文件,c++,bash,shell,ubuntu,windows-subsystem-for-linux,C++,Bash,Shell,Ubuntu,Windows Subsystem For Linux,我已经创建了一个文件1.sh,作为 c++-c文件1.cpp c++文件1.o-o文件1 我试着在windows上的bash Ubuntu上执行它。它告诉我 :没有这样的文件或目录 c++:致命错误:没有输入文件 编译终止 然而,如果我执行 c++-c文件1.cpp c++文件1.o-o文件1 直接,文件file1.cpp可以正常编译 我的问题是,.sh文件不起作用的原因是什么?如何修复它?实际上,我想以注释的形式写这篇文章,但没有可用的格式。当这个答案变得过时时,我将删除它 我刚刚在cygwi

我已经创建了一个文件1.sh,作为

c++-c文件1.cpp

c++文件1.o-o文件1

我试着在windows上的bash Ubuntu上执行它。它告诉我

:没有这样的文件或目录

c++:致命错误:没有输入文件

编译终止

然而,如果我执行

c++-c文件1.cpp

c++文件1.o-o文件1

直接,文件file1.cpp可以正常编译


我的问题是,.sh文件不起作用的原因是什么?如何修复它?

实际上,我想以注释的形式写这篇文章,但没有可用的格式。当这个答案变得过时时,我将删除它

我刚刚在cygwin的bash上用g++尝试了这一点:

$ g++ -c nothing.cc
g++: error: nothing.cc: No such file or directory
g++: fatal error: no input files
compilation terminated.

$
当然,在我当前的工作目录中没有文件nothing.cc

<> P>这样,可能是我猜C++在错误的工作目录中运行,从shell脚本开始时可能是合理的…… 正如我已经建议的那样:插入一个

echo "$PWD"
当然,在shell脚本的开头

更新:

出于好奇,我又试了一次,cygwin,bash:

$ c++ -c nothing.cc
c++: error: nothing.cc: No such file or directory
c++: fatal error: no input files
compilation terminated.

$
现在,它看起来与OP非常相似

唯一让我困惑的事实是:OP的错误消息看起来像编译器是否没有得到任何输入:

$ c++
c++: fatal error: no input files
compilation terminated.

$
但我认为情况并非如此,因为在OP中,它以 :没有这样的文件或目录。
因此,它看起来好像缺少了一些文本……

看起来C++是系统中可用的命令。您可以在命令中使用绝对路径来代替C++。你可以用C++找到它,我试图修改.SH文件为/Ur/bin /C++ +C++文件1.CPP/UR/BI/C++FIL1.O-O文件1,仍然告诉我:没有这样的文件或DealTryChest/Ur/bin是你的环境变量路径的一部分。你可以使用下面的命令来检查它,如果不是,请在你的home目录中修改.in文件文件中包含它。C++可能是G++的别名,你的脚本可能不理解。可能您没有使用您认为是的shell来执行它,或者终端的配置与已执行脚本的配置不同。如何启动.sh文件?从bash还是双击它?如果您没有从bash启动它,您应该检查.sh文件中的工作目录,即将其输出到控制台,以便验证您是否在预期目录中。