g++

2017-10-11  本文已影响0人  点点渔火

gcc / g++分别是gnu的c / c++编译器, gcc/g++在执行编译工作的时候,总共需要4步:

预处理 -> 生成 .i 文件
编译 -> 汇编代码 .s文件
汇编 -> 有汇编变为目标代码 .o 文件
链接 -> 连接目标代码,生成可执行程序

参数:

g++ -E main.cpp > main.i 
g++ -c main.cpp
g++ -S main.cpp
单个源文件: g++  -o exec main.c
多个源文件: g++ -o exec main.c print.c 
复杂依赖: 写MakeFile文件 然后执行 make 命令
g++ -fPIC -c print.c

print.o 可以用于被创建共享函数库
gcc -shared -o print.so print.o

gcc -o main_share -lprint -L. print.o
  gcc hello.c -include /root/pianopan.h

关于函数库

(http://www.cnblogs.com/avril/archive/2010/05/16/1736524.html)

一个“程序函数库”简单说就是一个文件包含一些编译好的代码和数据,这些编译好的代码和数据可以在事后供其它的程序
使用。程序函数库可以使整个程序更加模块化,更容易重新编译,而且更方便升级。

程序函数库可分为三种类型:静态函数库--static libraries,共享函数库--shared libraries,和动态函数库--dynamic loaded libraries。静态函数库是在程序执行前就加入到目标程序中去了;而共享函数库则是在程序启动的时候加载到程序中,它可以被不同的程序共享;动态加载函数库则可以在程序运行的任何时候动态加载。实际上,动态函数库并非另外一种库函数模式,区别是动态函数库是如何被程序元使用的。

Linux系统上的函数库分为两种不同的类型:共享的和静态的

如何创建共享函数库:

未完

参考:
http://blog.sina.com.cn/s/blog_55a406730100rutb.html
http://www.cnblogs.com/shine-yr/p/5214875.html
http://www.cnblogs.com/avril/archive/2010/05/16/1736524.html

上一篇 下一篇

猜你喜欢

热点阅读