DLL文件编译出错[email protected] already defined in XXX.obj

编译MFC DLL程序时出现

Error
2 error LNK1169: one or more multiply defined symbols found
E:\C++\HookTest\CopyFileDetour\CFDetour\Debug\1t.dll
1 1t
1

Error 1
error LNK2005: [email protected] already defined in 1t.obj
E:\C++\HookTest\CopyFileDetour\CFDetour\1t\mfcs100ud.lib(dllmodul.obj)
1t

1t为测试的dll工程名称

错误解决方法:

位置:Project->Propertie->C/C++->Preprocessor->Preprocessor Definitions

原句”WIN32;_DEBUG;_WINDOWS;_USRDLL;DATALOG_EXPORTS;%(PreprocessorDefinitions)“把里面_USRDLL删除掉就可以解决此问题。极有可能是加了#include <afx.h>引起这个问题的。

之后可能会出现
如下错误虽然不影响程序的编译运行

3
IntelliSense: #error directive: Please use the /MD switch for _AFXDLL builds
d:\vs2010c++\vc\atlmfc\include\afxver_.h
81 3

可以通过以下设置更改

Project ->Property->Configuration Properties->C/C++->Code Generation->Runtime
Library,在Runtime Library下选中Multithreaded    DLL或Debug Multithreaded DLL。

时间: 2024-10-10 09:58:08

DLL文件编译出错[email protected] already defined in XXX.obj的相关文章

【error LNK2005: "struct HWND__ * ui_hwnd" ([email&#160;protected]@[email&#160;protected]@A) 已经在 Susake.obj 中定义】

产生原因:多文件包含时,全局变量未用extern 解决方法:直接在全局变量前加上extern即可,若要在在其他文件中使用,该变量声明下就ok了~~ 另外引出一个话题,你是不是也发现了这么一个现象?? 比如 A.h A.cpp #include "A.h" #include "B.h" HWND ui_hwnd, hwnd; int main(int argc, char *argv[]) { ui_hwnd = hwnd; return 0; } B.h B.cpp

大环境下MySQL5.6源码安装实战一步步教你 CentOS6.5_64bit下编译安装[email&#160;protected]

l转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/44813039 一.关闭防火墙 chkconfig iptables off service iptables stop 二.检查操作系统上是否安装了MySQL[[email protected] backup]# rpm -qa |grep mysqlqt-mysql-4.6.2-26.el6_4.x86_64mysql-5.1.71-1.el6.x86_64mysql-server-

$ ssh -T -v [email&#160;protected]_在本地用ssh连接github出错[email&#160;protected]: Permission denied (publickey).

$ ssh -T -v [email protected]报错: debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Trying private key: /Users/eveline/.ssh/id_rsa debug1: Trying private key: /Users/eveline/.ssh/id_dsa debug1:

快速获取.NET DLL文件编译时间

当用户现场汇报问题给我们, 我们比较关心的就有用户现场的DLL是什么版本号,是什么时候编译的. 有没有什么办法得到呢?办法是有的. 在网上找了很久终端找到这个软件非常地好用. 直接把文件拖到软件里就行了.请看下面的截图. 下载地址在: http://pan.baidu.com/s/18QtsE http://pan.baidu.com/s/1sjymr0L 参考文献 http://www.cnblogs.com/jiutianxingchen/archive/2013/01/29/2881695

VC中编译出现error LNK2005:xx already defined in xxx.obj问题解决。

网上百度说是在.h头文件中定义了全局变量,然后其他文件包括了该头文件的原因. 解决方法如下: 点击项目配置->linker->General->Force file Output设置为Multiply Defined Symbol Only,这样error就变成了waring,可忽略掉该问题. 不过最好把全局变量放在.cpp文件下,其他文件用到该变量时用extern声明一下即可. 原文地址:https://www.cnblogs.com/SuzanneHuang/p/9368930.ht

SQL Server数据库mdf文件中了勒索病毒[email&#160;protected]_email。

SQL,数据库,勒索病毒,mdf文件中毒,[email protected]_email ***SQL Server数据库mdf文件中了勒索病毒[email protected]_email.扩展名变为[email protected]_email ** 扩展名如下: ***[email protected]_email ***[email protected]_email ***[email protected]_email ***[email protected]_email 解密联系QQ8

makefile中的自动化变量[email&#160;protected],$%,$

转自:http://www.2cto.com/os/201302/191344.html 自动化变量 模式规则中,规则的目标和依赖文件名代表了一类文件名:规则的命令是对所有这 一类文件重建过程的描述,显然,在命令中不能出现具体的文件名,否则模式规则失去 意义.那么在模式规则的命令行中该如何表示文件,将是本小节的讨论的重点. 假如你需要书写一个将.c 文件编译到.o 文件的模式规则,那么你该如何为gcc 书写 正确的源文件名?当然了,不能使用任何具体的文件名,因为在每一次执行模式规则时 源文件名都

error LNK2001: unresolved external symbol &quot;int g_cTemplates&quot; ([email&#160;protected]@3HA)(转)

原文转自:http://blog.sina.com.cn/s/blog_639a2ad70101kpen.html 编译directshow若干问题的解决 1.安装好windows sdk,进入directshow目录下面的directshow\baseclasses,打开baseclasses.sln项目文件,编译,Debug目录下生成strmbasd.lib 2.新建vc filter工程,到工程属性->c/c++下添加包含目录,此步骤为添加directx头文件和directshow头文件,

[email&#160;protected]初体验之前篇-回顾[email&#160;protected]创建项目的流程

模拟实际工作中的操作,假如新开启了一个vue项目,可以先看看上篇博文中的git操作,新建空仓库vue-demo,并拉取到本地,创建本地dev分支后 1. 全局安装vue-cli yarn global add vue-cli // 检查是否已安装成功 vue -V // 2.9.6 2. 使用vue init 创建项目,官方提供了6种模板,对于大多数人而言,工作中选择webpack模板 // 使用vue init 创建项目(.指当前目录) vue init webpack . ? Generat