版权声明:本文为博主原创文章,未经博主允许不得转载。 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 查看本文章