comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: dynamic linking on Mac
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: dynamic linking on Mac [message #76558 is a reply to message #76557] Wed, 15 June 2011 09:04 Go to previous messageGo to previous message
brodzik@nsidc.org is currently offline  brodzik@nsidc.org
Messages: 7
Registered: July 2005
Junior Member
David, thanks for the !MAKE_DLL tip--I would have ignored that myself,
because I always
think of DLLs as a windows-only thing. It got my compilation working,
and I'm (partially)
off and running. Now I can access the state data and the init method
from the C level of
things, but IDL seg faults when I call the method that is the meat of
the C code--the
forward/reverse transform.

I found information about Ronn Kling's book "Calling C and C++ from
IDL"--I'm thinking
of buying it. Can anyone give a short review?

Mary Jo

On Jun 10, 6:08 pm, David Grier <david.gr...@nyu.edu> wrote:
> Hi Mary Jo,
>
> Try
>
> print, !MAKE_DLL
>
> which prints the CCFLAGS and LDFLAGS needed to build a DLL on the
> present architecture.
>
> All the best,
>
> David
>
> On 06/10/2011 07:01 PM, brod...@nsidc.org wrote:
>
>
>
>
>
>
>
>> Hi, all,
>
>> Has anyone running IDL on a Mac successfully linked to a shared C
>> library?
>
>> I've got some code that lets me call the routines in a C library from
>> IDL.  It's name is call_grids.c and everything works fine on my linux
>> system.  I'm trying to port the whole thing from Suse linux to a Mac,
>> and I'm having trouble on the linker step for call_grids.so.  I've
>> already compiled and tested the original C library (which is
>> libmapx.a), it has some command-line programs that call it, and they
>> are working fine.
>
>> But for call_grids.c, in my Linux options, my makefile sets CFLAGS to -
>> fPIC and C_LD_FLAGS to -shared, but I found out pretty quickly that
>> Darwin's ld doesn't support "-shared".  I found one helpful site on-
>> line that suggested that the Darwin equivalent of '-shared' is '-
>> bundle -flat_namespace -undefined suppress', but that returns this
>> problem:
>
>> ld -bundle -flat_namespace -undefined suppress -o call_grids.so
>> call_grids.o -L/Users/mj/lib -lmapx -lm
>> ld: symbol dyld_stub_binding_helper not defined (usually in crt1.o/
>> dylib1.o/bundle1.o) for inferred architecture x86_64
>> make[1]: *** [call_grids.so] Error 1
>
>> Then I started researching these ld switches and found several
>> alternatives to -bundle, including -dynamic, -dylib, -dylinker.  My
>> trouble is that I'm not sure what it is I should be *trying* build,
>> here.  Going back to the suse ld man page, it just says -shared
>> "builds a shared library".  Well, I guess I knew that.  What I don't
>> know is what that's supposed to look like on a Mac.
>
>> Can anyone offer me some tips on what I should be trying to create?
>
>> Thanks,
>> Mary Jo
[Message index]
 
Read Message
Read Message
Read Message
Previous Topic: Re: Histrogram plot in IDL using cgHistoplot
Next Topic: Histogram with two distributions

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 19:05:47 PDT 2025

Total time taken to generate the page: 0.72000 seconds