在软件开发中,编译器是必不可少的工具之一。而在使用编译器时,经常会涉及到一个问题:编译后的文件到底保存在哪里?针对这个问题,不同的编译器、不同的系统,甚至是同一种编译器在不同的环境下,都会有不同的答案。接下来,本文将从多个角度分析compile在文件夹什么地方这个问题。
一、各种编译器在不同系统下的默认行为
1. Visual Studio编译器
针对Windows系统,Visual Studio编译器默认将编译后的文件放在与源代码文件同个文件夹下的Debug或Release文件夹内,具体位置可在项目的属性中设置。而对于Linux和macOS,Visual Studio编译器则会默认将编译后的文件保存在输出路径所指定的目录中。
2. GCC编译器
GCC编译器默认将编译后的文件放在当前工作目录下,而当前工作目录是在编译时在命令行中指定的。如果没有指定,则默认为当前终端会话的目录。
3. Clang编译器
与GCC类似,Clang编译器的默认行为是将编译后的文件放在当前工作目录下。不过,Clang编译器也提供了设置输出目录的选项。
二、编译器所产生的文件类型
针对不同的编译器,所产生的文件类型也会有所不同。Windows平台上,Visual Studio编译器会产生后缀名为.exe的可执行文件;而GCC和Clang编译器则会产生后缀名为.out的可执行文件。
在Linux和macOS平台上,GCC和Clang编译器会产生后缀名为.out的可执行文件。
三、File System Hierarchy Standard(FHS)标准
FHS是Linux系统中的一个标准,规定了文件系统的组织结构,包括了文件夹的命名、文件夹的作用等方面。根据此标准,编译后的文件应该被保存在/usr/bin、/usr/local/bin或/opt目录下。
/usr/bin目录下保存着大部分系统默认安装的可执行文件,其中包括了一些基本的系统命令,如ls、ps和cat等。如果编译的文件是系统的一部分,那么应该将它们放在此目录下。
/usr/local/bin目录下保存的则是用户自己安装的应用程序。如果编译的文件是用户自己安装的应用程序,那么应该将它们放在/usr/local/bin目录下。
/opt目录下则是第三方应用程序或厂商提供的应用程序的安装目录。如果编译的文件是第三方应用程序或者厂商提供的应用程序,那么可以将它们放在/opt目录下。
综上所述,针对编译后的文件存放的问题,我们可以从不同的角度进行分析,包括了不同编译器的默认行为、编译器产生的文件类型以及FHS标准等方面。合理地选择存放位置将会对系统管理和应用程序使用带来很大的便利。