On Dec 14, 2013, at 7:27 PM, Max Leske <[email protected]> wrote: Did you check that the library has benn compiled with a C compiler? C++ name mangling doesn’t work with NB.
but name is been resolved :( Another thing you can do is to attach gdb to the image and break on the gtk_init call. That way you can see at what stage approximately the error occurs. yeah... I expect to avoid that, unless I have no other choice :) Esteban On 14.12.2013, at 17:11, Esteban Lorenzano <[email protected]> wrote: Hi, I'm trying to create some stuff with Gtk3, and because of it I have a call to gtk_init using NB-FFI. The call is like this: gtkInitArgC: argc argV: argv <primitive: #primitiveNativeCall module: #NativeBoostPlugin error: errorCode> ^ self nbCall: #( void gtk_init ( int *argc, char ***argv ) ) and well, I have a GtkLibrary copied from CairoLibraryLoader who loads the library. system is 64bits, but Gtk3 libraries are "universal" compiled (it has both formats, i386 and x86_64 inside). GtkLibrary loadGtkLibrary actually loads the library (it answers a pointer to it) and in fact, following the stack track NB is resolving correctly gtk_init symbol... Now, the problem is that a call to self gtkInitArgC: 0 argV: 0. fails... with this stack trace: NBFFICallout class>>signalError: NBFFICallout class(NBNativeCodeGen class)>>handleFailureIn:nativeCode: NBFFICalloutAPI>>function:module: GtkApplication(Object)>>nbCall: GtkApplication>>gtkInitArgC:argV: NBFFICallout class(NBNativeCodeGen class)>>retrySend: GtkApplication>>gtkInit GtkApplication>>initialize GtkApplication class(Behavior)>>new MarsApplication>>platformApplication MarsApplication>>stop MarsApplication>>start UndefinedObject>>DoIt OpalCompiler>>evaluate SmalltalkEditor>>evaluateSelectionAndDo: SmalltalkEditor>>evaluateSelection PluggableTextMorph>>doIt in Block: [ textMorph editor evaluateSelection ] PluggableTextMorph>>handleEdit: in Block: [ result := editBlock value ] TextMorphForEditView(TextMorph)>>handleEdit: PluggableTextMorph>>handleEdit: PluggableTextMorph>>doIt SmalltalkEditor class>>buildSmalltalkEditorKeymappingsOn: in Block: [ :morph | morph doIt ] BlockClosure>>cull: BlockClosure>>cull:cull: BlockClosure>>cull:cull:cull: KMCategoryBinding>>completeMatch:buffer: KMKeymap>>notifyCompleteMatchTo:buffer: in Block: [ :l | l completeMatch: self buffer: aBuffer ] Array(SequenceableCollection)>>do: KMKeymap>>notifyCompleteMatchTo:buffer: KMKeymap>>onMatchWith:notify:andDo: and #signalError: argument (errorCode) is nil. any idea? thanks, Esteban
