c++.command-line - Warning 140: Library probably needs FIXLIB
- Christof Meerwald (24/24) Dec 31 2002 What does it mean? ("Warning 140: Library probably needs FIXLIB")
- Walter (8/32) Dec 31 2002 I don't know what is meant by fixlib. However, the declaration:
What does it mean? ("Warning 140: Library probably needs FIXLIB") // file 1 int a; // file 2 extern int a; static int *b = &a; void f() { } compile both files and create a static library (lib -c ...) // main extern void f(); int main() { f(); } compiled and trying to link with the library I get: Warning 140: Library probably needs FIXLIB Error 42: Symbol Undefined ?a 3HA (int a) Workaround: write "int a = 0;" instead of "int a;" in file 1. bye, Christof -- http://cmeerw.org JID: cmeerw jabber.at mailto cmeerw at web.de ...and what have you contributed to the Net?
Dec 31 2002
I don't know what is meant by fixlib. However, the declaration: int a; generates a COMDAT which is not put into the symbol table in the library, and is not used to satisfy unresolved externals unless something else in that module is pulled in. This is not a bug, it is a deliberate way of doing things. The runtime library depends on it, for example. "Christof Meerwald" <cmeerw web.de> wrote in message news:ausjsp$102c$2 digitaldaemon.com...What does it mean? ("Warning 140: Library probably needs FIXLIB") // file 1 int a; // file 2 extern int a; static int *b = &a; void f() { } compile both files and create a static library (lib -c ...) // main extern void f(); int main() { f(); } compiled and trying to link with the library I get: Warning 140: Library probably needs FIXLIB Error 42: Symbol Undefined ?a 3HA (int a) Workaround: write "int a = 0;" instead of "int a;" in file 1. bye, Christof -- http://cmeerw.org JID: cmeerw jabber.at mailto cmeerw at web.de ...and what have you contributed to the Net?
Dec 31 2002