链接警告: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吧


转载地址

你可能感兴趣的:(C++,VC,LNK4070)