您的位置:首页 > 编程语言 > C语言/C++

g++编译c++文件

2015-12-13 21:10 399 查看
下面是一个名字为hello.cpp的c++代码文件:

/* hello.cpp */
#include <iostream>
int main(int argc,char *argv[])
{
std::cout << "hello!!" << std::endl;
return(0);
}


在linux中执行如下命令编译该文件:

g++ hello.cpp


  编译器 g++ 通过检查命令行中指定的文件的后缀名cpp可识别其为 C++ 源代码文件。编译器默认的动作:编译源代码文件生成对象文件(object file),链接对象文件和 libstdc++ 库中的函数得到可执行程序。然后删除对象文件。由于命令行中未指定可执行程序的文件名,编译器采用默认的 a.out。

  g++的参数有:-o -l -c -E -S

(1)-o参数一般用来修改生成应用程序的名称,如下命令生成名字为hello的可执行程序:

g++ hello.cpp -o hello


(2)-l参数通过添加lib前缀和.so后缀,添加编译代码所需要链接的库文件,在标准库中查找该库文件,如下代码表示添加libopencv_highhui.so库文件:

g++ hello.cpp -o hello -lopencv_highhui


(3)-c参数用来告诉编译器编译源代码但不要执行链接,输出结果为对象文件。文件默认名与源码文件名相同,只是将其后缀变为 .o。如下代码表示生成hello.o文件:

g++ -c hello.cpp


(4)-E参数表示使 g++ 将源代码用编译预处理器处理后不再执行其他动作。下面的命令预处理源码文件 hello.cpp 并将结果显示在标准输出中:

g++ -E hello.cpp


(5)-S参数表示使编译器将程序编译成汇编语言,输出汇编语言代码而后结束。下面的命令将由 C++ 源码文件生成汇编语言文件 hello.s:

g++ -S hello.cpp


(6)编译多个.cpp文件:下面代码将三个.cpp文件链接到一个可执行文件中,并命名为hello:

g++ hello1.cpp hello2.cpp hello3.cpp -o hello
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: