原文
大家好!
dub
是构建D的主要
方式.
处理共享库
时.特别是在窗口
上,如何整合共享库
到你的项目中?因为对插件开发,它是超级强大的工具:
对dub.json
配置,先构建
共享库:
"name": "shared_lib",
"targetType": "dynamicLibrary",
"dflags-ldc": [
"--link-defaultlib-shared"
]
这里--link-defaultlib-shared
就是秘密
.它使得在主D程序和共享库
间共享D运行时
,这样,就可以:
1,单个GC
2,可在这些运行时
间共享错误(可在它们之间试/抓
)
3,更多调试信息
如果使用共享库
,有依赖项且在窗口
上,现在需要特殊
标志来避免
错误,这是示例:
"name": "shared_lib",
"targetType": "dynamicLibrary",
"dependencies": {
"my_dependency": {
"path": "libs/my_dependency"}},
"dflags-ldc": [
"--link-defaultlib-shared"
],
"lflags-windows-ldc": [
"/WHOLEARCHIVE:my_dependency"
]
可见新的/WHOLEARACHIVE
链接器标志,后跟my_dependency
依赖项.这是每个
依赖项所必需的.
基本上,在共享库
中包含库时,会去掉符号
.但不会阻止你使用共享库
.