[sword-devel] 1.5.2 Compile error: Solaris

Brady Morgan sword-devel@crosswire.org
Tue, 20 Nov 2001 15:05:18 -0800 (PST)


Jacob,

On the surface, it appears your link is not including the zlib: -lz

However...

The zlib usage (compile & link) is controlled by the "zlib" parameter
in the "Makefile.cfg" file.  This parameter is set to either "yes" or "no".

The problem you're seeing _could_ be related to that parameter.

Could it be possible that parameter changed values between building the SWORD
library ("libsword.(a|so)" and building the test programs?

You might want to verify you have access to the zlib, verify the "zlib"
setting in "Makefile.cfg" and do a "[g]make remake".

In my setup, I had access to zlib, had the "zlib" setting in "Makefile.cfg"
set to "yes" and was able to successfully build the test programs after
building the SWORD library.

Hope this helps.

-Brady

On 20-Nov-2001 Jacob Daniel wrote:
> Brady,
> 
> Much thanks for that pointer!  
> 
> However, I have another issue.  I get the following compile
> error:
> 
> make[1]: Leaving directory
> `/home/jdaniel/downloads/sword-1.5.2/tests'
> gcc -I../include/ -D_GNU_SOURCE -DNDEBUG -D_GNU_SOURCE -DNDEBUG
> -pipe -Wall -Wno-format -pedantic -pedantic  -DEXCLUDEZLIB
> -fomit-frame-pointer -s -O3 -DBIGENDIAN -DUSBINARY -o keytest
> keytest.cpp  -L../lib/  -lsword -lstdc++
> ../lib//libsword.a(swmgr.o): In function
> `SWMgr::CreateMod(basic_string<char, string_char_traits<char>,
> __default_alloc_template<false, 0> >, basic_string<char,
> string_char_traits<char>, __default_alloc_template<false, 0> >,
> multimapwithdefault<basic_string<char, string_char_traits<char>,
> __default_alloc_template<false, 0> >, basic_string<char,
> string_char_traits<char>, __default_alloc_template<false, 0> >,
> less<basic_string<char, string_char_traits<char>,
> __default_alloc_template<false, 0> > > > &)':
> swmgr.o(.text+0x55b4): undefined reference to
> `ZipCompress::ZipCompress(void)'
> collect2: ld returned 1 exit status
> 
> Thanks,
> Jacob
> 
> On Mon, Nov 19, 2001 at 01:52:15PM -0800, Brady Morgan wrote:
>> Hi Jacob,
>> 
>> As a fellow Solaris-er (2.6/sparc), I've gotten past the point you've
>> reached by applying the following patch to
>> "src/modules/commmon/zverse.cpp":
>> 
>> *** zverse.cpp.ORIG     Tue Jun 26 06:37:35 2001
>> --- zverse.cpp  Tue Jul  3 15:17:03 2001
>> ***************
>> *** 11,16 ****
>> --- 11,17 ----
>>   #include <fcntl.h>
>>   #include <errno.h>
>>   #include <stdlib.h>
>> + #include <sys/pctypes.h>              /* For 'lelong()' */
>>   
>>   #ifndef __GNUC__
>>   #include <io.h>
>> 
>> 
>> That added include file defines the missing type.
>> 
>> -Brady Morgan
>> 
>> 
>> On 19-Nov-2001 Jacob Daniel wrote:
>> > Hi,
>> > 
>> > I have had little luck with compiling sword for solaris.  I
>> > finally have a GNU'ified env setup...I thought it would help but
>> > I got the following error message when I try to compile.  Am I
>> > missing a library or something? 
>> > 
>> > make[2]: Entering directory
>> > `/home/jdaniel/downloads/sword-1.5.2/src/modules/common'
>> > gcc -I../../../include/ -D_GNU_SOURCE -DNDEBUG -DUNIX
>> > -D_GNU_SOURCE -DNDEBUG -DUNIX -pipe -Wall -Wno-format -pedantic
>> > -pedantic  -fomit-frame-pointer -s -O3 -DBIGENDIAN -DUSBINARY -c
>> > -o zverse.o zverse.cpp
>> > zverse.cpp: In method `void zVerse::settext(char, long int, const
>> > char *)':
>> > zverse.cpp:304: `lelong' undeclared (first use this function)
>> > zverse.cpp:304: (Each undeclared identifier is reported only once
>> > zverse.cpp:304: for each function it appears in.)
>> > zverse.cpp:306: `leshort' undeclared (first use this function)
>> > make[2]: *** [zverse.o] Error 1
>> > 
>> > Thanks!
>> > Jacob