2309d用dub使用共享库

原文
大家好!
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依赖项.这是每个依赖项所必需的.
基本上,在共享库中包含库时,会去掉符号.但不会阻止你使用共享库.

猜你喜欢

转载自blog.csdn.net/fqbqrr/article/details/132684339