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 :) cheers, 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 > >
