![如何为编译器设置 $PATH](https://linux22.com/image/1100990/%E5%A6%82%E4%BD%95%E4%B8%BA%E7%BC%96%E8%AF%91%E5%99%A8%E8%AE%BE%E7%BD%AE%20%24PATH.png)
我写了这个
# include <stdio.h>
int main () {
printf ("Hello, World! \n");
return 0;
}
我尝试使用 SciTE 编译它,结果如下
cc -pedantic -Os -c hello.c -o hello.o -std=c99
>Exit code: 0
尝试运行它,然后出现 h:
1: ./hello: not found
>Exit code: 127
我认为路径不正确:
user@user-Aspire-5733Z:~$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/user/bin:/usr/sbin:/usr/bin:/root/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/opt/csw/bin:/opt/csw/sbin:/opt/csw/gcc3/bin:/usr/sfw/sbin:/usr/sfw/bin:/opt/csw/mysql5/bin:/home/user/bin:/usr/sbin:/usr/bin:/root/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/opt/csw/bin:/opt/csw/sbin:/opt/csw/gcc3/bin:/usr/sfw/sbin:/usr/sfw/bin:/opt/csw/mysql5/bin:/home/user/bin:/usr/sbin:/usr/bin:/root/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/opt/csw/bin:/opt/csw/sbin:/opt/csw/gcc3/bin:/usr/sfw/sbin:/usr/sfw/bin:/opt/csw/mysql5/bin:/bin:/bin
答案1
首先,编译后,您正在运行./hello
,但没有名为的文件hello
。尝试ls
检查。您可能有类似hello.c
和的文件。hello.o
此外,您正在使用-c
标志进行编译,这意味着源文件已编译但未链接。请参阅海湾合作委员会了解更多信息。因此,即使您尝试运行,./hello.o
也会遇到另一个错误
bash: ./hello.o: Permission denied
要使正确的可执行文件(带链接)编译时不带-c
标志,例如
cc -pedantic -Os hello.c -o hello.o -std=c99
接下来在终端运行,
./hello.o
现在输出结果如下:Hello, World!
答案2
注意你的 bash/zsh 终端,它可能有所不同,例如 $,我的是 ->
请结合下面的说明查看图片网址。
- 从航站楼光盘进入你的工作文件夹
- 通过运行确认您位于文件夹中密码(选修的)
- 使用触摸创建文件
- 使用您使用的任何编辑器编辑文件。(未显示)
- 有许多选项需要编译,我们先选择一个简单的。gcc hello.c -o 你好
- 使用ls查看文件夹的内容,如您所见,有一个 hello.c ,而 hello.hello 是已编译的可执行文件。在我的计算机上,我设置了终端颜色,它以红色显示 hello 以表明它是一个可执行文件。
- 执行该文件,。/你好注意没有扩展名。如您所见,它执行了图像文件。