我完成了大部分关于VisualStudio的工作,并且对gcc或g ++没有多少经验.当我今天早上在我的电脑上使用cygwin编译(例如aprogram.cpp)时,我得到了(aprogram.exe),当我尝试在我的Ubuntu盒子上编译相同的东西时,我得到了(aprogram)没有任何扩展名.我只是想知道是否有人能够告诉我原因.这个问题只是出于好奇.:)
提前致谢!
编辑:(来自Jimmy的评论)Cygwin下的g ++默认为.exe
这很简单:在UNIX上,你不需要steenkin'扩展.实际上,像.c这样的"扩展"只是一种方便的命名约定; 与Windows不同,文件系统将文件名视为一个字符串,.c和all.
在非常愉快的时候,编译一个没有-o
标志的C程序.您的可执行文件仍会显示---命名为可执行文件的默认名称:a.out
.
这只是一个命名惯例.在Unix/Linux上,可执行文件没有扩展名,只有可执行文件位.
.exe是一个windows的东西.Unix不关心扩展.可执行性基于文件的元数据以及文件的内容.g ++通过cygwin并不是一个真正的Windows应用程序,所以它带有它的unix根源.