我正在 Visual Studio 中创建一个 COM DLL。链接器为 DLL 生成一个导入库。我不需要导入库。
有没有办法告诉链接器不要生成它?
我正在 Visual Studio 中创建一个 COM DLL。链接器为 DLL 生成一个导入库。我不需要导入库。
有没有办法告诉链接器不要生成它?
九年后,这可能对 OP 没有用,但它可能对通过寻找解决方案来的其他人有用。
LINK.EXE 支持/NOIMPLIB
阻止创建导入库的选项,即使存在或被链接的__declspec(dllexport)
例程也是如此。DLL
EXE
转到项目属性,打开该Linker
部分。最后一个选项是Command Line
. 选择它,底部有一个地方可以向链接器添加其他选项。在编辑字段中输入/NOIMPLIB
,保存并应用,它会阻止创建.lib
文件。
- 编辑 -
不幸的是,虽然它确实阻止了.lib
文件的创建,但凭经验我发现该.exp
文件仍然被创建。我会向 MS 提交错误报告,但根据他们开发人员工具团队过去的经验,尝试修复此类问题类似于尝试将巨石滚上山。
这个答案似乎是解决方案: https ://stackoverflow.com/a/15214141/660440
“使用包含用 PRIVATE 关键字标记的导出函数的 .def 文件将告诉链接器跳过将符号放入导入库中。”