问题标签 [dub]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
d - In DUB, how do I conditionally compile code based on optional dependencies?
If I have a DUB-based project with an optional dependency, how to I make it so that some code (be it modules or a version(...){...} block) only gets compiled if the dependency is chosen? Is there a way I can make a version identifier defined based on whether the dependency is present or absent?
I have already read about the "optional" and "default" attributes of the "dependency" tag as documented here. This allows me to define a dependency as optional, but it lacks teeth if I can't version my code to reflect the dependencies chosen.
d - 在配音中,如何将自定义优化级别设置为仅某些文件?
我有一些文件是几兆字节的生成代码。我想只编译优化级别 0 的文件,以及优化级别 3 的所有其他文件。我将如何在 dub 中指定它?
如果生成的代码文件在 -O3 编译,它们永远不会完成编译。
d - 在 ddoc 中生成符号列表(带配音)
我有一个相当大的单个文档页面,我想生成一个符号列表(Jump to:
在 phobos 文档上,请参阅std.compiler),dub --build=ddoc
因为默认情况下它不存在(当前文档页面)
出于显而易见的原因,我不想在代码中包含所有带有链接的符号列表。
我知道使用 ddox 或 javascript 可以做到这一点,但是有没有办法只使用 vanilla ddoc 来做到这一点,因此可以将维护工作保持在最低限度?谢谢
编辑:我想为全局符号和类成员生成一个列表,并将表格放在类附近。
git - 将 DUB 包与现有代码一起使用
我想使用别人编写的 DUB 包库和我自己的一些现有 d 源代码。我现有的源一直在使用 Git,并且没有使用 DUB。
在合并 DUB 包后,我想继续使用相同的 Git 存储库。
我在 dub.json 中尝试了各种设置,但似乎没有一个适用于这种情况。我不想做一个配音初始化,然后手动复制所有内容并链接回我的 Git 存储库。
我最好的选择是什么?
windows - 在 Windows 包 tinyredis-2.1.1 上构建语言 D 错误:未定义标识符 `EWOULDBLOCK` dmd 失败,退出代码为 1
我正在尝试在我的 Windows 机器上构建一个 D 项目。它适用于mac,但在Windows中构建时出现以下错误,我在项目中使用命令“dub”并在某个时候得到它:
任何想法为什么这个 EWOULDBLOCK 变量在 Windows 上无法识别?
这是出现此标识符的 connection.d 部分:
d - 如何从同一个配音文件链接静态库
我有一个dub.json
看起来像的文件:
当我用我构建时,dub --config=myExe
我得到以下链接器错误:cannot find -l/home/myUser/myProject/build/myLib.a
即使库在那里。
如何链接在同一个配音文件中生成的静态库?我认为这是一个很常见的情况(库 + 测试/示例可执行文件),但我找不到任何示例。
c - 将 D 项目编译为库 - 依赖项会发生什么?
好的,这是我的问题:
我有一个工作的 DUB 项目,它产生一个应用程序。我决定在我的dub.json
文件中还需要一个“库”配置:
因此,现在当我使用 构建项目时dub build --config=library
,它会libXXXX.a
在同一目录中生成一个文件。
到目前为止,一切都很好。
我尝试使用这个库(实际上是一个标记为extern "C"
来自测试 C 应用程序的小测试函数)。
因此,我使用编译我的 C 应用程序gcc -c ctest.c
,然后将它们链接在一起,如dmd libMYLIBRARY.a ctest.o
.
现在,问题来了:
在最后一步中,链接器抱怨缺少许多符号- 所有符号都来自外部依赖项(2 个目标文件和几个.a
库),这些符号通常在将项目构建为应用程序时链接。
所以,问题是......我该如何解决这个问题?
我的意思是...我是否应该将我的测试 C 应用程序与所有原始依赖项链接起来(诚然,这不会使库非常便携),或者有什么办法可以解决它,以便任何人都可以使用我的库,只有通过链接反对我的libXXXXX.a
档案?
dub - 如何强制 dub 安装更新版本的软件包?
我一直在尝试使用dub run
较新的版本,但它不起作用,它只是重建旧版本。
dub cache-clean
也不能解决问题。
d - 如何使用 dub 从本地文件系统导入包?
我有一个使用配音的项目。我想使用供应到我的项目中的外部文件作为依赖项。我该怎么做呢?我不想把它放在我的项目source/
目录中。我不想将它添加为配音托管依赖项,但我确实希望能够将import xxx
.
包是这个:https ://github.com/gianm/d-json ,它没有使用dub,也没有dub.json项目文件。
directory - 为什么配音看不到源文件夹?
我想用 dub 运行我的第一个项目。我用 ' 初始化项目dub init sandbox
,然后用dub run
. 但配音是这么说的:
Configuration 'application' of package sandbox contains no source files. Please add {"targetType": "none"} to its package description to avoid building it. Package with target type "none" must have dependencies to build.
我不明白,为什么会发生这种情况,因为我的项目中有源文件夹。这是一个项目树:
- 沙盒
- 来源
- 应用程序.d
- 配音.json
- 来源
还有 dub.json 文件:
编辑:这是一个完整的输出