| /* 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; |
| } |