WEB开发网
开发学院软件开发VC gcc和g++的区别(很详细的描述) 阅读

gcc和g++的区别(很详细的描述)

 2009-06-08 20:08:03 来源:WEB开发网   
核心提示: me.h:extern "C" void CppPrintf(void);me.cpp:#include <iostream>#include "me.h"using namespace std;void CppPrintf(void){

 me.h:
extern "C" void CppPrintf(void);

me.cpp:
#include <iostream>
#include "me.h"
using namespace std;
void CppPrintf(void)
{
     cout << "Hellon";
}

test.cpp:
#include <stdlib.h>
#include <stdio.h>
#include "me.h"
int main(void)
{
    CppPrintf();
    return 0;
}

1. 先给me.h加上extern "C",看用gcc和g++命名有什么不同

 [root@root G++]# g++ -S me.cpp
[root@root G++]# less me.s
.globl _Z9CppPrintfv        //注意此函数的命名
        .type   CppPrintf, @function
[root@root GCC]# gcc -S me.cpp
[root@root GCC]# less me.s
.globl _Z9CppPrintfv        //注意此函数的命名
        .type   CppPrintf, @function
完全相同!

2. 去掉me.h中extern "C",看用gcc和g++命名有什么不同

 [root@root GCC]# gcc -S me.cpp
[root@root GCC]# less me.s
.globl _Z9CppPrintfv        //注意此函数的命名
        .type   _Z9CppPrintfv, @function
[root@root G++]# g++ -S me.cpp
[root@root G++]# less me.s
.globl _Z9CppPrintfv        //注意此函数的命名
        .type   _Z9CppPrintfv, @function
完全相同!

【结论】完全相同,可见extern "C"与采用gcc/g++并无关系,以上的试验还间接的印证了前面的说法:在编译阶段,g++是调用gcc的。

上一页  1 2 3 

Tags:gcc 区别 详细

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接