C++开发实战(二):打开已有工程,并编译生成dll、exe等文件

一、打开已有工程遇到的问题与解决方式

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文件,感觉没搞懂这个机制。先不管了,用起来再说!

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lion King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值