c++ - 我不熟悉在 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 中的“发布”版本为我提供了与“调试”版本相同的功能,但减去了一些调试功能,这些功能使前者的尺寸更小。
提前致谢!
解决方案
推荐阅读
- python - 类方法中的 Python 多处理池
- firebase - 将用户 uid 传递给 Flutter 中的 Firestore 流查询
- outlook - 有没有办法添加“添加团队会议”而不是添加 Zoom 会议
- android - 使用不同本地化资产时的android包命名
- python - 如何在 html 中将 pandas 数据框显示为表格?
- html - 在 HTML 中将文本与按钮的中心对齐
- python-3.x - pygame 没有可用的音频设备
- python - 数字总和
- django - 带有参数的 GET 请求时 Django url 错误,
- javascript - 使用选项数组填充 bootstrap-select