gpt4 book ai didi

c - 为什么当我尝试通过创建一个以程序命名的文件来编译我的 C 程序时,它会为其创建一个应用程序?

转载 作者:行者123 更新时间:2023-11-30 21:47:19 29 4
gpt4 key购买 nike

我曾经尝试编译一个我为国际象棋游戏编写的 C 程序(感谢 YouTube 的 Bluefever Software 提供的教程),但是当我去编译该程序时,我执行了这行代码:

C:\TDM-GCC-64\>gcc Chess/chess.c Chess/init.c -o chess

编译成功了(没有语法错误或任何错误),但是当我到达文件目录时,我看到了这个(用蓝色圈出):

意外的应用程序(但没有病毒!):

Enter image description here

这是怎么发生的?它可能与我正在编译的行有关,但这背后的“英特尔”是什么?

最佳答案

编译器生成应用程序是正常的!

令人惊讶的是可执行文件的位置,它应该是在父目录中生成的:

 C:\TDM-GCC-64\> gcc Chess/chess.c Chess/init.c -o chess

这个解释很有趣:

  • 您使用的是 Windows 操作系统,其中文件名不区分大小写。
  • 您指示 gcc 将可执行文件生成到 chess 中,但这是 Chess 目录的名称。在这种情况下,gcc 在指定目录中生成可执行文件,并为其指定一个名称,该名称是第一个源文件 chess.c -> chess 的基本名称。
  • 此外,Windows 中的应用程序名称实际上是 chess.exe,但文件管理器的默认设置是不显示文件扩展名。这是一个非常不幸的选择。我建议您在 Windows/文件资源管理器选项窗口中更改此设置以始终显示文件扩展名。这将使您能够更轻松地区分 chess.cchess.exechess.h

您的 Chess 目录中有一个 Makefile,您应该使用 make 命令来构建可执行文件:

 C:\TDM-GCC-64\> make -C Chess

或者简单地 cdChess 子目录并输入:

 C:\TDM-GCC-64\Chess> make

关于c - 为什么当我尝试通过创建一个以程序命名的文件来编译我的 C 程序时,它会为其创建一个应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34969057/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com