fatal error C1902: Program database manager mismatch; please check your installation; error LNK2001:

解决C1902错误
本文介绍了解决Microsoft Visual Studio中出现的fatal error C1902问题的方法。该错误通常由于mspdb80.dll与mspdbsrv.exe不匹配引起。文中提供了一个简单的解决方案:确保IDE未运行,使用任务管理器结束mspdbsrv.exe进程,卸载产品并清理所有旧文件,然后重新安装。

问题“fatal error C1902: Program database manager mismatch; please check your installation”的解决方案:

Well, I belive it is not really a compiler bug.
Here are steps how I got it and solve:

1. I like to compile some sources from the command prompt, so I added to the PATH environment 
variable - "C:/Program Files/Microsoft Visual Studio 8/VC/bin/". 
After that I had to copy some files from "C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/"
 to get cl.exe working (one of files was mspdb80.dll).
 
2. Some time later I tryed to compile a project from MSDev and got C1902 error.
3. With MSDN search I got to this place to see Jonathan Caves's helpful message about mspdbsrv.exe.
4. I just copied that EXE to /VC/bin/ and everithing becomes Ok.
5. Now I can compile anything from both MSDev and C:/ :).

IMHO this problem arises when mspdb80.dll exists in some of directories that are listed in the PATH environment variable, but mspdbsrv.exe does not. By default, both of them are not on the search path, so just guys like me who are copying files around HDD are able to face this problem :).

Thanks for help. Hope this post will be of some use.


I suspect that there is a more fundamental problem here. It seems that somehow you have
 got a mismatched mspdb80.dll and mspdbsrv.exe on your system. The only fix, 
 unfortunately, is to do a re-install of the product.

Here's the steps I would advise:

Make sure the IDE is not running

Run "Task Manager" and click on the "Processes" tab: if there is a mspdbsrv.exe process running 
then select the process and then click on "End Process" button at the bottom

Uninstall the product

At this point you might want to search for any copies of "mspdbsrv.exe" and "mspdb80.dll" 
on your machine: you may have older versions left over from an earlier install: 
if you find any you should delete them.

Once you are certain that your machine is clean you can then re-install the product.

These steps, hopefully, will ensure that you have matched versions of mspdb80.dll and mspdbsrv.exe

在UE(Unreal Engine)中,error LNK2019和fatal error LNK1120通常是相互关联的,error LNK2019表示无法解析的外部符号,而fatal error LNK1120则是对未解析外部符号数量的总结。对于UE中出现的类似报错,以“UnrealEditor - TimerLineForUI.dll : fatal error LNK1120: 1个无法解析的外部命令”为例,具体报错为“error LNK2019: 无法解析的外部符号 "__declspec(dllimport) class UClass * __cdecl Z_Construct_UClass_UUserWidget_NoRegister(void)"”,可以尝试以下解决办法: ### 检查依赖项 确保项目中包含了所有必要的模块和库。在UE项目中,模块的依赖关系通常在`.Build.cs`文件中定义。检查`TimerLineForUI`模块的`.Build.cs`文件,确认是否正确包含了与`UUserWidget`相关的模块。例如: ```csharp PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "UMG" }); ``` 这里的`UMG`模块是与用户界面相关的,可能包含了`UUserWidget`的定义。 ### 重新生成项目文件 有时项目文件可能会损坏或过时,导致链接错误。可以通过以下步骤重新生成项目文件: - 关闭UE编辑器。 - 找到项目根目录下的`.uproject`文件,右键点击,选择“Generate Visual Studio project files”。 - 重新打开项目。 ### 清理和重建解决方案 在Visual Studio中,清理和重建解决方案可以帮助解决一些编译和链接问题: - 右键点击解决方案资源管理器中的解决方案名称,选择“Clean Solution”。 - 清理完成后,再次右键点击解决方案名称,选择“Rebuild Solution”。 ### 检查引擎版本兼容性 确保使用的UE引擎版本与项目兼容。不同版本的UE可能会有一些API或模块的变化,如果使用了不兼容的版本,可能会导致链接错误。 ### 检查代码实现 确保代码中正确实现了所有引用的函数和类。在报错信息中提到的`Z_Construct_UClass_UUserWidget_NoRegister`函数,检查是否在代码中有正确的实现或引用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值