warning LNK4070: /OUT:dll.dll directive in .EXP ..

本文介绍了在DLL项目中如何分别针对Debug版和Release版指定不同的输出文件名,提供了两种解决方案:删除自动生成的dll.DEF文件并在代码中使用_declspec(dllexport)导出函数,或者修改dll.DEF文件中的LIBRARY字段。同时,介绍了生成两份DEF文件的方法,通过在项目设置中选择对应的DEF文件并排除原始文件,实现文件名的区分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链接警告:warning LNK4070: /OUT:dll.dll directive in .EXP ..
 

        我在DLL项目中遇到了,因为要对Debug版和Release版分别指定不同的输出文件名。对Debug版,我指定输出文件为dllD.dll,对Release版指定为dllR.dll。

        解决方法有两个:(1)删掉自动生成的dll.DEF文件,在代码中使用_declspec(dllexport)导出函数;(2)删掉dll.DEF文件中LIBRARY字段后面双引号及其内部的库名即可,也可以将其改掉。如改为:

; dll.def : Declares the module parameters for the DLL.

LIBRARY      "dllD"
DESCRIPTION 'dll Windows Dynamic Link Library'

EXPORTS
    ; Explicit exports can go here

******************************************************************************************
还有更好方法:
1.生成两份DEF文件,
xx.def //Release版本
xxD.def //Debug版本
2.把这两个文件都添加到项目中
3.只要在Debug项目的Setting中选中xx.def,在右边的General中在Exclude file from built前打勾
同样在Release项目的Setting中选中xxD.def,在右边的General中在Exclude file from built前打勾
4.接下来就Betch Build吧



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值