C编译器混乱

时间:2017-03-27 19:13:19

标签: c gcc compilation

好吧所以我在操作系统上使用终端来编译我的c代码。每当我使用nano或vim创建一个名为“tst.c”的文件(或者名称可能是什么)然后我编译使用(我的老师告诉我每次都使用它,所以我不认为这是问题所在:

gcc -Wall -std=c99 -o tst.c ./tst.c

然后它变成二进制我猜。但是当我再次尝试编辑它时,它具有我猜测的所有这些奇怪的加密:

��������H���__PAGEZERO��������������������������������������������������������ÿ��__TEXT����������������������������������������������������__text����������__TEXT����������`�����*�������`���������������Ä������������__stubs���������__TEXT����������ä������������ä��������������Ä�����������__stub_helper���__TEXT����������ê������������ê���������������Ä������������__cstring�������

所以,问题是,如何恢复以便我可以编辑而不是每次都创建一个新文件???????

2 个答案:

答案 0 :(得分:0)

-o(name)标志意味着您将输出存储到您用于名称的任何内容中。因此,如果您将.c添加到名称的末尾,您将看到许多有趣的内容。在了解每个标志的作用时,手册页非常棒。

答案 1 :(得分:0)

由于-o选项,您使用已编译的可执行文件覆盖原始源文件:

gcc -Wall -std=c99 -o tst.c ./tst.c
                   ^^^^^^^^ 

您需要在-o选项中指定其他输出文件名:

gcc -Wall -std=c99 -o tst tst.c

否则,您可以完全关闭-o选项,并将编译后的可执行文件写入名为a.out的文件。

最终,您希望使用make实用程序自动执行所有这些操作,但现在只需了解-o选项的工作原理。