我有一个 Visual Studio C++ 2017 解决方案。
该解决方案有两个项目:
my_cpp_project
my_cpp_project_unit_test
我在构建解决方案时遇到以下错误:
1>------ Rebuild All started: Project: my_cpp_project, Configuration: Debug x64 ------
1>my_cpp_project.cpp
1>my_cpp_project.vcxproj -> C:\git\my_cpp_project_directory\x64\Debug\my_cpp_project.exe
2>------ Rebuild All started: Project: my_cpp_project_unit_test, Configuration: Debug x64 ------
2>pch.cpp
2>test_autocorrelations.cpp
2>test_energy.cpp
2>Generating Code...
2> Creating library C:\git\my_cpp_project_directory\x64\Debug\my_cpp_project_unit_test.lib and object C:\git\my_cpp_project_directory\x64\Debug\my_cpp_project_unit_test.exp
2>
2>LINK : fatal error LNK1000: Internal error during IMAGE::BuildImage
2>
2> Version 14.16.27051.0
2>
2> ExceptionCode = C0000005
2> ExceptionFlags = 00000000
2> ExceptionAddress = 5829282E (58290000) "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\VCRUNTIME140.dll"
2> NumberParameters = 00000002
2> ExceptionInformation[ 0] = 00000001
2> ExceptionInformation[ 1] = FFBA0000
2>
2>CONTEXT:
2> Eax = 00AF5488 Esp = 003AECA8
2> Ebx = 00AF5408 Ebp = 003AECD4
2> Ecx = 00000080 Esi = 00AF5408
2> Edx = 00000080 Edi = FFBA0000
2> Eip = 5829282E EFlags = 00010247
2> SegCs = 00000023 SegDs = 0000002B
2> SegSs = 0000002B SegEs = 0000002B
2> SegFs = 00000053 SegGs = 0000002B
2> Dr0 = 00000000 Dr3 = 00000000
2> Dr1 = 00000000 Dr6 = 00000000
2> Dr2 = 00000000 Dr7 = 00000000
2>Done building project "my_cpp_project_unit_test.vcxproj" -- FAILED.
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========
我该如何解决这个问题?
到目前为止我已经尝试过:
禁用预编译头文件 (PCH)
一个。右键单击您的项目(例如,超越_cpp_copy_unit_test)并选择属性。
b.在 C/C++ > 预编译头下,将预编译头更改为不使用预编译头。
c.尝试在此更改后重建解决方案。
调整链接器设置
一个。打开您的项目属性。
b.导航到链接器 > 高级并尝试将图像具有安全异常处理程序更改为否。
c.或者,在链接器 > 优化下将链接时间代码生成选项设置为禁用。
重新安装工具链
这些操作并没有解决问题。
我尝试了各种方法来解决与MSTest相关的问题,但最终失败了。
所以,我以间接的方式解决了这个问题。
*.vcxproj
打开每个
notepad++
10.0.XXXX
中的 <WindowsTargetPlatformVersion>10.0.XXXX</WindowsTargetPlatformVersion>
替换为 8.1
。v142
中的 <PlatformToolset>v142</PlatformToolset>
替换为 v141
现在,一切正常。