对程序员的一种保护(静态库的使用)

本期介绍

主要介绍:静态库的用处,如何生成静态库,若何反过来使用静态库内的代码。


目录

  • 静态库的用处
  • 生成静态库
  • 如何使用静态库内的代码

静态库的用处

先给大家讲个故事:

  从前有一个程序员A,他业余时间写出了一个非常牛逼的游戏引擎的代码。接着现在程序员A想把自己写的代码卖给一家游戏公司B。所以A就把他所写的游戏引擎的所有代码一股脑的发给了B公司,结果发生B公司找几个他们公司里优秀的程序员把A的代码复刻一份出来,然后说这是我们公司内部编写出来的游戏引擎,并且向法院起诉A偷窃公司核心机密。这时A悔的肠子都青了。

  那该如何避免发生A程序员这种情况呢?其实只要能让B公司能使用到A所写的代码的功能,但无法获取其中有效的源代码就行了,也就是说我A只出售使用权,但不卖源代码。那怎么才能在不暴露源代码的前提下,使得别人能够使用该代码的功能呢?这里我给出一个方法:把源代码编译成静态库,然后再把头文件和静态库一起卖个别人,这样别人就只能使用而不能窃取了。因为源代码编译成静态库后,静态库里的东西已经是二进制代码了,是看不懂的。这样就能起到的保护程序员原创代码不被抄袭的风险。


生成静态库

  现在我假设我写了一个实现加法的源代码 ADD.c 和 ADD.h 。那该如何生成静态库呢?

1.先创ADD函数的定义放在源文件里,然后再编写ADD函数的声明放在头文件里。
对程序员的一种保护(静态库的使用)_第1张图片

2.右击ADD项目的名字,然后会跳出来一个窗口,接着点击属性
对程序员的一种保护(静态库的使用)_第2张图片

3.执行完上一步将会跳出如下窗口,接着点击“常规”,然后点击“配置类型”,然后将“应用程序”改成“静态库”就ok了。
对程序员的一种保护(静态库的使用)_第3张图片

4.按住快捷键:ctrl+f5(开始编译),但会提示错误不过没啥大关系,因为生成的这个ADD.lib的文件不是应用程序所以运行不起来,这个 .lib 文件就是ADD的静态库
对程序员的一种保护(静态库的使用)_第4张图片

5.下面我们去打开看看这所谓的静态库里面存放的到底是什么。
对程序员的一种保护(静态库的使用)_第5张图片
对程序员的一种保护(静态库的使用)_第6张图片
可见是一堆的乱码,所以其实把静态库卖出去也是没什么太大的关系的。


如何使用静态库内的代码

1.先找到之前的静态库lib文件,和ADD的头文件。并把它两拷贝到sum的文件里头。
对程序员的一种保护(静态库的使用)_第7张图片

2.在编译器中添加add的头文件。
对程序员的一种保护(静态库的使用)_第8张图片
对程序员的一种保护(静态库的使用)_第9张图片
对程序员的一种保护(静态库的使用)_第10张图片

3.导入静态库,编译执行成功:
对程序员的一种保护(静态库的使用)_第11张图片
对程序员的一种保护(静态库的使用)_第12张图片
这样就能够使用该静态库中代码的功能了。


对程序员的一种保护(静态库的使用)_第13张图片

这份博客如果对你有帮助,给博主一个免费的点赞以示鼓励欢迎各位点赞评论收藏⭐️,谢谢!!!
如果有什么疑问或不同的见解,欢迎评论区留言欧。

你可能感兴趣的:(经验分享)