c++ 生成静态库和调用第三方静态库(linux 树莓派环境下)

前言

之前有写过博客在windows 下创建静态库,最近刚好在学linux 接下来我们在linux 环境下创建静态库和动态库进行调用
c++ 生成静态库和调用第三方静态库(Visual Studio2017 windows 环境下)
参考视频

准备

准备好三个文件
1.swap.h

#include <iostream>

void swap(int &a,int &b);

2.swap.cpp

#include <swap.h>

void swap(int &a,int &b)
{
	int temp;
	temp = a;
	a  = b;
	b = temp;
}

3.main.cpp

#include <swap.h>
using namespace std;
int main(){
	int a=10;
	int b = 20;
	std::cout<<a<<std::endl;
	std::cout<<b<<std::endl;
	swap(a,b);
	std::cout<<a<<std::endl;
	std::cout<<b<<std::endl;

	return 0;
}

我的文件结构如下所示,可以使用如下命令先测试输出

g++ main.cpp  src/swap.cpp  -IInc

在这里插入图片描述

生成静态库

  1. 进入src 目录
cd ./src
  1. 汇编,生成swap.o文件
g++ swap.cpp -c -I../Inc
  1. 生成静态库libSwap.a
ar rs libSwap.a Swap.o
  1. 回到上一级
cd ..
  1. 静态链接,生成可执行文件:Staticmain
g++ main.cpp  -lSwap -Lsrc -IInc  -o staticmain

其中-lSwap 代表链接libSwap这个静态库,因为库都是以lib开头,省去了lib,但是如果前面加上lib就会报错,运行一下发现g++默认已经添加了lib
-Lsrc 代表文件在src 文件夹下
-IInc 代表头文件的路径在Inc 下
在这里插入图片描述
6.运行

./staticmain

生成动态库

1.进入src下
2.生成动态库libSwap.so

g++ swap.cpp -I../Inc -fPic -shared -o libSwap.so

3.回到上级目录
4.链接,生成可执行文件:dyna_main

g++ main.cpp -lSwap -Lsrc -IInc -o dyna_main

5.运行

./sharemain

这样运行就会报错,因为动态库是在执行的时候进行链接,所以要加上路径

LD_lIBRARY_PATH=src ./dyna_main
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值