如何写出附带静态库的可移植代码
本篇博客是对上篇博客C&&C++如何互相调用(静态库)
的补充,本篇博客讲述如何写出可移植的程序,即你把自己的文件打包发给别人,别人也可以正常运行。
这里就不介绍如何简历静态库如何包含静态库了,上面有上文链接哈。
我们现在有两个C++文件
然后我们现在用c去调用这两个函数
在之前我们包含静态库是要带上静态库所在目录
还要带上依赖项
但是现在我们用这个 #pragma comment(lib, "test_5-6_lib.lib")
就可以不用那么麻烦了,但是注意,生成静态库还是要的哈,别库也丢了
我们之前是带上的静态库的绝对路径去引的头文件
但是在别人的程序中是没有你的这个目录的,所以程序是不可移植的
所以我们现在为了可移植,要做两件事情
一:把静态库所需的头文件和静态库复制到我们当前需要调用静态库的文件夹当中
二:带上 #pragma comment(lib, "test_5-6_lib.lib")
这也很好理解,前面的参数是静态库,后面是我们的静态库文件名
然后程序就可移植了哈。
当然有小伙伴可能会问,为什么只带声明,那定义呢?
别把自己绕了,静态库里面就有定义哈。
最后关于 #pragma comment
首先#pragma 它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。
#pragma comment 的作用就是链接文件,文件可以是compiler,exestr,lib 和 linker文件。
这里#pragma comment(lib, "test_5-6_lib.lib") 的含义是:链接 test_5-6_lib.lib 这个库。
效果等同于在工程设置里面加上这个库,操作起来比较方便。
PS:他的用法还有很多哈,这里就讲这一种了,想了解的可以自己去查询哈。
最后的最后,创作不易,希望读者三连支持💖
赠人玫瑰,手有余香💖