gcc and microsoft linker
Dibyendu Ghosh
dghosh@synopsys.com
Mon Sep 11 12:10:00 GMT 2000
Hi,
In my project which is on Windows NT 4.0, I am in a situation where, I need
to build most of the source files using gcc and some files using cl.exe
(which comes with microsoft vc++ 6.0). I was getting some problem, so to
simulate it using a small sample project I tried all possible options using
gcc, cl and link.exe (which comes with vc6.0). I just created a file
mainfunc.c with the following contents:
extern void libfunc();
int main()
{
libfunc();
return 0;
}
And another source file, libfunc.c with the following contents:
#include<stdio.h>
void libfunc()
{
printf("From LibFunc\n");
}
And then I compile these two files and generate mainfunc.o, libfunc.o,
mainfunc.obj, libfunc.obj.
And the I try to build my executable using all possible combinations.
What I find is that link.exe doesn't understand mainfunc.o much and gives
one unresolved external as follows:
Full output from link.exe:
==========================
Microsoft (R) 32-Bit Incremental Linker Version 5.10.7303
Copyright (C) Microsoft Corp 1992-1997. All rights reserved.
Searching Libraries
Searching d:\Programs\Micros~1\VC98\LIB\LIBC.lib:
Searching d:\Programs\Micros~1\VC98\LIB\OLDNAMES.lib:
Searching d:\Programs\Micros~1\VC98\LIB\kernel32.lib:
Searching d:\Programs\Micros~1\VC98\LIB\LIBC.lib:
Searching d:\Programs\Micros~1\VC98\LIB\OLDNAMES.lib:
Done Searching Libraries
mainfunc.o : error LNK2001: unresolved external symbol ___main
gcctest3.exe : fatal error LNK1120: 1 unresolved externals
=====================================================================
Then I tried to resolve this by passing libcygwin.a also to link.exe, it
builds the executable, but generates a warning, and later GPF occurs when
running the executable. How do I resolve this problem?
======================================================================
Full output from linker in this case:
_____________________________________
Microsoft (R) 32-Bit Incremental Linker Version 5.10.7303
Copyright (C) Microsoft Corp 1992-1997. All rights reserved.
Searching Libraries
Searching
c:\Cygnus\cygwin-b20\h-i586-cygwin32\i586-cygwin32\lib\libcygwin.a:
libcygwin.a(ds7.o) : warning LNK4078: multiple ".idata" sections found with
different attributes (40000000)
Searching d:\Programs\Micros~1\VC98\LIB\LIBC.lib:
Searching d:\Programs\Micros~1\VC98\LIB\OLDNAMES.lib:
Searching d:\Programs\Micros~1\VC98\LIB\kernel32.lib:
Done Searching Libraries
____________________________________________________________________________
_________________________________
============================================================================
=================================
Any suggestions/comments on this problem are most welcome!
With Thanks in Advance,
Dibyendu Ghosh
More information about the Gcc-bugs
mailing list