gcc/g++ 编译器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/daaikuaichuan/article/details/82289003

一、单个源文件生成可执行程序

g++ -o helloworld helloworld.cpp
$ ./helloworld //运行
hello, world

二、多个源文件生成可执行程序

这里写图片描述

1、生成共享库和静态库

(1)生成目标文件(.o)

g++ -c say_hello.cpp say_goodby.cpp -I "../inc" 
// -I表示编译程序按照-I指定的路进去搜索头文件

(2)生成共享库
这里写图片描述

g++ -fPIC -I ../inc *.cpp -shared -o ../lib/libspeak.so.0.1
// 64系统编译的库或者可执行文件时,要加 -fpic选项
// -shared表示生成共享库

(3)生成静态库
这里写图片描述

ar -r ../lib/libspeak_a.a *.o

2、调用共享库和静态库

(1)调用共享库

//运行的时候,调用共享库要导入环境变量,通过环境变量指定库文件路径
export LD_LIBRARY_PATH="../lib:$LD_LIBRARY_PATH"

//-l表示连接到共享库  
//-L指定连接的库所在的路径
//把库文件名的头lib和尾.so去掉就是库名

//g++编译test_drv.cpp生成test_drv可执行程序,指定调用../目录下的下的speak库
g++ test_drv.cpp -o test_drv -I "../inc" -l speak ­L "../lib"

(2)调用静态库

//编译test_drv.cpp文件生成test_drv 指定要包含的头文件目录../inc,要链接../lib目录下的libspeak_a.a库
g++ -o test_drv test_drv.cpp -I "../inc" ../lib/libspeak_a.a

这里写图片描述

扫描二维码关注公众号,回复: 3007374 查看本文章

猜你喜欢

转载自blog.csdn.net/daaikuaichuan/article/details/82289003