一、打开已有工程遇到的问题与解决方式
1、如下几张图,提示很友好,但我都点击了确定,并进行了运行,提示:
此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何。。。
2、根据提示安装依赖库
(1)搜索栏搜索应用Visual Studio Installer
(2)双击打开,选择单个组件安装,选择 MFC 库(库很多,实在不知道哪个库,就全选,估计相当大)进行安装
二、运行工程出现的问题与解决方式
1、如图,有很多错误,其中有找不到文件的错误:
已启动生成…
1>------ 已启动生成: 项目: Sys, 配置: Debug Win32 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(39,5): warning MSB4211: 正在首次将属性“IntermediateOutputPath”设置为某个值,但已在“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets (38,5)”处使用了该属性。
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.BuildSteps.Targets(30,5): warning MSB4211: 正在首次将属性“DebugType”设置为某个值,但已在“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.BuildSteps.Targets (29,5)”处使用了该属性。
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(373,5): warning MSB4211: 正在首次将属性“CleanFile”设置为某个值,但已在“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets (38,5)”处使用了该属性。
1>cl : 命令行 warning D9035: “Gm”选项已否决,并将在将来的版本中移除
1>SysView.cpp
1>D:\MinGW\projects\VC\Advanced\SysView.cpp(4,10): fatal error C1083: 无法打开预编译头文件: “.\x86\Debug\Sys.pch”: No such file or directory
1>SysDoc.cpp
1>D:\MinGW\projects\VC\Advanced\SysDoc.cpp(4,10): fatal error C1083: 无法打开预编译头文件: “.\x86\Debug\Sys.pch”: No such file or directory
1>Sys.cpp
1>D:\MinGW\projects\VC\Advanced\Sys.cpp(4,10): fatal error C1083: 无法打开预编译头文件: “.\x86\Debug\Sys.pch”: No such file or directory
1>StdAfx.cpp
1>D:\MinGW\projects\VC\Advanced\StdAfx.cpp(5,10): fatal error C1083: 无法打开预编译头文件: “.\x86\Debug\Sys.pch”: No such file or directory
1>MainFrm.cpp
1>D:\MinGW\projects\VC\Advanced\MainFrm.cpp(4,10): fatal error C1083: 无法打开预编译头文件: “.\x86\Debug\Sys.pch”: No such file or directory
1>DIOView.cpp
1>D:\MinGW\projects\VC\Advanced\DIOView.cpp(4,10): fatal error C1083: 无法打开预编译头文件: “.\x86\Debug\Sys.pch”: No such file or directory
1>DIOFrm.cpp
1>D:\MinGW\projects\VC\Advanced\DIOFrm.cpp(4,10): fatal error C1083: 无法打开预编译头文件: “.\x86\Debug\Sys.pch”: No such file or directory
1>DIODoc.cpp
1>D:\MinGW\projects\VC\Advanced\DIODoc.cpp(4,10): fatal error C1083: 无法打开预编译头文件: “.\x86\Debug\Sys.pch”: No such file or directory
1>ChildFrm.cpp
1>D:\MinGW\projects\VC\Advanced\ChildFrm.cpp(4,10): fatal error C1083: 无法打开预编译头文件: “.\x86\Debug\Sys.pch”: No such file or directory
1>正在生成代码...
1>已完成生成项目“Sys.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
2、处理找不到文件的错误,不过有新的提示
已启动生成…
1>------ 已启动生成: 项目: Sys, 配置: Debug x64 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(39,5): warning MSB4211: 正在首次将属性“IntermediateOutputPath”设置为某个值,但已在“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets (38,5)”处使用了该属性。
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.BuildSteps.Targets(30,5): warning MSB4211: 正在首次将属性“DebugType”设置为某个值,但已在“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.BuildSteps.Targets (29,5)”处使用了该属性。
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(373,5): warning MSB4211: 正在首次将属性“CleanFile”设置为某个值,但已在“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets (38,5)”处使用了该属性。
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(439,5): error MSB8020: 无法找到 Visual Studio 2010 的生成工具(平台工具集 =“v100”)。若要使用 v100 生成工具进行生成,请安装 Visual Studio 2010 生成工具。或者,可以升级到当前 Visual Studio 工具,方式是通过选择“项目”菜单或右键单击该解决方案,然后选择“重定解决方案目标”。
1>已完成生成项目“Sys.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
3、重定向项目,又出现了找不到文件的错误
4、不使用编译头进行处理,成功解决该问题
5、只是报了另一个错误:无法启动程序,系统找不到指定文件,目录下确实也没有
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(D:\MinGW\projects\VC\Advanced\x64\Release\Sys.exe) 与 Linker 的 OutputFile 属性值(D:\MinGW\projects\VC\Advanced\Sys_64.exe)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1365,5): warning MSB8012: TargetName(Sys) 与 Linker 的 OutputFile 属性值(Sys_64)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
1>Sys.vcxproj -> D:\MinGW\projects\VC\Advanced\x64\Release\Sys.exe
6、根据提示进行处理
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(C:\Users\yeqinfang\Desktop\OUT\Sys.exe.exe) 与 Linker 的 OutputFile 属性值(C:\Users\yeqinfang\Desktop\OUT\Sys.exe)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(1365,5): warning MSB8012: TargetName(Sys.exe) 与 Linker 的 OutputFile 属性值(Sys)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
7、运行之后又有新问题
线程 0x32c4 已退出,返回值为 0 (0x0)。
线程 0xccbc 已退出,返回值为 0 (0x0)。
线程 0xbe5c 已退出,返回值为 0 (0x0)。
线程 0xc9a8 已退出,返回值为 0 (0x0)。
线程 0xdbe4 已退出,返回值为 0 (0x0)。
程序“[50280] Sys .exe”已退出,返回值为 0 (0x0)。
8、上述问题解决办法
三、生成exe和dll
exe已经通过上述方式实现,这里不再重复。那么,如何生成dll文件呢?
1、在上述的基础上,设置如下:没有生成文件,原因也有提示
已启动生成…
1>------ 已启动生成: 项目: Sys, 配置: Release x64 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(499,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
1>stdafx.cpp
1>Sys.cpp
1>======== Welcome to use our art company's products!
1>======== Automatically linking with USB5538_64.dll...
1>======== Successfully linked with USB5538_64.dll
1>正在生成代码
1>Previous IPDB not found, fall back to full compilation.
1>All 1 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
1>已完成代码的生成
1>Sys.vcxproj -> C:\Users\yeqinfang\Desktop\OUT002\Sys.dll
1>已完成生成项目“Sys.vcxproj”的操作。
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========
2、重新创建工程,将有用的代码复制到该工程,继续尝试
报错信息还是一样,不过这次生成了dll文件,感觉没搞懂这个机制。先不管了,用起来再说!文章来源:https://www.toymoban.com/news/detail-457948.html
文章来源地址https://www.toymoban.com/news/detail-457948.html
到了这里,关于C++开发实战(二):打开已有工程,并编译生成dll、exe等文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!