如何为编译器设置 $PATH

如何为编译器设置 $PATH

我写了这个

# 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 终端,它可能有所不同,例如 $,我的是 ->

请结合下面的说明查看图片网址。

  1. 从航站楼光盘进入你的工作文件夹
  2. 通过运行确认您位于文件夹中密码(选修的)
  3. 使用触摸创建文件
  4. 使用您使用的任何编辑器编辑文件。(未显示
  5. 有许多选项需要编译,我们先选择一个简单的。gcc hello.c -o 你好
  6. 使用ls查看文件夹的内容,如您所见,有一个 hello.c ,而 hello.hello 是已编译的可执行文件。在我的计算机上,我设置了终端颜色,它以红色显示 hello 以表明它是一个可执行文件。
  7. 执行该文件,。/你好注意没有扩展名。如您所见,它执行了图像文件。

命令的终端视图

相关内容