0Pricing
Zig Academy · レッスン

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 app

Cもクロスコンパイルする

同じ-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 app

zig 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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ターゲットと-targetトリプル
  2. Linux、macOS、Windows向けのビルド
  3. zig ccによるCのクロスコンパイル
  4. 静的バイナリとmusl
← Zig Academyに戻る