您的位置:首页 > 其它

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

2009-11-06 14:04 531 查看
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,则其他人取下来后编译时会异常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: