Eclipse编译生成C++的静态库.a文件

1、使用eclipse生成静态库

如图 new --> C++ project --> Static Library -->next --> finish

完成编程后,点击 build 即在Debug 下看到 生成的 .a 文件 即是想要得到的静态库

2、静态库的使用

使用eclipse添加自己的静态库 暂时不会 方法行不通 有待后续解决

现使用手动方式:

将静态库及其相关的头文件拷贝到同一文件夹下,并在此文件夹下创建 mian.c

:mian.c内需包含所需要的头文件。

g++ mian.c libs.a //当前目录下编译生成 a.out,已连接静态库文件

./a.out           //运行程序

 

3、使用eclipse生成C/C++ .so 工程

file --> new C++ project --> Shared Library --> Empty Project + Linux GCC --> Finish //工程创建完成

xxxx --> Properties -->  aC/C++ Build --> Setting --> Tool Setting --> GCC C/C++ Compiler --> Command ="gcc/g++ -fPIC" //增加makefile命令

                         bC/C++ Generall --> Paths and Symbols --> Libraries --> add dl

完成上述步骤后即可,编写文件,build project 生成 xxx.so

### 如何用 C++ 编译生成静态库 `.a` 文件 #### 创建项目结构 为了创建一个静态库,在 Eclipse 中可以按照以下流程操作:new --> C++ project --> Static Library --> next --> finish [^1]。 #### 准备源代码文件 假设有一个简单的函数 `add.cpp` 和头文件 `add.h`: ```cpp // add.h #ifndef ADD_H_ #define ADD_H_ int add(int a, int b); #endif /* ADD_H_ */ ``` ```cpp // add.cpp #include "add.h" int add(int a, int b){ return a + b; } ``` #### 编译对象文件 使用 GCC 将上述源码编译成目标文件(`.o`),这一步不会直接生成可执行文件而是中间的目标文件: ```bash gcc -c add.cpp -o add.o ``` #### 打包为静态库 利用 `ar` 工具来打包这些目标文件成为静态库。这里展示了一个简单例子,其中只有一个目标文件被加入到名为 `libadd.a` 的静态库中: ```bash ar rcs libadd.a add.o ``` 此命令中的选项含义如下: - `r`: 插入成员到档案中;如果必要则替换。 - `c`: 创建新的档案。 - `s`: 写入索引进入档案。 #### 使用静态库构建应用程序 当有了这个静态库之后,就可以将其用于其他项目的开发当中。下面是一个简单的测试案例说明如何链接并调用该静态库内的功能: 编写主程序 `main.cpp` 来验证静态库的功能: ```cpp // main.cpp #include <iostream> #include "add.h" using namespace std; int main(){ cout << "Result of adding two numbers is : " << add(5,7); return 0; } ``` 接着通过指定 `-L.` 参数告诉编译器去哪里找寻本地路径下的库,并加上 `-ladd` 告知它要链接哪个库名(去掉前缀 'lib' 及扩展名 '.a') : ```bash g++ -o myprogram main.cpp -L. -ladd ``` 这样就完成了整个过程——从创建静态库直到最终的应用程序成功运行[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值