diff options
author | Johannes Stoelp <johannes.stoelp@gmail.com> | 2024-07-05 00:26:27 +0200 |
---|---|---|
committer | Johannes Stoelp <johannes.stoelp@gmail.com> | 2024-07-05 00:26:27 +0200 |
commit | ed6bd7fd5552afc5b8633b77ba13f04da2168a75 (patch) | |
tree | 8e72b682ab079ee5d84d1b1ac2d18bce3a74242b | |
parent | b07a942993efe44e5dbdff8088b0ed87c79fc433 (diff) | |
download | zig-playground-ed6bd7fd5552afc5b8633b77ba13f04da2168a75.tar.gz zig-playground-ed6bd7fd5552afc5b8633b77ba13f04da2168a75.zip |
cross: mini cpp cross compile using zig compiler
-rw-r--r-- | example-cross-compile-cpp/.gitignore | 5 | ||||
-rw-r--r-- | example-cross-compile-cpp/Makefile | 17 | ||||
-rw-r--r-- | example-cross-compile-cpp/lin.cc | 5 | ||||
-rw-r--r-- | example-cross-compile-cpp/win.cc | 6 |
4 files changed, 33 insertions, 0 deletions
diff --git a/example-cross-compile-cpp/.gitignore b/example-cross-compile-cpp/.gitignore new file mode 100644 index 0000000..3fd3ba4 --- /dev/null +++ b/example-cross-compile-cpp/.gitignore @@ -0,0 +1,5 @@ +*.exe +*.exe.obj +*.pdb +*.elf +*.elf.o diff --git a/example-cross-compile-cpp/Makefile b/example-cross-compile-cpp/Makefile new file mode 100644 index 0000000..6b904a3 --- /dev/null +++ b/example-cross-compile-cpp/Makefile @@ -0,0 +1,17 @@ +riscv64: lin-riscv64 +aarch64: lin-aarch64 +mips64el: lin-mips64el + +lin-%: + zig build-exe lin.cc -target $*-linux-musl -lc --name $*.elf + file $*.elf + qemu-$* $*.elf + +win: + zig build-exe win.cc -target x86_64-windows -lc + file win.exe + wine win.exe + +clean: + git clean -fdx . + diff --git a/example-cross-compile-cpp/lin.cc b/example-cross-compile-cpp/lin.cc new file mode 100644 index 0000000..5d70f91 --- /dev/null +++ b/example-cross-compile-cpp/lin.cc @@ -0,0 +1,5 @@ +#include <stdio.h> + +int main() { + puts("hello from cpp main()"); +} diff --git a/example-cross-compile-cpp/win.cc b/example-cross-compile-cpp/win.cc new file mode 100644 index 0000000..b0e701a --- /dev/null +++ b/example-cross-compile-cpp/win.cc @@ -0,0 +1,6 @@ +#include <windows.h> +#include <winuser.h> + +int main() { + MessageBoxA(nullptr, "world", "hello", 0); +} |