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