一些背景知识---我是一位经验不足的程序员,我刚刚在一家使用有限的开发平台来创建触摸屏酒吧/赌场游戏的小型企业中开始了我的第一笔编码工作。该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中的“发布”版本为我提供的功能与“调试”版本相同,但减去了一些调试功能,从而使前者的体积更小。
谢谢!