问题标签 [dmd]
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.
c - 为现有 C 库编写 D (D2) 绑定
我真的很想深入了解 D,但缺乏良好的库支持确实阻碍了我。因此,我想为我想使用的现有 C 库创建一些 D 绑定。我从来没有做过任何绑定,但它看起来也不是太难。
我打算为 D2 做这个(不是专门为 D1 做的,但如果两者都适用,那就更好了)。我正在使用 DMD2 编译器。
- 应该使用哪些约定(我注意到版本语句、别名和常规常量/函数定义)?
- 绑定到静态库(并因此链接到)或动态库之间有什么区别?绑定有区别吗?
- 对于绑定静态库,DMD 编译器似乎不接受 .a 或 .o 文件,只接受 .lib 和 .obj。这是否意味着这些库必须使用 DMC 编译器(而不是 GCC 编译器)编译,然后通过 DMD 编译器链接?
如果有人有一个非常简短的例子来说明如何完成绑定,我会非常满意。目前我可以用 DMC 编译 C 代码,链接目标文件并从 D 中的 C 代码运行函数。但是,大多数 C 库只需要包含头文件并且需要在 C 中链接。我不确定如何制作为此工作的绑定......
谢谢!
d - D 编程语言中的“收益回报”等价物是什么?
这是一个简单的 C# 生成器。
如何在Digital Mars D 中编写类似的生成器?
(问题是关于产量回报声明)
谢谢!
更新。那很有意思。由于我只是在生成一个数学序列,因此使用递归可能是一个不错的选择。
d - std.algorithm.filter!() 模板有两个参数而不是一个?
这是一个例子:
现在我希望能够参数化谓词,例如
这个片段显然不会编译,正弦过滤器!()的谓词只接受一个参数。有没有办法克服这个限制而不诉诸良好的 for/foreach 循环?
openssl - 在 D 中使用 OpenSSL 库
我在 Ubuntu 10.04 上使用带有 dmd+tango 包的 OpenSSL 库时遇到问题。我已经编译了 OpenSSL 1.0.0d。我有文件:
- /usr/local/ssl/lib/libssl.a
- /usr/local/ssl/lib/libcrypto.a
所以,我像这样使用它们:
$ dmd myfile.d -L/usr/local/ssl/lib -L-lssl -L-lcrypto
错误是:
我也用 OpenSSL 0.9.8r 试过这个。我不知道 :/
我可以生成 ssl 证书,所以我假设 OpenSSL 工作正常。
请帮我。
d - 为什么 readf 不返回值?
根据文档,readf
应该返回一个uint
. 但即使是这个简单的例子也无法编译:
你好ð
错误信息:
我在这里错过了什么吗?
我正在使用 dmd (Digital Mars D) 编译器 v2.050。
dll - 使用 D1 和 dll 会出现什么问题?
如果 c++ 程序调用该 dll 并且该 c++ 程序是多线程的,那么使用 dmd 编译器 (D1) 编译的 dll 会出现什么问题?
exception - d 编程语言:标准输入问题或误解?
这是一个简单的程序,它从标准输入读取行并将它们输出到标准输出。
我正在使用 Windows DMD 编译器 v2.052。
如果我做 :type file.txt | test.exe
该程序将单词“test”附加到 file.txt 的每一行并将它们输出到控制台。
但是我最后一直收到错误:
std.stdio.StdioException@std\stdio.d(2138): Bad file descriptor
也许我错过了什么?它让我疯狂!:)
gcc - 如何在 Ubuntu 上使用 DSFML2 和 D2 解决链接器错误?
我正在运行带有 DMDv2.052 的 64 位 Ubuntu Linux,试图让应用程序与 DSFML2 一起工作,但我一直遇到链接器错误。
我使用共享库 + 发布版本构建了 SFML 和 CSFML 库,并安装了它们,然后像这样构建 DSFML 绑定:
尝试构建项目以使用它们时,出现以下错误:
有人可以帮忙吗?我无法让它工作。
d - D2:switch语句和变量
在“The D Programming Language”一书中,我看到以下内容:
通常
case
表达式是编译时常量,但 D 也允许 variables,并保证词法顺序评估直到第一个匹配。
代码:
结果:
错误:大小写必须是字符串或整数常量,而不是 foo
怎么了?
PS。我使用 DMD32 D 编译器 v2.053
javascript - 构建 tangobos 以使用 DMDScript / 让 ECMA 脚本与 D1-Tango 一起使用
我正在尝试在我的 win32 D1-Tango 设置上安装DMDScript-tango 。我使用的版本是0.99.9 Kai bundle。
当我尝试构建它时,我收到以下错误(以及其他错误)
看起来它仍然依赖于一些 phobos 代码 - 但由于 DMDScript 源提到了 tangobos,我想我必须安装它才能使 DMDScript 工作。
从我读到的内容来看,Tangobos 这些天似乎与探戈捆绑在一起,但我似乎无法让它工作。我不得不假设该页面已过时,并且 tangobos 实际上并没有随 0.99.9 捆绑包一起提供。
所以,我想我会从 svn.dsource.org 获取最新的 tangobos,但是当我尝试构建它时,我得到了这个错误:
我对那些链接器错误一无所知。所以我不知道该怎么做才能解决这个问题。您可以在此处查看 dsss.conf。
所以,我的问题是:
- 有谁知道如何处理该链接器错误?
- 我是不是走错了路?有没有更简单的方法在 D1 中安装 ECMA/JavaScript 脚本引擎?
提前致谢!