首页 > 解决方案 > 我不熟悉在 Windows 中使用静态/共享库。请确认我理解正确

问题描述

一点背景 --- 我是一个相当缺乏经验的程序员,我刚刚在一家使用非常有限的开发平台创建触摸屏酒吧/赌场游戏的小企业开始了我的第一份编码工作。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 中的“发布”版本为我提供了与“调试”版本相同的功能,但减去了一些调试功能,这些功能使前者的尺寸更小。

提前致谢!

标签: c++linuxwindowsvisual-studiodynamic-linking

解决方案


推荐阅读