Undefined Symbols Issue

I’m porting a rather large and ungainly library at the moment, and while it all compiles fine, it doesn’t link

Theres a libtool error, stating something along the lines of ‘warning: undefined symbols not allowed in i586-beos-pc binaries’, which is then followed by… a huge rake of undefined symbol warnings

Obviously, the build scripts assume that they’re running on a UNIX system where undefined symbols are allowable. Is there any way to make said symbols (all 1,000 or so of them at a quick guess) get properly defined?

Wouldn’t these undefined symbols link to declared global variables in a lib somewhere? What are the symbols for? C library? operating system variables?

are they needed?

make a header full of dummy vars?

example?

Are you missing a define eg:

#ifdef MAIN
#define EXTERN
#else
#define EXTERN extern
#endif

then down the file…
EXTERN int undefined_symbol1
EXTERN int undefined_symbol2
EXTERN int undefined_symbol3
EXTERN int undefined_symbol4

where main is defined once in a main header, and the header with the externs is called by most other .c files?

I found out what needed to be done - add -no-undefiend to the LDFLAGS in lots and lots and lots of makefiles…

The same issue affected me again where the library would link and make an 8 byte .a library, no .so library, no errors. Same fix, problem gone.

MYOB wrote:
I found out what needed to be done - add -no-undefiend to the LDFLAGS in lots and lots and lots of makefiles...

The same issue affected me again where the library would link and make an 8 byte .a library, no .so library, no errors. Same fix, problem gone.

if a configure script is involved, did you try to do this ?

./configure LDFLAGS=-no-undefined