error LNK2005: “void __cdecl operator delete(void *)“ (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(delete_scalar.o

本文介绍了解决Visual Studio中LNK2005和LNK1169错误的方法。这两种错误通常出现在链接阶段,提示函数或变量被多次定义。文章提供了一种简单有效的解决方案:通过修改项目设置,在共享DLL中使用MFC而非静态库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题:

  1. error LNK2005: “void __cdecl operator delete(void *)” (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(delete_scalar.obj) 中定义

  2. fatal error LNK1169: 找到一个或多个多重定义的符号

    我只是定义了一个类,还是自动生成的,连类里面的内容都没有写,就报了一个2005,一个1169,如图所示。
    在这里插入图片描述

查看了网上的资料,发现大多提到的原因都是 重定义了某些函数或者变量,让我直接就懵逼了,我只是写了个类,构造函数都还是空的,怎么会重定义?
项目->属性->高级->MFC的使用
将下图的第三步即 在静态库中使用MFC 改为在 共享DLL中使用MFC,报错解决。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值