Linking...时出错,都是error LNK2005和fatal error LNK1169错误,这种错误该怎么解决呢?谢谢

sct 2005-07-21 09:05:03
我在程序中的Cert.h中定义并实现了一些变量、结构和函数,因为在Tab1Dlg.cpp和Tab2Dlg.cpp中都要用到这些变量和函数,所以我在Tab1Dlg.cpp和Tab2Dlg.cpp中都加入了#include "Cert.h",但编译时出错了:
--------------------Configuration: CSP - Win32 Debug--------------------
Compiling resources...
Compiling...
StdAfx.cpp
Compiling...
CSP.cpp
CSPDlg.cpp
Tab1Dlg.cpp
Tab2Dlg.cpp
Tab3Dlg.cpp
Generating Code...
Linking...
Tab2Dlg.obj : error LNK2005: "class CString __cdecl GetErrorMeg(void)" (?GetErrorMeg@@YA?
AVCString@@XZ) already defined in Tab1Dlg.obj
Tab2Dlg.obj : error LNK2005: "struct _CERT_CONTEXT const * __cdecl FindCertificate(char *,char *,unsigned long,struct _CRYPTOAPI_BLOB * *,unsigned long *,unsigned long *)" (?
FindCertificate@@YAPBU_CERT_CONTEXT@@PAD0KPAPAU_CRYPTOAPI_BLOB@@PAK2@Z) alr
eady defined in Tab1Dlg.obj
Tab2Dlg.obj : error LNK2005: "int __stdcall MyCryptEnumProviders(unsigned long,unsigned long *,unsigned long,unsigned long *,char *,unsigned long *)" (?
MyCryptEnumProviders@@YGHKPAKK0PAD0@Z) already defined in Tab1Dlg.obj
Tab2Dlg.obj : error LNK2005: "int __cdecl CreateCertificate(char *,unsigned long,char
*,unsigned short,unsigned long,int,int,unsigned long,char *,int,int,char *,char *,int,int,char *,char *,char *)" (?CreateCertificate@@YAHPADK0GKHHK0HH00HH000@Z) al
ready defined in Tab1Dlg.obj
Tab2Dlg.obj : error LNK2005: "int __cdecl ImportCertificate(char *,char *,char *,char
*,int,unsigned long)" (?ImportCertificate@@YAHPAD000HK@Z) already defined in Tab1Dlg.obj
Tab2Dlg.obj : error LNK2005: "char * g_szEmpty" (?g_szEmpty@@3PADA) already defined in
Tab1Dlg.obj
Tab2Dlg.obj : error LNK2005: "char * g_szMyStore" (?g_szMyStore@@3PADA) already defined in Tab1Dlg.obj
Tab2Dlg.obj : error LNK2005: "char * * g_szSigAlg" (?g_szSigAlg@@3PAPADA) already defined in Tab1Dlg.obj
Tab2Dlg.obj : error LNK2005: "struct tagEnhKeyUsage g_EnhKeyUsage" (?g_EnhKeyUsage@@3UtagEnhKeyUsage@@A) already defined in Tab1Dlg.obj
Debug/CSP.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

CSP.exe - 10 error(s), 0 warning(s)
--------------------------------------
都是error LNK2005和fatal error LNK1169错误,这种错误该怎么解决呢?
我尝试着将Cert.h中的内容放到CSP.h或者StdAfx.h中,
但是还是出现同样的error LNK2005和fatal error LNK1169错误.


...全文
572 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
up_down 2005-07-21
  • 打赏
  • 举报
回复
Cert.h有没有包含StdAfx.h?
huqian2003 2005-07-21
  • 打赏
  • 举报
回复
同意楼上的和沙发上的
4inSky 2005-07-21
  • 打赏
  • 举报
回复
变量和函数是一样的,如果是全局的,就不要在。h中声明,否则很容易重复定义。

在某个cpp文件中声明一个全局变量(或函数)后,如果有使用到该变量(或函数)的地方,就先包含该cpp文件的.h文件,然后在用extern命令声明一下就可以了。

sct 2005-07-21
  • 打赏
  • 举报
回复
小弟菜鸟,上面这位大哥可否说的具体一点,变量在.h文件里做extern?
那函数呢?在.h中定义,在.cpp中实现?
我在Cert.cpp中加入#include "Cert.h",然后是函数的实现,但是却出错了:
--------------------Configuration: CSP - Win32 Debug--------------------
Compiling...
Cert.cpp
f:\weicf\vc\about csp\cert\backup\csp3\cert.cpp(1731) : fatal error C1010: unexpected end of

file while looking for precompiled header directive
Error executing cl.exe.

CSP.exe - 1 error(s), 0 warning(s)

这个fatal error C1010该怎么解决呢?
多谢各位指点
碧螺春的马甲 2005-07-21
  • 打赏
  • 举报
回复
变量适合在.cpp里声明,在.h文件里做extern。
kugou123 2005-07-21
  • 打赏
  • 举报
回复
1.没有StdAfx.h
2.你可以在编译器里面去掉预编译头。

MTK 技术总结 一、环境与编译注意 在编译生成版本之前需要对环境目录进行修改, 将 \SUNNY26_05C.W06.16_F1_MMI\make 目录下的Option.mak 文件中 DIR_ARM = c:\Progra~1\ARM\RVCT DIR_ARM = c:\progra~1\arm\adsv1_2 ARM 环境的安装目录对应正确。否则make 有两个error,提示app 错误 当用make 或Res_Generator.bat 生成,如果出现“找不到文件– SB_JWPSET.PBM” 则正确,否则错误。 一般使用sourceInsight 和make 配合使用,然后在debug 中运行。或用VC 编程序调试。 注意VC 模拟器和make 之间有差别 在#if #else 等地方可能有多条一样的语句需要添加。 已经有一模拟器不能再运行另一个模拟器,会出现问题 --------------------Configuration: PixtelMMI - Win32 Debug-------------------- Linking... LINK : fatal error LNK1168: cannot open Debug/PixtelMMI.exe for writing Error executing link.exe. PixtelMMI.exe - 1 error(s), 0 warning(s) 添加菜单最好使用代码比较工具用现成工程添加 Make 出错判断: build\SUNNY_F181\ MT6226M.log 连接错误 build\SUNNY_F181\log 编译错误 二、plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt 添加字符串资源 最后 STR_ID_TEST_MYTEST Undefined 20 MYTEST MYTES T 我的测试我的测试MYTEST MYTEST MYTEST 三、plutommi\mmi\Inc\ GlobalMenuItems.h 菜单ID //zdd begin 20050929 added for kkclub download MENU_SETTING_WALLPAPER_KKCLUB, MENU_SETTING_SS_KKCLUB, MENU_SETTING_POWER_ON_KKCLUB, MENU_SETTING_POWER_OFF_KKCLUB, MENU_TONE_SETUP_KKCLUB, //zdd end 20050929 added for kkclub download //zdd++ 20060414 for new kkclub MENU_KKCLUB_OPTION, MENU_KKCLUB_OPTION_BACK, MENU_KKCLUB_OPTION_CHANGEMENU,

16,551

社区成员

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

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

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