我今天观看了一个视频讲座,其中介绍了 C 以及如何制作将在 Linux 中运行的 C 程序等内容。我按照给出的步骤操作,现在遇到了一些问题。
我创建了 C 文件(HelloWorld.c)并使用命令gcc -o HelloWorld HelloWorld.c
编译该文件,这两个步骤都成功了。之后我检查以确保 HelloWorld 是使用命令创建的ls
,而且确实如此。但是,当我使用HelloWorld
应该运行该程序的命令时,我收到一条错误消息HelloWorld: command not found
:
在视频讲座中,教授确实提到这适用于 32 位系统,而我使用的是 64 位系统。也许这可能是问题所在?
编辑:也在视频讲座中教授提到,当我使用该命令时,ls
我应该看到HelloWorld*
.我只看到 HelloWorld(没有星星)。
答案1
您没有PATH
将环境变量的值设置为包含 HelloWorld 可执行文件所在的任何目录。
假设您曾经cd
访问过该目录,则可以使用以下命令运行 HelloWorld:./HelloWorld
Unix shell 有一个名为 的变量PATH
,它是一个:
以 - 分隔的目录列表,当用户发出没有完全限定路径名的命令时要在其中查找(/usr/bin/ls
完全限定:它开始于/
并结束于ls
,但ls
不是完全限定通过它自己)。如果没有.
in条目PATH
,则必须./
在命令开头显式使用 on 来获取当前目录中要执行的该名称的文件。
答案2
用于ls -F
查看文件名末尾的星号。如果您使用ls
GNU coreutils,您可以设置环境变量LS_OPTIONS
以自动包含此选项以及任何其他数量的选项。手册ls
中列出了选项ls
,查看它们的运行情况: man ls
@brewer2:在登录时设置环境变量是特定于 shell 的,这本身就是一个好问题。