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

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,则其他人取下来后编译时会异常

你可能感兴趣的:(编译过程中遇到的警告或错误)