g++编译c++文件
2015-12-13 21:10
399 查看
下面是一个名字为hello.cpp的c++代码文件:
在linux中执行如下命令编译该文件:
编译器 g++ 通过检查命令行中指定的文件的后缀名cpp可识别其为 C++ 源代码文件。编译器默认的动作:编译源代码文件生成对象文件(object file),链接对象文件和 libstdc++ 库中的函数得到可执行程序。然后删除对象文件。由于命令行中未指定可执行程序的文件名,编译器采用默认的 a.out。
g++的参数有:-o -l -c -E -S
(1)-o参数一般用来修改生成应用程序的名称,如下命令生成名字为hello的可执行程序:
(2)-l参数通过添加lib前缀和.so后缀,添加编译代码所需要链接的库文件,在标准库中查找该库文件,如下代码表示添加libopencv_highhui.so库文件:
(3)-c参数用来告诉编译器编译源代码但不要执行链接,输出结果为对象文件。文件默认名与源码文件名相同,只是将其后缀变为 .o。如下代码表示生成hello.o文件:
(4)-E参数表示使 g++ 将源代码用编译预处理器处理后不再执行其他动作。下面的命令预处理源码文件 hello.cpp 并将结果显示在标准输出中:
(5)-S参数表示使编译器将程序编译成汇编语言,输出汇编语言代码而后结束。下面的命令将由 C++ 源码文件生成汇编语言文件 hello.s:
(6)编译多个.cpp文件:下面代码将三个.cpp文件链接到一个可执行文件中,并命名为hello:
/* 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
相关文章推荐
- C语言总结
- C语言中指针
- VC++ 6.0 中使用 MSComm.ocx
- STL中resize()和reserver()区别
- 【C语言探险】 第四课的第二部分:串
- Iterator(迭代器)设计模式
- C++ 类工厂实现动态对象创建
- C++设计模式
- C++模板简单介绍
- C语言中数据输出宽度是什么?
- 理解C语言——从小菜到大神的晋级之路(3)——C源程序的基本结构与调试方法
- c++_6 : 构造函数和析构函数
- next数组的理解
- c语言:1000瓶水,有一瓶是有毒的,现共有10只老鼠,怎么判断毒水?
- c++_5: 函数的特性
- C语言知识整理(2):volatile与register
- 《C++ primer》英文第五版阅读笔记(二十五)——函数基本知识
- C++对象管理模型
- c/c++ 宏函数的应用
- C语言