我的操作系统是 Fedora Linux 14。
我使用 Code::Blocks IDE 编写了一个程序,它使用 GCC 编译了我的程序。
我的输出程序是test
。当我在 Code::Blocks 中启动我的应用程序时,它正常启动。但是当我双击我的可执行程序时,程序没有启动。当我启动终端(在我的二进制程序的路径中)并输入 时test
,我的程序没有启动,但是当我./test
在终端中输入 时,它正常启动。为什么./
当我想运行应用程序时要输入?
答案1
./
当你的PATH
环境变量不包括当前目录时,这是必需的。因此,如果你的某个目录中有一个不在你的路径上的可执行文件,你需要./theexecutable
告诉 shell 你的可执行文件在当前目录中。
答案2
仅仅因为当前目录.
通常不包含在 PATH 变量中。
如果您不知道要输入什么./
,您可以将其添加.
到 PATH 中包含的冒号分隔的文件夹列表中,但是不建议这样做,因为这很容易在不知不觉中屏蔽系统命令。
答案3
当您只输入程序名称时,*nix 会在所有 PATH 位置中查找该名称。如果找不到,则不会启动。因此,您必须输入“./”来指示当前目录。
答案4
除了其他答案告诉您的内容之外:
当您输入时test
,您可能会调用/bin/test
;man test
来获取详细信息。
当您双击可执行文件(来自 nautilus 或类似程序,是吗?)时,它可能会运行,但如果没有终端,您就看不到输出。