在Cygwin和Linux下由g ++创建的可执行文件的默认文件扩展名

411*_*104 8 c++ compiler-construction portability cygwin g++

我完成了大部分关于VisualStudio的工作,并且对gcc或g ++没有多少经验.当我今天早上在我的电脑上使用cygwin编译(例如aprogram.cpp)时,我得到了(aprogram.exe),当我尝试在我的Ubuntu盒子上编译相同的东西时,我得到了(aprogram)没有任何扩展名.我只是想知道是否有人能够告诉我原因.这个问题只是出于好奇.:)

提前致谢!

编辑:(来自Jimmy的评论)Cygwin下的g ++默认为.exe

Cha*_*tin 18

这很简单:在UNIX上,你不需要steenkin'扩展.实际上,像.c这样的"扩展"只是一种方便的命名约定; 与Windows不同,文件系统将文件名视为一个字符串,.c和all.

非常愉快的时候,编译一个没有-o标志的C程序.您的可执行文件仍会显示---命名为可执行文件的默认名称:a.out.


dic*_*ciu 12

这只是一个命名惯例.在Unix/Linux上,可执行文件没有扩展名,只有可执行文件位.


pli*_*nth 6

.exe是一个windows的东西.Unix不关心扩展.可执行性基于文件的元数据以及文件的内容.g ++通过cygwin并不是一个真正的Windows应用程序,所以它带有它的unix根源.