問題タブ [zig]

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.

0 投票する
1 に答える
40 参照

unix - コンパイラはバージョンを出力しますが、ビルド時にフリーズします

このチュートリアルに従おうとしています。MacOS Catalina 10.15.3 を 13 インチ Macbook pro で 2016 年から実行しています。Mac 用の最新リリースをこちらからダウンロードしました。ファイルを解凍し、zig 実行可能ファイルを移動しました (ただし、残りの内容は移動しません)。フォルダ) を usr/local/bin にコピーして、どこからでも呼び出せるようにしました. これで、どこで実行しても、期待どおりに呼び出しzig versionて出力を取得できます. ただし、次のような0.6.0+352976ed2ことをしようとすると、フリーズして何もしません.zig run main.zigzig build main.zig

チュートリアルでは、zig 0.6.0 をサポートしていないと言っています。しかし、私はこれがまだ機能すると想定していました。チュートリアルでは、0.6.0 をサポートしていないと記載されていたときに、印刷方法が変更されるなどのことについて言及していました。明らかに、これは間違った仮定である可能性がありますが、なぜこれがうまくいかないのかわかりません。また、zig はまだ若いため、入門用のチュートリアルが不足しているため、他にどこを見ればよいかわかりません。

以前に自作で動作するように zig 0.6.0 を取得しましたが、コンパイラの実験的なブランチに貢献したり試したりする可能性があるため、任意の zig 実行可能ファイルを実行できるようにしたいと考えています。

0 投票する
1 に答える
971 参照

zig - C ライブラリを作成する zig

クローズ- エントリの最後を参照してください

zig 言語を使用して C 呼び出し可能なライブラリを作成したいと考えています。Zig のドキュメントにある 2 つの例から始めることにしました。「C ライブラリのエクスポート」および「オブジェクト ファイルの混合」。いずれの場合も、関連する 3 つのファイルを (0.6.0 ドキュメントから) コピーしました。

  • test.c という名前の AC ファイル、
  • それぞれ mathtest.zig (C ライブラリのエクスポートの例) および base64.zig (オブジェクト ファイルの混合の例) という名前の zig ファイル、および
  • build.zig ファイル。

どちらの例もビルドに失敗します。

C ライブラリのエクスポートの例が test.c のコンパイルに失敗し、mathtest.h が見つからないというメッセージが表示される

Mixing Object Files の例では、base64.h が見つからないため、test.c のコンパイルに失敗します。

C ライブラリのエクスポートの例の 3 つのファイルを次に示します。

mathtest.zig

test.c

build.zig

エラーメッセージの一部

私のシステムで名前の付いたファイルが見つからないmathtest.hので、test.c ファイルの主張に反して、生成されていないと思います。

何が欠けていますか?感謝して受け入れた助け。

回答とその他の質問

-femit-hオプションを発見しました:

mathtest.hファイルを作成してから

成功します。

build.zig私はさらに、ファイル内のこれらの行を発見しました

それを保証します

ドキュメントに示されているように、成功し、回答1379が生成されます。

しかし - build.zig ファイルへのこの mod は、mathtest.h実行後にファイルを残しません。

これが、Zig コードから使用可能な C ライブラリを生成するための最後のハードルのようです。

パズルの最後のピース

追加すると

build.zigファイルに。mathtest.hand (または .so) ファイルはディレクトリlibmathtest.aに保存されますbuild

これを閉じる

0 投票する
1 に答える
276 参照

segmentation-fault - Zig で X11 C ライブラリを使用するとセグメンテーション違反が発生します

Zig で X11 を使用しようとしています。例としてhttps://rosettacode.org/wiki/Window_creation/X11#Xlibのコードを使用して、この最小限の例を思いつきました:

Zig の最新バージョン (0.6.0) でコンパイル:

実行時に次のエラーが発生します。

0 投票する
1 に答える
675 参照

unicode - Zig で UTF-16 文字列を出力するにはどうすればよいですか?

UTF-16 文字列構造をコーディングしようとしましたが、標準ライブラリはunicodeモジュールを提供していますが、u16. 私はこれを試しました:

これは以下を出力します:

[]u16Unicode 文字列 ( ) を非 Unicode 文字列 ( ) に変換せずに印刷する方法はあり[]u8ますか?

0 投票する
1 に答える
239 参照

struct - Zig 0.7.0 の C 関数からの値によって返される構造体へのアクセス

Zig 0.7.0 の linux-x86_64 で @cImport を介して Zig にインポートした C コードを次に示します。Zig で構造体を直接作成するとstruct Point、期待どおりに機能しますが、getPointメソッドから値で構造体を返すと、データが正しくありません (以下の「出力」を参照)。私は何か間違ったことをしていますか、それともこれはバグですか?

  • ポイント.h
  • point.c
  • main.zig
  • 出力
  • build.zig