Linux (gcc以及共享库的使用)

gcc

  1. 什么是gcc:gcc是GNU Compiler Collection的缩写。最初是作为C语言的编译器,现在已经支持多种语言了,如C、Java、Pascal、Ada、COBOL语言等。
  2. gcc支持多种硬件平台,甚至对Don Knuth 设计的 MMIX 这类不常见的计算机都提供了完善的支持

gcc编译程序的过程

1.预处理(Pre-Processing)

2.编译(Compiling)

3.汇编(Assembling)

4.链接(Linking)

gcc编译程序过程示意图

-g: 在目标文件中嵌入调试信息,以便gdb之类的调试程序调试

运行代码:

1.vim 源文件.cpp:创建cpp文件并写入代码

2.生成可执行文件: g++ main.cpp -o main 2.g++ main.cpp tools/mysum.cpp -o main

main 是生成的可执行文件名  

g++生成c++文件  gcc生成.c文件

静态库与共享库

  1. 静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。
  2. 共享库( .so或.sa ):程序在运行的时候才去链接共享库的代码,多个程序共享使用库的代码。
  3. 一个可执行文件使用静态库的文件更大,还是使用共享库文件大。

生成共享库

-编译选项

  1. shared: 表示生成共享库格式
  2. fpic:产生位置无关码(position independent code)

-库名规则:lib+xxx+版本号.so

-示例:gcc/++ –shared –fpic test.o –o libTest.so

使用共享库

-编译选项

  1. l:链接共享库,只要库名即可(去掉lib以及版本号)
  2. L:链接库所在的路径.

-示例:

gcc/++ –o test –L./  -lTest

运行共享库设置的两种方法

1、拷贝.so文件到系统共享库路径下

一般指/usr/lib

2、ldconfig

ld.so.conf,将路径写入文件

ldconfig,生效

更新ld.so.cache

3.更改LD_LIBRARY_PATH

具体操作:

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值