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