zig ccによるCのクロスコンパイル
ZigをポータブルなCコンパイラとして使います
「zig ccによるCのクロスコンパイル」はCoddyKit上の無料Zig Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはZig Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Zig Academyコースには全4レッスンが含まれています。
ZigはCコンパイラでもある
Zigコードだけでなく、ツールチェーンには完全なCコンパイラも含まれています。zig ccコマンドは、gccやclangの代わりにそのまま使用できます。
zig cc main.c -o appCもクロスコンパイルする
同じ-targetフラグがCにも使えます。どのホストからでもzig ccを使って、別のプラットフォーム向けにCプログラムをビルドできます。
zig cc -target aarch64-linux-musl main.c -o appそのまま動作する理由
Zigには多くのターゲット向けのlibcソースとヘッダーが含まれているため、別のクロスツールチェーンをインストールしなくてもCをクロスコンパイルできます。
そのまま置き換えられる
CC変数を想定しているビルドシステムでは、zig ccを直接使用できます。CCを設定すれば、既存のプロジェクトをZig経由でコンパイルできます。
CC="zig cc" make通常のCフラグを渡す
使い慣れたコンパイラフラグもそのまま適用できます。clangやgccの場合と同じように、-O2、-I、-lを追加します。
zig cc -O2 -Iinclude main.c -o appzig c++もある
C++ソースには、対応するドライバーを使います。zig c++は、同じクロスコンパイル機能でC++をコンパイルしてリンクします。
zig c++ -target x86_64-windows main.cpp -o app.exeターゲットごとにlibcを選ぶ
ABIフィールドでCライブラリを選択できます。移植性の高い静的libcにはmuslを、glibcシステムとの互換性にはgnuを使います。
CとZigを組み合わせる
zig ccでCのオブジェクトをコンパイルし、Zigプログラムにリンクできます。両方の言語で1つのコンパイラを共有できます。
CIに最適
ターゲットごとのツールチェーンが不要なので、ビルドパイプラインをシンプルに保てます。1つのZigインストールで、提供するすべてのプラットフォームをターゲットにできます。
同じキャッシュのメリット
zig ccはZigのビルドキャッシュを再利用するため、Cの再コンパイルが高速になり、実行のたびに同じ処理を繰り返す必要がありません。
内部で使われるClangを確認する
内部では、zig ccが組み込みのClangを動かしています。そのため、詳細出力や標準的な診断メッセージは、LLVMを使う人には見慣れたものになります。
zig cc -v main.c -o appクイックチェック
既存のCプロジェクトでzig ccが便利な理由を思い出してください。
まとめ
zig ccはそのまま置き換えて使えるCコンパイラであり、Cをクロスコンパイルでき、通常のフラグを受け付け、追加のツールチェーンを必要としないことを学びました。⚙️
よくある質問
「zig ccによるCのクロスコンパイル」レッスンは無料ですか?
はい。「zig ccによるCのクロスコンパイル」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Zig Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Zig Academyコースには全4レッスンが含まれています。
「zig ccによるCのクロスコンパイル」で何を学びますか?
ZigをポータブルなCコンパイラとして使います ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Zig Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのZig Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「zig ccによるCのクロスコンパイル」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このZig Academyレッスンでコードを書いて実行できますか?
はい。すべてのZig Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ターゲットと-targetトリプル
- Linux、macOS、Windows向けのビルド
- zig ccによるCのクロスコンパイル
- 静的バイナリとmusl