我刚刚安装了MinGW,在bin文件夹中我可以看到编译程序的7个.exe文件:
我的小程序(testprog.cpp)正确编译每个程序;在{bin}文件夹中生成a.exe
文件,它正确运行。
它们之间的区别是什么?我应该使用哪一个? 另外,每次成功编译后,如何自动将输出文件的名称从a.exe更改为testprog.exe?
答案 0 :(得分:14)
这些遵循gcc命名约定。
您通常应使用“gcc”变体编译C代码,使用“g ++”变体编译c ++代码。
使用-o filename
指定输出文件名,默认为a.exe
答案 1 :(得分:8)
他们很可能都是一样的;要么是精确的副本,要么是彼此的符号链接。尝试使用每个--version
标志来查看您的内容。在我的MingGW安装中,每个二进制文件都不同(使用diff
检查),但它们都输出相同的版本信息(第一位除外,即文件名):
gcc.exe (GCC) 3.4.5 (mingw-vista special r3)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
使用-o
标志更改输出文件名:
gcc -o testprog.exe testprog.cpp
答案 2 :(得分:3)
在unix中,他们主要是通过符号链接。唯一的主要区别在于'cc'与'++'之间。如果您使用标准C ++库的任何部分,您应该注意到这两者之间的差异。 '++'版本自动链接到该lib。 'cc'是C编译器,所以不要......虽然只需添加-lstdc ++或其他任何东西就可以将它们用作C ++编译器。
答案 3 :(得分:0)
当我在网上搜索有关制作一些DLL的指令时,我遇到了C ++编译过程,从我看到的,他们使用g ++编译c ++与使用gcc一样。