[CMake] osx-10.5 ranlib vs ranlib -c vs libtool
Bob Tanner
tanner at real-time.com
Sat Jun 6 15:53:27 EDT 2009
On 2009-06-06 08:07:01 -0500, Bill Hoffman
<bill.hoffman at kitware.com> said:
> Bob Tanner wrote:
>> On 2009-06-05 17:37:11 -0500, Bob Tanner
>> <tanner at real-time.com> said:
>>
>>> First question, how to I add "-c" to ranlib evocation?
>>
>> Sorry for the follow-up to my post, but here is the work-around I used.
>>
>> IF (UNIX)
>> MESSAGE (STATUS "Unix")
>> IF (APPLE)
>> SET(CMAKE_C_CREATE_STATIC_LIBRARY
>> "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
>> "<CMAKE_RANLIB> -c <TARGET> "
>> )
>> ENDIF (APPLE)
>> ENDIF (UNIX)
> I am confused about why you have to do this. What is an internal
> library? We create and use static libraries all the time on Mac OSX
> and never have this problem???
Internal library meaning static library used only internally to the
netrek server code base.
If I do not 'ranlib -c' on my libnetrek.a I get non_lazy_ptr link
errors for every executable that links to my libnetrek.a.
http://software.intel.com/en-us/articles/intelr-fortran-compiler-for-mac-os-non_lazy_ptr-unresolved-references-from-linking/
Explains
why this is happening and make references on how to fix the issue.
But changing ranlib to "ranlib -c" this resolved all my linking problems.
OSX 10.5.7?
gcc-4.2?
Xcode-3.1.2
I'm running cmake out of darwin ports. My port list is below.
bzip2 @1.0.5_2 (active)
cabextract @1.2_0 (active)
cmake @2.6.4_0 (active)
gdbm @1.8.3_1 (active)
gmp @4.3.1_0 (active)
ipcalc @0.38_0 (active)
libnet11 @1.1.2.1_1 (active)
libpcap @1.0.0_0 (active)
lzo2 @2.03_0+darwin_9 (active)
mtr @0.75_0 (active)
ncurses @5.7_0 (active)
ncursesw @5.7_0 (active)
netcat @1.10_2 (active)
nmap @4.76_0 (active)
openssl @0.9.8k_0 (active)
openvpn2 @2.0.9_1 (active)
p7zip @4.65_0 (active)
pcre @7.9_0 (active)
pkgconfig @0.23_1 (active)
readline @6.0.000_1 (active)
tcptraceroute @1.5beta7_1 (active)
zlib @1.2.3_2 (active)
As a side note, another open source project, crossfire, experiences the
same problem when I attempt to link to a static library when not
'ranlib -c''d.
--
Bob Tanner <tanner at real-time.com> | Phone : (952 943-8700
http://www.real-time.com, Linux, OSX, VMware | Fax : (952)943-8500
Key fingerprint = F785 DDFC CF94 7CE8 AA87 3A9D 3895 26F1 0DDB E378
More information about the CMake
mailing list