[sword-devel] Problem building last CVS snapshot of Sword with GCC 3.0
Luke Mauldin
sword-devel@crosswire.org
Fri, 22 Jun 2001 10:07:34 -0500
Hello, I was able to take care of alot of the sword error messages while
compiling by manually adding utilstr.o to libsword.a The line I used to do
this was...
ar crs /home/luke/bibletime/sword/lib/libsword.a
/home/luke/bibletime/sword/src/utilfuns/utilstr.o
However I am still getting some errors while compiling:
make[1]: Entering directory `/home/luke/bibletime/sword/tests'
gcc -I../include/ -D_GNU_SOURCE -D_GNU_SOURCE -pipe -Wall -Wno-format
-pedantic
-pedantic -fomit-frame-pointer -ggdb -O2 -DUSBINARY -march=athlon
-mcpu=athlon
-o keytest keytest.cpp -L../lib/ -lsword -lstdc++ -lz
../lib//libsword.a(versekey.o): In function `VerseKey::ParseVerseList(char
const*, char const*, bool)':
/home/luke/bibletime/sword/src/keys/../../include/swobject.h:29: undefined
reference to `stricmp(char const*, char const*)'
/home/luke/bibletime/sword/src/keys/../../include/swobject.h:29: undefined
reference to `stricmp(char const*, char const*)'
../lib//libsword.a(swmgr.o): In function `SWMgr::CreateMod(std::string,
std::string, multimapwithdefault<std::string, std::string,
std::less<std::string> >&)':
/usr/include/g++-v3/bits/basic_string.h:714: undefined reference to
`stricmp(char const*, char const*)'
/usr/include/g++-v3/bits/basic_string.h:714: undefined reference to
`stricmp(char const*, char const*)'
/usr/include/g++-v3/bits/basic_string.h:714: undefined reference to
`stricmp(char const*, char const*)'
../lib//libsword.a(swmgr.o):/usr/include/g++-v3/bits/basic_string.h:714: more
undefined references to `stricmp(char const*, char const*)' follow
collect2: ld returned 1 exit status
make[1]: *** [keytest] Error 1
make[1]: Leaving directory `/home/luke/bibletime/sword/tests'
make: *** [tests/targets] Error 2
The part that is failing is the linker, which means that the compiler knows
where to find the function defination for stricmp() but the linker does not
know where to find the actual code(normally in a .cpp file). I think this
can be resolved by adding whatever object file the function stricmp is in to
libsword.a however I do not know where stricmp is defined. Also, users who
compile sword should not have to do these things manually, all of these
things should be taken care of in a Makefile.
Luke
On Thursday 21 June 2001 11:46 pm, you wrote:
> Luke,
> Thanks for testing on 3.0. stdstr is one of ours. Should be in
> sword/include somewhere (utilstr.h I think). Hope this helps. Let me
> know if this included doesn't seem to be getting included correctly.
>
> -Troy.
>
> Luke Mauldin wrote:
> > Hello I recently installed GCC 3.0 and the latest release of binutils and
> > I attempted to build sword. I got ALOT of errors. They are posted
> > below. One specific one, the inability to find stdstr(), I looked for
> > stdstr in every string related file on my system, both included in the
> > GCC 3.0 and glibc 2.2.3 and still could not find any function by that
> > name. If anyone could enlighten me or help me with these errors, I would
> > be very thankful.
> >
> > gcc -I../include/ -D_GNU_SOURCE -D_GNU_SOURCE -pipe -Wall -Wno-format
> > -pedantic -pedantic -fomit-frame-pointer -ggdb -O2 -DUSBINARY
> > -march=athlon -mcpu=athlon -o keytest keytest.cpp -L../lib/ -lsword
> > -lstdc++ -lz ../lib//libsword.a(swkey.o): In function `SWKey::SWKey(char
> > const*)': /home/luke/bibletime/sword/src/keys/swkey.cpp:26: undefined
> > reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(swkey.o): In function `SWKey::SWKey(char const*)':
> > /home/luke/bibletime/sword/src/keys/swkey.cpp:26: undefined reference to
> > `stdstr(char**, char const*)'
> > ../lib//libsword.a(swkey.o): In function `SWKey::SWKey(SWKey const&)':
> > /home/luke/bibletime/sword/src/keys/swkey.cpp:36: undefined reference to
> > `stdstr(char**, char const*)'
> > ../lib//libsword.a(swkey.o): In function `SWKey::SWKey(SWKey const&)':
> > /home/luke/bibletime/sword/src/keys/swkey.cpp:36: undefined reference to
> > `stdstr(char**, char const*)'
> > ../lib//libsword.a(swkey.o): In function `SWKey::operator=(char const*)':
> > /home/luke/bibletime/sword/src/keys/swkey.cpp:116: undefined reference to
> > `stdstr(char**, char const*)'
> > ../lib//libsword.a(swkey.o):/home/luke/bibletime/sword/src/keys/swkey.cpp
> >:131: more undefined references to `stdstr(char**, char const*)' follow
> > ../lib//libsword.a(versekey.o): In function
> > `VerseKey::getBookAbbrev(char*)':
> > /home/luke/bibletime/sword/src/keys/versekey.cpp:291: undefined reference
> > to `strstrip(char*)'
> > ../lib//libsword.a(versekey.o): In function
> > `VerseKey::ParseVerseList(char const*, char const*, bool)':
> > /home/luke/bibletime/sword/src/keys/../../include/swobject.h:29:
> > undefined reference to `stricmp(char const*, char const*)'
> > /home/luke/bibletime/sword/src/keys/../../include/swobject.h:29:
> > undefined reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(localemgr.o): In function
> > `LocaleMgr::setDefaultLocaleName(char const*)':
> > /home/luke/bibletime/sword/src/mgr/localemgr.cpp:180: undefined reference
> > to `stdstr(char**, char const*)'
> > ../lib//libsword.a(swmgr.o): In function `SWMgr::SWMgr(char const*,
> > bool)': /usr/include/g++-v3/bits/basic_string.h:714: undefined reference
> > to `stdstr(char**, char const*)'
> > /usr/include/g++-v3/bits/basic_string.h:714: undefined reference to
> > `stdstr(char**, char const*)'
> > /usr/include/g++-v3/bits/basic_string.h:714: undefined reference to
> > `stdstr(char**, char const*)'
> > /usr/include/g++-v3/bits/basic_string.h:714: undefined reference to
> > `stdstr(char**, char const*)'
> > ../lib//libsword.a(swmgr.o):/usr/include/g++-v3/bits/basic_string.h:714:
> > more undefined references to `stdstr(char**, char const*)' follow
> > ../lib//libsword.a(swmgr.o): In function `SWMgr::CreateMod(std::string,
> > std::string, multimapwithdefault<std::string, std::string,
> > std::less<std::string> >&)': /usr/include/g++-v3/bits/basic_string.h:714:
> > undefined reference to `stricmp(char const*, char const*)'
> > /usr/include/g++-v3/bits/basic_string.h:714: undefined reference to
> > `stricmp(char const*, char const*)'
> > /usr/include/g++-v3/bits/basic_string.h:714: undefined reference to
> > `stricmp(char const*, char const*)'
> > /usr/include/g++-v3/bits/basic_string.h:714: undefined reference to
> > `stricmp(char const*, char const*)'
> > /usr/include/g++-v3/bits/basic_string.h:714: undefined reference to
> > `stricmp(char const*, char const*)'
> > ../lib//libsword.a(swmgr.o):/usr/include/g++-v3/bits/basic_string.h:714:
> > more undefined references to `stricmp(char const*, char const*)' follow
> > ../lib//libsword.a(filemgr.o): In function `FileDesc::FileDesc(FileMgr*,
> > char*, int, int)':
> > /home/luke/bibletime/sword/src/mgr/filemgr.cpp:47: undefined reference to
> > `stdstr(char**, char const*)'
> > ../lib//libsword.a(filemgr.o): In function `FileDesc::FileDesc(FileMgr*,
> > char*, int, int)':
> > /home/luke/bibletime/sword/src/mgr/filemgr.cpp:47: undefined reference to
> > `stdstr(char**, char const*)'
> > ../lib//libsword.a(swlocale.o): In function `SWLocale::SWLocale(char
> > const*)': /usr/include/g++-v3/bits/basic_string.h:164: undefined
> > reference to `stdstr(char**, char const*)'
> > /usr/include/g++-v3/bits/basic_string.h:164: undefined reference to
> > `stdstr(char**, char const*)'
> > ../lib//libsword.a(swlocale.o): In function `SWLocale::SWLocale(char
> > const*)': /usr/include/g++-v3/bits/basic_string.h:164: undefined
> > reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(swlocale.o):/usr/include/g++-v3/bits/basic_string.h:16
> >4: more undefined references to `stdstr(char**, char const*)' follow
> > ../lib//libsword.a(rawtext.o): In function `RawText::getRawEntry()':
> > /home/luke/bibletime/sword/src/modules/texts/rawtext/../../../../include/
> >swobject.h:29: undefined reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(rawtext.o): In function `RawText::Search(char const*,
> > int, int, SWKey*, bool*, void (*)(char, void*), void*)':
> > /home/luke/bibletime/sword/src/modules/texts/rawtext/../../../../include/
> >swobject.h:29: undefined reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(rawtext.o): In function `RawText::Search(char const*,
> > int, int, SWKey*, bool*, void (*)(char, void*), void*)':
> > /home/luke/bibletime/sword/src/modules/texts/rawtext/rawtext.cpp:327:
> > undefined reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(rawtext.o): In function `RawText::operator<<(char
> > const*)':
> > /home/luke/bibletime/sword/src/modules/texts/rawtext/../../../../include/
> >swobject.h:29: undefined reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(rawtext.o): In function `RawText::operator<<(SWKey
> > const*)':
> > /home/luke/bibletime/sword/src/modules/texts/rawtext/../../../../include/
> >swobject.h:29: undefined reference to `stricmp(char const*, char const*)'
> > /home/luke/bibletime/sword/src/modules/texts/rawtext/../../../../include/
> >swobject.h:29: undefined reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(rawtext.o): In function `RawText::deleteEntry()':
> > /home/luke/bibletime/sword/src/modules/texts/rawtext/../../../../include/
> >swobject.h:29: undefined reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(ztext.o): In function `zText::getRawEntry()':
> > /home/luke/bibletime/sword/src/modules/texts/ztext/../../../../include/sw
> >object.h:29: undefined reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(ztext.o):/home/luke/bibletime/sword/src/modules/texts/
> >ztext/../../../../include/swobject.h:29: more undefined references to
> > `stricmp(char const*, char const*)' follow ../lib//libsword.a(rawld.o):
> > In function `RawLD::getEntry(long)':
> > /home/luke/bibletime/sword/src/modules/lexdict/rawld/rawld.cpp:103:
> > undefined reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(rawld4.o): In function `RawLD4::getEntry(long)':
> > /home/luke/bibletime/sword/src/modules/lexdict/rawld4/rawld4.cpp:103:
> > undefined reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(rawstr.o): In function `RawStr::RawStr(char const*,
> > int)': /home/luke/bibletime/sword/src/modules/common/rawstr.cpp:55:
> > undefined reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(rawstr.o): In function `RawStr::RawStr(char const*,
> > int)': /home/luke/bibletime/sword/src/modules/common/rawstr.cpp:55:
> > undefined reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(rawstr.o): In function `RawStr::settext(char const*,
> > char const*)':
> > /home/luke/bibletime/sword/src/modules/common/rawstr.cpp:447: undefined
> > reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(rawstr.o):/home/luke/bibletime/sword/src/modules/commo
> >n/rawstr.cpp:571: more undefined references to `stdstr(char**, char
> > const*)' follow ../lib//libsword.a(gbfstrongs.o): In function
> > `GBFStrongs::setOptionValue(char const*)':
> > /home/luke/bibletime/sword/src/modules/filters/gbfstrongs.cpp:35:
> > undefined reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(gbffootnotes.o): In function
> > `GBFFootnotes::setOptionValue(char const*)':
> > /home/luke/bibletime/sword/src/modules/filters/gbffootnotes.cpp:35:
> > undefined reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(gbfheadings.o): In function
> > `GBFHeadings::setOptionValue(char const*)':
> > /home/luke/bibletime/sword/src/modules/filters/gbfheadings.cpp:35:
> > undefined reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(gbfmorph.o): In function
> > `GBFMorph::setOptionValue(char const*)':
> > /home/luke/bibletime/sword/src/modules/filters/gbfmorph.cpp:35: undefined
> > reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(swmodule.o): In function `SWModule::SWModule(char
> > const*, char const*, SWDisplay*, char*, bool)':
> > /home/luke/bibletime/sword/src/modules/swmodule.cpp:43: undefined
> > reference to `stdstr(char**, char const*)'
> > /home/luke/bibletime/sword/src/modules/swmodule.cpp:44: undefined
> > reference to `stdstr(char**, char const*)'
> > /home/luke/bibletime/sword/src/modules/swmodule.cpp:45: undefined
> > reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(swmodule.o): In function `SWModule::SWModule(char
> > const*, char const*, SWDisplay*, char*, bool)':
> > /home/luke/bibletime/sword/src/modules/swmodule.cpp:43: undefined
> > reference to `stdstr(char**, char const*)'
> > /home/luke/bibletime/sword/src/modules/swmodule.cpp:44: undefined
> > reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(swmodule.o):/home/luke/bibletime/sword/src/modules/swm
> >odule.cpp:45: more undefined references to `stdstr(char**, char const*)'
> > follow ../lib//libsword.a(swmodule.o): In function `SWModule::Search(char
> > const*, int, int, SWKey*, bool*, void (*)(char, void*), void*)':
> > /home/luke/bibletime/sword/src/modules/../../include/swobject.h:29:
> > undefined reference to `stricmp(char const*, char const*)'
> > ../lib//libsword.a(swmodule.o): In function `SWModule::Search(char
> > const*, int, int, SWKey*, bool*, void (*)(char, void*), void*)':
> > /home/luke/bibletime/sword/src/modules/swmodule.cpp:416: undefined
> > reference to `stristr(char const*, char const*)'
> > /home/luke/bibletime/sword/src/modules/swmodule.cpp:407: undefined
> > reference to
> > `stristr(char const*, char const*)'
> > ../lib//libsword.a(hrefcom.o): In function `HREFCom::HREFCom(char const*,
> > char const*, char const*, char const*, SWDisplay*)':
> > /home/luke/bibletime/sword/src/modules/comments/hrefcom/hrefcom.cpp:37:
> > undefined reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(hrefcom.o): In function `HREFCom::HREFCom(char const*,
> > char const*, char const*, char const*, SWDisplay*)':
> > /home/luke/bibletime/sword/src/modules/comments/hrefcom/hrefcom.cpp:37:
> > undefined reference to `stdstr(char**, char const*)'
> > ../lib//libsword.a(hrefcom.o): In function `HREFCom::getRawEntry()':
> > /home/luke/bibletime/sword/src/modules/comments/hrefcom/../../../../inclu
> >de/swobject.h:29: undefined reference to `stricmp(char const*, char
> > const*)'
> > ../lib//libsword.a(swconfig.o): In function `SWConfig::Load()':
> > /home/luke/bibletime/sword/src/mgr/swconfig.cpp:78: undefined reference
> > to `strstrip(char*)'
> > ../lib//libsword.a(swconfig.o): In function `SWConfig::Load()':
> > /usr/include/g++-v3/bits/stl_alloc.h:542: undefined reference to
> > `strstrip(char*)'
> > collect2: ld returned 1 exit status
> > make[1]: *** [keytest] Error 1