编译过程中遇到的警告或错误

1、Linking...
LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF
LINK : warning LNK4089: all references to "comdlg32.dll" discarded by /OPT:REF

你程序里一定有没有使用的类,而这个类引用了shell32.dll文件,编译的时候,这个类被编译了,但连接的时候发现没有使用,就显示这样的警告,并无大碍,如果想这个警告不出现,你就把包含这个类的文件,从工作区中删除就可以了。

 

2、Linking...
   Creating library Debug/ITLAN_Chinese_D.lib and object Debug/ITLAN_Chinese_D.exp
ITLAN_Chinese_D.exp : warning LNK4070: /OUT:ITLAN_Chinese.dll directive in .EXP differs from output filename "../Debug/ITLAN_Chinese_D.dll"; ignoring directive

ITLAN_Chinese_D.dll - 0 error(s), 1 warning(s)

我在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

 

3、使用stl的vector或string等,需要#pragma warning( disable : 4786)

 

4、资源文件若以text方式上传到cvs,则其他人取下来后编译时会异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值