Re: Driver linking error(symbols already defined), please help thi



Well, the fact that you're getting a macro redefinition error suggests to me that you might be trying to include 2 mutually incompatible headers (for example, including windows.h in a driver). Since you changed warnings to errors, it won't even try to link, so we don't know whether you'll still end up with multiple object definitions.

Have you looked at the build log file?

sirip wrote:
Hi,

From DDK build env window also I get same errors.
Onething I have to mention is that I got some warnings (both in cygwin & DDk env) from this code as follows.
They didn't seem so harmful and I went ahead and SET BUILD_ALLOW_ALL_WARNINGS=1.
Are these warnings creating the trouble after all ?


thanks
Ramesh

H:\CTO\windows\AOS_VPN\kernel\source\i386-windows-shim\ndis>.\buildit-free.cmd
****
Building for NT
****
Could Not Find H:\CTO\windows\AOS_VPN\kernel\source\i386-windows-shim\ndis\*.pdb


BUILD: Adding /Y to COPYCMD so xcopy ops won't hang.
BUILD: Object root set to: ==> objfre_w2K_x86
BUILD: Compile and Link for i386
BUILD: Loading C:\WINDDK\3790~1.183\build.dat...
BUILD: Computing Include file dependencies:
BUILD: Examining h:\cto\windows\aos_vpn\kernel\source\i386-windows-shim\ndis dir
ectory for files to compile.
h:\cto\windows\aos_vpn\kernel\source\i386-windows-shim\ndis - 25 source file
s (0 lines)
BUILD: Compiling (NoSync) h:\cto\windows\aos_vpn\kernel\source\i386-windows-shim
\ndis directory
Compiling - shimmer.rc for i386
Compiling - devsec.c for i386
errors in directory h:\cto\windows\aos_vpn\kernel\source\i386-windows-shim\ndis
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C2220: war
ning treated as error - no object file generated
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C4005: 'SL
IST_ENTRY' : macro redefinition
Compiling - debug.c for i386
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C2220: war
ning treated as error - no object file generated
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C4005: 'SL
IST_ENTRY' : macro redefinition
Compiling - pseudo-dhcpd.c for i386
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C2220: war
ning treated as error - no object file generated
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C4005: 'SL
IST_ENTRY' : macro redefinition
pseudo-dhcpd.c(142) : error C4133: 'initializing' : incompatible types - from 'u
nsigned short [17]' to 'PWSTR'
pseudo-dhcpd.c(387) : error C4133: 'function' : incompatible types - from 'unsig
ned short [15]' to 'WCHAR *'
pseudo-dhcpd.c(404) : error C4133: 'function' : incompatible types - from 'unsig
ned short [11]' to 'WCHAR *'
Compiling - irql.c for i386
Compiling - tcpioctl.c for i386
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C2220: war
ning treated as error - no object file generated
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C4005: 'SL
IST_ENTRY' : macro redefinition
Compiling - tdi.c for i386
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C2220: war
ning treated as error - no object file generated
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C4005: 'SL
IST_ENTRY' : macro redefinition
tdi.c(208) : error C4133: 'function' : incompatible types - from 'unsigned short
[12]' to 'PWSTR'
tdi.c(351) : error C4133: 'function' : incompatible types - from 'unsigned short
[12]' to 'PWSTR'
tdi.c(685) : error C4133: 'function' : incompatible types - from 'unsigned short
[12]' to 'PWSTR'
Compiling - globals.c for i386
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C2220: war
ning treated as error - no object file generated
h:\cto\windows\aos_vpn\kernel\include\common\sys\queue.h(124) : error C4005: 'SL
IST_ENTRY' : macro redefinition
globals.c(18) : error C4133: 'initializing' : incompatible types - from 'unsigne
d short [30]' to 'PWSTR'
globals.c(19) : error C4133: 'initializing' : incompatible types - from 'unsigne


"Ray Trent" wrote:

sirip wrote:
I'm building it manually from cygwin which first calls ddkvars.bat.
Does it work if you build it in the DDK build environment or do you get the same results?
--
Ray


--
Ray
.



Relevant Pages

  • Re: Driver linking error(symbols already defined), please help thi
    ... Compiling - shimmer.rc for i386 ... ning treated as error - no object file generated ... IST_ENTRY': macro redefinition ...
    (microsoft.public.development.device.drivers)
  • Re: Number of Objects in Static Link Library
    ... Up until this time, I've generated the libraries from object files that each represent a related group of functions and their data. ... The end result is that if a symbol in the object file is referenced, the entire object file is dragged in, even if just one function is referenced. ... With most linkers, the minimum amount that can normally be pulled in is one "module" or "translation unit". ... This normally corresponds to a single .o file that comes from either compiling a .c file or assembling an assembly-language file. ...
    (comp.unix.programmer)
  • Re: Getting source file from the object file
    ... source programs can produce the same object file. ... programs and compiling them until we find one which produces the ... this assumes that the object code depends /only/ on the source ... I agree that decompilation is not a halting-problem issue. ...
    (comp.lang.c)
  • Re: [RFC PATCH 3/6] kbuild: convert include and source paths
    ... Modify kbuild to convert relative include and source paths to absolute ... Also change the module versioning mechanism to alter object file ... names only after compiling. ... I would say that teaching gcov tool from where to look would be better. ...
    (Linux-Kernel)
  • Declaration and definition change in ddk 3790.1830
    ... Compiling - ttpmon.rc for i386 ... 'struct' type redefinition ... 'MAX_NATURAL_ALIGNMENT': macro redefinition ...
    (microsoft.public.development.device.drivers)

Quantcast