请问关于头文件的问题,马上揭贴

ControlCoder34 2006-10-02 08:54:06
我的头文件里有这些
#include "activeds.h"
#include <comdef.h>
#include <lm.h>

我发现只要把
#include "activeds.h"
#include <comdef.h>
这两个放在一起就提示出错

LIBC.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSVCRTD.dll)
LIBC.lib(crt0dat.obj) : error LNK2005: __exit already defined in msvcrtd.lib(MSVCRTD.dll)
LIBC.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in msvcrtd.lib(MSVCRTD.dll)
LIBC.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in msvcrtd.lib(cinitexe.obj)
LIBC.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in msvcrtd.lib(cinitexe.obj)
LIBC.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in msvcrtd.lib(cinitexe.obj)
LIBC.lib(crt0init.obj) : error LNK2005: ___xi_a already defined in msvcrtd.lib(cinitexe.obj)
msvcrtd.lib(MSVCRTD.dll) : error LNK2005: __setmbcp already defined in LIBC.lib(mbctype.obj)
LINK : warning LNK4098: defaultlib "msvcrtd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library
LIBC.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/InstallUpdate.exe : fatal error LNK1120: 1 unresolved externals

是什么问题啊

应该怎么解决呢
...全文
307 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luolovegui 2006-10-02
  • 打赏
  • 举报
回复
按 Alt + F7(vc6.0), 就是 project setting... 进入 c++ 页. 在 category 中选择 code generation,然后设置 use run-time library的值,多试一下,可以搞定..


------------------------------------------------------------------------
快两年没有回答问题了,2006年10月2号重新回答问题,开始搛星星.
erdgzw 2006-10-02
  • 打赏
  • 举报
回复
#include "activeds.h"
#include <comdef.h>
应该是两个文件都定义了一个相同的符号。
解决方法1:修改这两个文件当中的一个,用#if去掉重复的符号。
觖决方法2: 只包含其中的一个文件。
ControlCoder34 2006-10-02
  • 打赏
  • 举报
回复
?
ControlCoder34 2006-10-02
  • 打赏
  • 举报
回复
erdgzw(编译通过那一刻感觉真好) (
我的代码是什么问题呢?

#include "activeds.h"
#include <comdef.h>
这两个不能用到一起吗
erdgzw 2006-10-02
  • 打赏
  • 举报
回复
在对象中已定义符号

以修饰形式显示的给定 symbol 被多次定义。

可能的原因

不慎同时与单线程库和多线程库链接。确保应用程序项目文件只包括适当的库,并且任何第三方库已适当创建了单线程或多线程版本。
在也使用 /clr 时混合静态库和动态库。
该符号为封装函数(通过用 /Gy 编译创建),包含在多个文件中,但在各编译间已改变。重新编译所有包含 symbol 的文件。
以不同的形式在不同库中的两个成员对象中定义了该符号,并且使用了这两个成员对象。
某个绝对符号被定义两次,而每次定义的值不同。
头文件声明并定义了变量。可能的解决方案有:
在 .h 中声明变量:extern BOOL MyBool;,然后在 .c 或 .cpp 文件中向它分配:BOOL MyBool = FALSE;。
将变量声明为 static。
将变量声明为 selectany。
当将 uuid.lib 与定义 GUID 的其他 .lib 文件(例如 oledb.lib 和 adsiid.lib)一起使用时。例如:
oledb.lib(oledb_i.obj) : error LNK2005: _IID_ITransactionObject
already defined in uuid.lib(go7.obj)
若要修复,请将 /FORCE:MULTIPLE 添加到链接器命令行选项,并确保 uuid.lib 是引用的第一个库。

ControlCoder34 2006-10-02
  • 打赏
  • 举报
回复
那两个头文件都是系统定义的啊
ControlCoder34 2006-10-02
  • 打赏
  • 举报
回复
你指的是哪个头文件呢
weizhengqin 2006-10-02
  • 打赏
  • 举报
回复
把头文件贴出来看看

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧