如何在DEV下创建属于自己的静态和动态库呢?(2018.6.6)
一、新建项目:
二、在库里面加入你的函数:(编译)
三、编译后到工程目录下查看是否产生了后缀位.a的文件(与你的项目名是一致的)
四、使用这个静态链接库:
1.首先新建一个.h文件到你的项目里面,.h主要是声明你刚才加入库的函数:
2.接下来是比较关键的一步,将这个.h文件放到DEV的include文件目录下:
3.接下来是调用你的库了,需要新建一个控制台程序,注意不是空项目了!
命名什么的随意。
4.在控制台项目导入你的静态库:
先不要着急编译!会报错,因为还没有跟你的静态库链接呢。
5.链接你的静态库:
右键项目属性--->参数-->添加库或者对象
选择你刚才生成的.a文件:
最后一步编译运行看看吧:
非常完美!!!
如何生成属于自己的动态库呢?
不难,就是生成dll文件。
一、新建一个dll工程:(6.7号更新,需要改为C项目)
建好之后发现给了两个文件,很人性化。我们只需将自己的函数在.h文件声明一下就可以了。
二、将自己的函数加入动态库:
1.首先在dll.h里面加入你的函数:
2.实现你的函数:
(仿照那个hellowrold)
3.好了现在可以编译看看了。编译成功后,需要到工程目录下找到2个文件:
.a和.dll文件就是我们需要的,其它的别管它。
三、测试我们的动态库:
1. 老规矩,新建控制台程序:(不放图了,懒。)
需要注意的是最好将这个工程跟.a和.dll文件放在同一个目录下。
2. 编写测试的cpp:
说一下获取dll地址那,最好把测试dll这个项目跟dll文件在同一目录下,这样括号的参数直接填dll的名字就好,不然就要放dll文件的路径。注意路径的格式,需要将右斜杠改为左斜杠或者两个右斜杠。
3.链接你的动态库:
跟上面一样的。只添加.a文件即可,添加完以后编译运行。
4.运行看看:
完美!
总结:首先这份教程有几点很不好,我建项目的时候使用了中文路径,建议大家不要有这种坏习惯,工程名和存放路径最好都以英文为主。在建dll的时候,我发现C++项目建立的DLL在后面测试的时候,FUNT1指针会访问到非法内存(原因暂时没找到),然后因为这个死活运行不通。后来将dll改为c项目后,完美运行。网上找了很多资料,也没见有人用C++建dll的,如果有,还有劳各位告诉在下。写得不好的地方还请见谅,毕竟小白一枚。