使用gcc、g++编译C/C++源程序,静态库和动态库创建方式

2018-07-04  本文已影响152人  XDgbh

后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;
后缀为.cpp的,两者都会认为是c++程序。
注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。
编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接。
为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的(当然最好就用g++)。

编译程序命令

#gcc -o hello hello1.c hello2.c hello3.c -I/home/hello/include -L/home/hello/lib -lworld

静态库和动态库的使用区别

一个例子

现在假设有一个叫hello的程序开发包,它提供一个静态库libhello.a 一个动态库libhello.so,一个头文件hello.h,头文件中提供sayhello()这个函数 void sayhello(); 另外还有一些说明文档。
这一个典型的程序开发包结构 与动态库连接, linux默认的就是与动态库连接,下面这段程序testlib.c使用hello库中的sayhello()函数

int main()
{
  sayhello();
  return 0;
}

https://www.cnblogs.com/yaozhongxiao/archive/2012/03/16/2400473.html
查看详细介绍如何用.o文件创建静态库.a和动态库.so文件。

静态库.a和动态库.so文件的创建方式

创建静态库和动态库的方式

库的相关性处理办法

库的相关性处理办法
image.png
image.png
image.png
上一篇下一篇

猜你喜欢

热点阅读