我是在Windows中使用静态/共享库的新手。请确认我理解正确

时间:2020-06-16 04:11:26

标签: c++ linux windows visual-studio dynamic-linking

一些背景知识---我是一位经验不足的程序员,我刚刚在一家使用有限的开发平台来创建触摸屏酒吧/赌场游戏的小型企业中开始了我的第一笔编码工作。该IDE旨在在Ubuntu中使用,但是出于某些原因 我们的一些开发人员使用Windows端口。

无论如何,我编写了一个插件(共享库, .so 文件),使我们的Linux程序员可以使用Fluidsynth API(软件合成器)来播放MIDI文件。我正在尝试为Windows程序员编写等效的 .dll 文件,但是我对环境不太熟悉。

我已经花了一些时间来使用Microsoft Visual Studio,并且我想确保在对其进行深入研究之前,对其静态/动态库和对象文件的工作方式有基本的了解。这是我的一些印象,请确认我的菜鸟自我在正确的轨道上。

1)Windows中的 .obj 文件等同于Linux中的 .o 文件。

2)Windows中的 .lib 文件等同于Linux中的 .a 文件(静态库)。

3)Windows中的 .dll 文件与Linux中的 .so (共享/动态库)等效。

4)链接对象/库时,并非严格要求已编译的标头。

5)与 .dll 链接需要使用某些导入库 .lib ,在Linux中不是这种情况。为什么?

6)VS中的“发布”版本为我提供的功能与“调试”版本相同,但减去了一些调试功能,从而使前者的体积更小。

谢谢!

0 个答案:

没有答案