summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example-cross-compile-cpp/.gitignore5
-rw-r--r--example-cross-compile-cpp/Makefile17
-rw-r--r--example-cross-compile-cpp/lin.cc5
-rw-r--r--example-cross-compile-cpp/win.cc6
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);
+}