linux编译静态库指令,linux+vs2013编译静态库和动态库

Linux下创建与使用静态库

Linux静态库命名规则

Linux静态库命名规范,必须是"lib[your_library_name].a":lib为前缀,中间是静态库名,扩展名为.a。

创建静态库(.a)

(1) 将代码文件编译成目标文件.o(test.o)

命令:g++ -c  test.cpp

(2) 通过ar工具将目标文件打包成.a静态库文件

命令:ar -crv libtest.a test.o

生成静态库test.a

使用静态库

Linux下使用静态库,只需要在编译的时候,指定静态库的搜索路径(-L选项)、指定静态库名(不需要lib前缀和.a后缀,-l选项)。

g++ test.cpp -L. -Itest

l-L:表示要连接的库所在目录

l-l:指定链接时需要的动态库,编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.a或.so来确定库的名称。

创建动态库(.so)

生成动态库

g++ -shared -fPIC  test.cpp -o libtest.so

使用动态库

cp libtest.so /usr/lib

g++ TestDynamicLibrary.cpp -L. -ltest -o test

./test

vs2013创建动态库

(1)新建win32控制台应用程序

(2)应用程序类型选择静态库

(3) stdafx.h 头文件写函数声明, stdafx.cpp写函数定义

(4)右键项目,生成。在Debug目录下生成静态库。

测试静态库:

(1)新建win32控制台应用程序

(2)选择空项目

(3)添加源文件,写c++程序。

(4)将静态库文件夹下的stdafx.h和targetver.h文件和静态库lib文件三个都拷入到现在工程下的工程名目录下

(5)

#include #include"stdafx.h" //头文件

#pragma comment (lib,"TestStaticLibrary")//添加静态库

using namespacestd;intmain()

{

cout<< jiafa(1, 2) <

cout<< jianfa(1, 2) <

}

vs2013动态库

(1)新建win32控制台应用程序

(2)应用程序类型选择动态库

(3) stdafx.h 头文件写函数声明

extern __declspec(dllexport) int add(int a, int b);

stdafx.cpp写函数定义

int add(int a, intb)

{return a +b;

}

(4)右键项目,生成。在Debug目录下生成静态库。在debug目录下,可以看见生成一个dll和lib

测试:

(1)新建win32控制台应用程序

(2)选择空项目

(3)添加源文件,写c++程序。

(4)将静态库文件夹下的stdafx.h和targetver.h文件和静态库lib文件三个都拷入到现在工程下的工程名目录下

(5)TestDLL.dll拷贝到debug文件夹下,和exe在同一目录,不然运行时候找不到动态库

#include #include"stdafx.h" //头文件

#pragma comment (lib,"TestDLL.lib")//添加静态库

using namespacestd;intmain()

{

cout<< add(1, 2) <

}

原文:http://www.cnblogs.com/crazybird123/p/7807033.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值