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