summaryrefslogtreecommitdiff
path: root/demo/embedding_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'demo/embedding_test.c')
-rw-r--r--demo/embedding_test.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/demo/embedding_test.c b/demo/embedding_test.c
new file mode 100644
index 0000000..ede8cb9
--- /dev/null
+++ b/demo/embedding_test.c
@@ -0,0 +1,43 @@
+/* There are two options:
+
+ =====1=====
+
+ Link this program with _embedding_test.so.
+ E.g. with gcc:
+
+ gcc -o embedding_test embedding_test.c _embedding_cffi*.so
+
+ You must then run the executable with the right command
+ (LD_LIBRARY_PATH on Linux), otherwise it won't find the
+ _embedding_cffi*.so:
+
+ LD_LIBRARY_PATH=. ./embedding_test
+
+ There are platform-specific options to gcc to avoid needing
+ that, too. Linux:
+
+ gcc -o embedding_test embedding_test.c _embedding_cffi*.so \
+ -Wl,-rpath=\$ORIGIN/
+
+ =====2=====
+
+ Compile and link the _embedding_test.c source code together with
+ this example (e.g. with PyPy):
+
+ gcc -o embedding_test embedding_test.c _embedding_cffi.c \
+ -I/opt/pypy/include -pthread -lpypy-c
+*/
+
+#include <stdio.h>
+
+extern int add(int x, int y);
+
+
+int main(void)
+{
+ int res = add(40, 2);
+ printf("result: %d\n", res);
+ res = add(100, -5);
+ printf("result: %d\n", res);
+ return 0;
+}