help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: macosx mex error: failed to install .mex file function `myhello'


From: Thomas Treichl
Subject: Re: macosx mex error: failed to install .mex file function `myhello'
Date: Wed, 03 Jan 2007 10:27:35 +0100
User-agent: Thunderbird 1.5.0.9 (Macintosh/20061207)

John W. Eaton schrieb:
On  2-Jan-2007, Thomas Treichl wrote:

| Then I compile myhello.c (cf. my last email) and enter octave.
| | octave:1> myhello
|      I'm in function octave_dyld_shlib::open, file.c_str() is:
|        /Users/Thomas/Developement/octave/examples/myhello.mex
|      I'm in function octave_dyld_shlib::open, returnCode is: 1
|      I'm in function octave_dyld_shlib::open, handle is: 0x102d70
|      I'm in function octave_dyld_shlib::open, isOpen is: 1
|      I'm in function octave_dyld_shlib::search, handle is: 0x102d70
|      I'm in function octave_dyld_shlib::search, sym_name.c_str() is: 
mexFunction
|      I'm in function octave_dyld_shlib::search, symbol is: 0
|      I'm in function octave_dyld_shlib::search, handle is: 0x102d70
|      I'm in function octave_dyld_shlib::search, sym_name.c_str() is: 
mexfunction_
|      I'm in function octave_dyld_shlib::search, symbol is: 0
|      error: failed to install .mex file function `myhello'
|    octave:1>
| | So it seems to me as function NSLookupSymbolInModule always returns a NULL | pointer - no problem from octave, but a problem from the macosx-libs?

What is the output of running
nm myhello.mex

?  Is the mexFunction name mangled in some way that Octave is not
expecting (it only checks for mexFunction and mexfunction)?

jwe


Aha, I see, never tried the "nm" command. This is my output:

  macmini:~/Developement/octave/examples Thomas$ nm myhello.o
  0000006a S ___i686.get_pc_thunk.bx
  00000000 T _mexFunction
           U _mxCreateDoubleMatrix
           U _mxGetPr

  macmini:~/Developement/octave/examples Thomas$ nm myhello.mex
  00000ef1 t ___cxa_atexit
  00000000 t ___dso_handle
  00000fea s ___i686.get_pc_thunk.bx
  000008f0 t __dyld_func_lookup
           U __keymgr_get_and_lock_processwide_ptr
           U __keymgr_get_and_lock_processwide_ptr_2
           U __keymgr_set_and_unlock_processwide_ptr
  00000000 t __mh_bundle_header
  00000b35 t _add_routine
  00000f1e t _atexit
  00000d5b t _atexit_common
           U _calloc
  00000953 t _check_cxa_atexit
  0000090f t _cxa_atexit_check_1
  000008fe t _cxa_atexit_check_2
  00000c8a t _cxa_atexit_wrapper
           U _dlopen
           U _dlsym
           U _free
  000009c8 t _get_globals
           U _malloc
  00000f54 T _mexFunction
           U _mxCreateDoubleMatrix
           U _mxGetPr
  00000bce t _run_routines
  00001000 d dyld__mach_header
  000008dc t dyld_stub_binding_helper

So octave checks for "mexFunction" and "mexfunction_" but "_mexFunction" would be the right name. How can I work around this John?

Thomas


reply via email to

[Prev in Thread] Current Thread [Next in Thread]