我曾经尝试编写一个用于国际象棋游戏的C程序(感谢YouTube的Bluefever软件的教程),但是当我编写程序时,我执行了这行代码:
C:\TDM-GCC-64\>gcc Chess/chess.c Chess/init.c -o chess
编译工作(没有语法错误或任何东西),但当我到达我的文件目录时,我看到了这个(用蓝色圈出):
意外的应用程序(但没有病毒!):
这是怎么发生的?它可能与我正在编译的那一行有关,但是什么是" intel"在这背后?
答案 0 :(得分:5)
编译器生成应用程序是正常的!
令人惊讶的是可执行文件的位置,应该在父目录中生成:
C:\TDM-GCC-64\> gcc Chess/chess.c Chess/init.c -o chess
解释很有意思:
chess
,但这是Chess
目录的名称。在这种情况下,gcc在命名目录中生成可执行文件,并为其指定一个名称,该名称是第一个源文件chess.c
的基本名称 - > chess
。chess.exe
,但文件管理器的默认设置是不显示文件扩展名。这是一个非常不幸的选择。我建议您在Windows /文件资源管理器选项窗口中更改此设置以始终显示文件扩展名。这样您就可以更轻松地区分chess.c
,chess.exe
和chess.h
。您在Chess目录中有Makefile
,您应该使用make
命令来构建可执行文件:
C:\TDM-GCC-64\> make -C Chess
或只是cd
到Chess
子目录并输入:
C:\TDM-GCC-64\Chess> make
答案 1 :(得分:3)
那是你告诉编译器的文件。
gcc的-o
选项是输出文件。在这种情况下,您告诉它创建一个名为chess
的可执行文件。这正是创造的东西。
答案 2 :(得分:1)
编译器在编译时自动创建可执行文件。