Tim Roberts
2009-10-04 01:10:18 UTC
If I build an application in debug mode in Visual Studio 2005 that happens
to reference something in the oleacc.idl, and I link it with the brand-new
Windows 7 SDK, I get a linker error complaining about the debug information
in the library, suggesting that I recompile it. The error only happens
with the /debug switch to the linker.
If I were actually invoking <oleacc.h> by hand, as in my test app, I could
include <initguid.h> before it to eliminate the external reference.
However, in my case, <oleacc.h> is being brought in by ATL, and it might
not be convenient to use <initguid.h> on every GUID. The problem does not
occur with the Vista SDK.
I don't seen any references to this problem on the web, but I can't imagine
I'm the first one to encounter this. This is a minimal test case, but I am
seeing this with production apps.
C:\tmp>type x.cpp
#include <windows.h>
#include <oleacc.h>
int
main()
{
return (int)&IID_IAccessible;
}
C:\tmp>cl x.cpp /Zi /link /libpath:\data\sdk\7600\lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for
80x86
Copyright (C) Microsoft Corporation. All rights reserved.
x.cpp
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
/out:x.exe
/debug
/libpath:\data\sdk\7600\lib
x.obj
uuid.lib(oleacc_i.obj) : fatal error LNK1103: debugging information
corrupt; recompile module
C:\tmp>
to reference something in the oleacc.idl, and I link it with the brand-new
Windows 7 SDK, I get a linker error complaining about the debug information
in the library, suggesting that I recompile it. The error only happens
with the /debug switch to the linker.
If I were actually invoking <oleacc.h> by hand, as in my test app, I could
include <initguid.h> before it to eliminate the external reference.
However, in my case, <oleacc.h> is being brought in by ATL, and it might
not be convenient to use <initguid.h> on every GUID. The problem does not
occur with the Vista SDK.
I don't seen any references to this problem on the web, but I can't imagine
I'm the first one to encounter this. This is a minimal test case, but I am
seeing this with production apps.
C:\tmp>type x.cpp
#include <windows.h>
#include <oleacc.h>
int
main()
{
return (int)&IID_IAccessible;
}
C:\tmp>cl x.cpp /Zi /link /libpath:\data\sdk\7600\lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for
80x86
Copyright (C) Microsoft Corporation. All rights reserved.
x.cpp
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
/out:x.exe
/debug
/libpath:\data\sdk\7600\lib
x.obj
uuid.lib(oleacc_i.obj) : fatal error LNK1103: debugging information
corrupt; recompile module
C:\tmp>
--
Tim Roberts, ***@probo.com
Providenza & Boekelheide, Inc.
Tim Roberts, ***@probo.com
Providenza & Boekelheide, Inc.