StephWe had a Skype call yesterday with JB, and we made progress.The problem is I have several libraries, and it was not easy to find because they don���t export symbols and use pkg-config.See you in CambridgeAnnickLe 15 ao��t 2014 �� 12:36, stepharo <stepharo@free.fr> a ��crit :Annick
FFI can call a function but it needs to know where is your library.
Stef
On 13/8/14 15:46, Annick Fron wrote:
I want to interface some pharo code with gstreamer. But gstreamer does not come up with a dylib, it requires compilation flags for instance for a C program.The compile options are :-pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
so if I don���t know which module to use in FFI. If I put��/usr/lib/gstreamer-1.0��I get an error ����module not found����.Since it is handled by pragmas it is very difficult to debug.
AnnickLe 13 ao��t 2014 �� 13:11, Cl��ment Bera <bera.clement@gmail.com> a ��crit :
I don't understand, do you want to compile your library using FFI or do you want to bind a library compiled your way with FFI ?
If you want to compile your library using FFI, then use OSProcess to run the compilation line you showed.
If you want to bind a library compiled your way with FFI, the easiest way is to compile the C files as a dylib with something like:
gcc -shared -m32 -Wall helloworld.c -o helloworld.dylib $(pkg-config --cflags --libs gstreamer-1.0)
(replace .dylib by .so or .dll if you're on windows or on Mac).Then you can bind the dynamic library generated with FFI. I am not sure about the FFI syntax but with NativeBoost it would look like:Integer>>fib4NB
��������<primitive: #primitiveNativeCall module: #NativeBoostPlugin error: errorCode>
��������^ self
����������������nbCall: #( int functionToCall (int self) )
����������������module: '/Users/myName/Desktop/helloWorld.dylib'
Regards,
Clement
2014-08-13 11:55 GMT+02:00 Annick Fron <info@afceurope.com>:
Hi,
I would like to compile a FFI program but the compiling implies compile flags like in the following :
gcc -Wall helloworld.c -o helloworld $(pkg-config --cflags --libs gstreamer-1.0)
How do I do this with FFI ?
Annick