有人能够解释一下,为什么我们要使用./a.out来运行程序吗?这背后是否有任何含义?请给出解释。
./
部分,那是为了安全起见。Windows默认将当前目录添加到PATH中,这很危险(存在DLL注入等风险)。如果你指的是a.out
部分,那只是一个名称(来自a.out格式的名称),你可以通过修改gcc -o参数来更改它。a.out
,这是Unix系统上“汇编器输出”的传统文件名。 - R.. GitHub STOP HELPING ICE值得你更深入地了解C语言及其程序编译的方式。
基本上,你的源代码被发送到预处理器,在那里指令如#define
和#include
被加载(例如进入内存)。因此,任何你想使用的库都会被加载,例如:
#include <math.h>
基本上,math.h
的内容将被“粘贴”到定义它的源代码中。
一旦所有这些东西都被展开,编译器 将把您的源代码转换为目标代码,即二进制代码。如果您没有指定构建名称,则 a.out 是输出的默认名称。
gcc -o mynewprogram mynewprogram.c
a.out是编译器的默认名称。据我所知,这是因为链接过程被跳过,它不会被编译为对象或库。
./
还是a.out
本身?您要寻找什么样的“含义”? - Jens Gustedt