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