开发者

How do I disable the generation of an import library?

I'm creating a COM DLL in Visual Studio. The linker generates an import library for the DLL. I don't need 开发者_如何学Cthe import library.

Is there any way to tell the linker not to generate it?


Nine years later, this may not be useful to the OP, but it may prove useful to others coming by looking for a solution.

LINK.EXE supports the /NOIMPLIB option that prevents creation of an import library, even in the presence of a __declspec(dllexport) routine in the DLL or EXE being linked.

Go to Project Properties, open up the Linker section. The very last option is Command Line. Select that, and there's a place at the bottom to add additional options to the linker. Enter /NOIMPLIB in the edit field, save and apply, and it'll prevent the creation of the .lib file.

-- Edit --

Unfortunately, while it does prevent creation of the .lib file, empirically I've found that the .exp file is still created. I'd file a bug report with MS, but based on past experience with their developer tools team, trying to get something like this fixed will be akin to trying to roll a boulder up hill.

-- Edit -- four years later --

As noted in the comments, VS 2019 finally has this fixed, so that /NOIMPLIB now suppresses the creation of both the .lib and .exp files.


This answer seems to be the solution: https://stackoverflow.com/a/15214141/660440

"Using a .def file containing your exported functions marked with the PRIVATE keyword will tell the linker to skip placing the symbol in your import library."

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜