The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > High Level Programming
.
google unix.com



High Level Programming Post questions about C, C++, Java, SQL, and other programming languages here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Reference: WebObjects 5.4.1 Reference iBot UNIX and Linux RSS News 0 03-11-2008 09:50 PM
undefined reference to `pthread_create' netman High Level Programming 2 01-28-2008 12:31 PM
about undefined reference for 'sinf' bharat suthar High Level Programming 2 05-13-2006 08:45 PM
Undefined reference to Error svh High Level Programming 2 02-11-2006 12:23 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rating: Thread Rating: 1 votes, 4.00 average. Display Modes
  #1 (permalink)  
Old 10-08-2008
princelinux princelinux is offline
Registered User
  
 

Join Date: Apr 2006
Posts: 32
undefined reference to `__ctype_b'

when i compile my program, i meet the following error:
...
undefined reference to `__ctype_b'
...

anybody knows which shared library should be linked during make?

thanks a lot!
  #2 (permalink)  
Old 10-08-2008
jim mcnamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Location: NM
Posts: 5,717
The name is mangled. I dunno. What headers outside of the standard C library headers are in the file? ie NOT <stdio.h> <string.h> etc.
  #3 (permalink)  
Old 10-08-2008
princelinux princelinux is offline
Registered User
  
 

Join Date: Apr 2006
Posts: 32
I just link 3rd part archive file (xerces-c.a) to make my own program.

the error looks like:

./lib_2_8_64bit/libxerces-c.a(XMLString.o): In function `xercesc_2_8::XMLString::trim(char*)':
XMLString.cpp(.text+0xa85): undefined reference to `__ctype_b'
XMLString.cpp(.text+0xab0): undefined reference to `__ctype_b'
collect2: ld returned 1 exit status
make: *** [all] Error 1


however, if i link shared library (xerces-c.so) instead of .a file, then it compiles.

so any tips or tricks when linking the static library?
  #4 (permalink)  
Old 10-08-2008
jim mcnamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Location: NM
Posts: 5,717
The .a file may still have external symbols that are resolved in the shared library.
Are you trying a static link?

Code:
nm xerces-c.a | grep ctype_b
will list your symbol. I would guess that you will see ctype_b listed as external, meaning it has to be resolved somewhere else. Do you have any other xerces archives you can grep through?
  #5 (permalink)  
Old 10-08-2008
jim mcnamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Location: NM
Posts: 5,717
Another thought - you may not be aware that the order of libraries linked against is important. Try moving the .a file to the first element in the -l list.

Also, you may need to put something like the std c++ library as the last in that list - in other words some standard shared libraries may need to be parsed for symbols more than once.

What is happening: the .a file is introducing symbols that were not in the original object file, these extern symbols were probably available earlier, but ld skipped over them because they were not needed at that time.
  #6 (permalink)  
Old 10-08-2008
princelinux princelinux is offline
Registered User
  
 

Join Date: Apr 2006
Posts: 32
thanks jim. your guess is right - ctype_b listed as external.

i tried to move link order according to your suggestion. but it still does not work.
  #7 (permalink)  
Old 10-09-2008
ankurjain ankurjain is offline
Registered User
  
 

Join Date: Jul 2007
Posts: 23
you can compare the symbols of both .so and .a .... check if the symbol is available in .so. If not then it may be taking it from some other .so
Closed Thread

Bookmarks

Tags
awk, awk trim, trim, trim awk

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 06:04 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0