問題タブ [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 のみを受け入れます。これは、ライブラリを (GCC コンパイラではなく) DMC コンパイラでコンパイルし、DMD コンパイラを介してリンクする必要があるということですか?
誰かがバインディングがどのように達成されるかの非常に短い例を持っていれば、私はとてもいっぱいになるでしょう. 現在、DMC で C コードをコンパイルし、オブジェクト ファイルをリンクし、D で C コードから関数を実行できます。しかし、ほとんどの C ライブラリは、ヘッダー ファイルのインクルードと、C でリンクする必要があるだけです。そのために機能するバインディング...
ありがとう!
d - Dプログラミング言語で同等の「利回り」とは何ですか?
C# の単純なジェネレーターを次に示します。
Digital Mars Dで同様のジェネレータを作成するにはどうすればよいですか?
(質問はyield returnステートメントについてです)
ありがとう!
アップデート。それは面白い。数学的シーケンスを生成しているだけなので、繰り返しを使用するのが良いオプションかもしれません。
d - std.algorithm.filter!() 1 つではなく 2 つのパラメーターを持つテンプレート?
次に例を示します。
今私は述語をパラメータ化できるようにしたい、例えば
filter!() の述語は 1 つのパラメーターしか受け入れないため、このスニペットは明らかにコンパイルされません。古き良き 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
です。しかし、この単純な例でさえコンパイルに失敗します:
こんにちはD
エラーメッセージ:
ここで何か不足していますか?
dmd (Digital Mars D) コンパイラ v2.050 を使用しています。
dll - D1 と dll を使用すると、どのような問題が予想されますか?
c++ プログラムがその dll を呼び出し、その c++ プログラムがマルチスレッド化されている場合、dmd コンパイラ (D1) を使用してコンパイルされた dll を使用すると、どのような問題が予想されますか?
exception - d プログラミング言語 : 標準入力の問題か誤解か?
以下は、stdin から行を読み取り、stdout に出力する簡単なプログラムです。
Windows DMD コンパイラ v2.052 を使用しています。
私が行った場合 :type file.txt | test.exe
プログラムは、file.txt の各行に「test」という単語を追加し、それらをコンソールに出力します。
ただし、最後にエラーが発生し続けます。
std.stdio.StdioException@std\stdio.d(2138): Bad file descriptor
多分私は何かを逃していますか?それは私を夢中にさせます!:)
gcc - Ubuntu の D2 で DSFML2 を使用してリンカー エラーを解決するにはどうすればよいですか?
DMDv2.052 で 64 ビットの Ubuntu Linux を実行しており、アプリケーションを DSFML2 で動作させようとしていますが、リンカー エラーが発生し続けます。
共有ライブラリ + リリース ビルドを使用して SFML および CSFML ライブラリを構築し、それらをインストールしてから、次のように DSFML バインディングを構築しました。
それらを使用するプロジェクトをビルドしようとすると、次のエラーが発生します。
誰かがこれを手伝ってくれますか? 私はそれを機能させることができませんでした。
d - D2: switch ステートメントと変数
「The D Programming Language」の本には、次のように書かれています。
通常、
case
式はコンパイル時の定数ですが、D では 変数も使用でき、最初の一致まで字句順序の評価が保証されます。
コード:
結果:
エラー: case は、foo ではなく、文字列または整数定数でなければなりません
どうしたの?
PS。DMD32 D コンパイラ v2.053 を使用しています
javascript - DMDScript で動作する tangobo の構築 / D1-Tango で動作する ECMA スクリプティングの取得
win32 D1-Tango セットアップにDMDScript-tangoをインストールしようとしています。私が使用しているバージョンは0.99.9 Kai bundleです。
ビルドしようとすると、次のエラーが発生します(特に)
まだ一部の phobos コードに依存しているようですが、DMDScript のソースには tangobos が記載されているため、DMDScript を機能させるにはそれをインストールする必要があると考えました。
私が読んだことから判断すると、タンゴボスは最近タンゴにバンドルされているようですが、動作させることができないようです。このページは古く、tangobos には実際には 0.99.9 バンドルが付属していないと仮定する必要があります。
そこで、svn.dsource.org から最新の tangobo を取得しようと考えましたが、ビルドしようとすると、次のエラーが発生します。
私はこれらのリンカ エラーについてはまったく無知です。そのため、それを修正するために何をすべきかわかりません。dsss.conf はこちらで確認できます。
だから、私の質問は次のとおりです。
- そのリンカエラーについて何をすべきか知っている人はいますか?
- 私はこれを間違った方法で回避していますか?D1 に ECMA/JavaScript スクリプト エンジンをインストールする簡単な方法はありますか?
前もって感謝します!