Article: Q141459
Product(s): Microsoft Programming Utilities
Version(s): 1.0,2.0,2.1,2.2,4.0,5.0,6.0
Operating System(s):
Keyword(s): kbcode kbtshoot kbVC200 kbVC210 kbVC220 kbVC400 kbVC500 kbVC600
Last Modified: 01-JAN-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- The Microsoft Linker (LINK.EXE), version 1.0, used with:
- Microsoft Visual C++, 32-bit Editions, versions 2.0, 2.1, 2.2, 4.0, 5.0, 6.0
-------------------------------------------------------------------------------
SYMPTOMS
========
When you build a DLL from component libraries (.lib files) that have functions
declared with _declspec(dllexport) to export them from the DLL, the functions
aren't exported or even included in the DLL. If you use the linker /warn option,
the linker will display the LNK4005 warning to indicate that no .obj files were
included from the static libraries.
RESOLUTION
==========
For the functions to be exported and included in the DLL, you must list the
functions to be exported in a .def file, or use the linker /export option when
building the DLL.
NOTE: This is only necessary when the functions are contained in .lib files that
are used to build a DLL.
The following sample code illustrates this scenario, and shows how you can make
sure the exported functions are included.
Sample Code
-----------
/* Compile options needed: none
*/
/* EXPORT.C */
__declspec( dllexport ) void func()
{
}
@rem **** Buildit.bat
cl /MT /c export.c
@rem **** build static library
link /lib /out:static.lib export.obj
@rem **** build DLL
link /dll /machine:ix86 /warn /out:export.dll static.lib
@rem **** using the following link line instead of the previous one
@rem **** solves the problem: have to force a reference to func so it is
**** included
@rem link /dll /machine:ix86 /warn /export:func /out:export.dll
static.lib
dumpbin /exports export.dll
rem **** DUMPBIN should have reported func as exported
STATUS
======
This behavior is by design.
Additional query words:
======================================================================
Keywords : kbcode kbtshoot kbVC200 kbVC210 kbVC220 kbVC400 kbVC500 kbVC600
Technology : kbVCsearch kbAudDeveloper kbLINKSearch
Version : :1.0,2.0,2.1,2.2,4.0,5.0,6.0
Issue type : kbprb
=============================================================================