• 正文
    • 一、打開已有工程遇到的問題與解決方式
    • 二、運行工程出現(xiàn)的問題與解決方式
    • 三、生成exe和dll
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

C++開發(fā)實戰(zhàn)(二):打開已有工程,并編譯生成dll、exe等文件

2024/12/14
2203
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

一、打開已有工程遇到的問題與解決方式

1、如下幾張圖,提示很友好,但我都點擊了確定,并進行了運行,提示:

此項目需要 MFC 庫。從 Visual Studio 安裝程序(單個組件選項卡)為正在使用的任何。。。

2、根據(jù)提示安裝依賴庫

(1)搜索欄搜索應用Visual Studio Installer

(2)雙擊打開,選擇單個組件安裝,選擇?MFC 庫(庫很多,實在不知道哪個庫,就全選,估計相當大)進行安裝

二、運行工程出現(xiàn)的問題與解決方式

1、如圖,有很多錯誤,其中有找不到文件的錯誤:

已啟動生成…
1>------ 已啟動生成: 項目: Sys, 配置: Debug Win32 ------
1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(39,5): warning MSB4211: 正在首次將屬性“IntermediateOutputPath”設置為某個值,但已在“C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets (38,5)”處使用了該屬性。
1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.BuildSteps.Targets(30,5): warning MSB4211: 正在首次將屬性“DebugType”設置為某個值,但已在“C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.BuildSteps.Targets (29,5)”處使用了該屬性。
1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildCurrentBinMicrosoft.Common.CurrentVersion.targets(373,5): warning MSB4211: 正在首次將屬性“CleanFile”設置為某個值,但已在“C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets (38,5)”處使用了該屬性。
1>cl : 命令行 warning D9035: “Gm”選項已否決,并將在將來的版本中移除
1>SysView.cpp
1>D:MinGWprojectsVCAdvancedSysView.cpp(4,10): fatal error C1083: 無法打開預編譯頭文件: “.x86DebugSys.pch”: No such file or directory
1>SysDoc.cpp
1>D:MinGWprojectsVCAdvancedSysDoc.cpp(4,10): fatal error C1083: 無法打開預編譯頭文件: “.x86DebugSys.pch”: No such file or directory
1>Sys.cpp
1>D:MinGWprojectsVCAdvancedSys.cpp(4,10): fatal error C1083: 無法打開預編譯頭文件: “.x86DebugSys.pch”: No such file or directory
1>StdAfx.cpp
1>D:MinGWprojectsVCAdvancedStdAfx.cpp(5,10): fatal error C1083: 無法打開預編譯頭文件: “.x86DebugSys.pch”: No such file or directory
1>MainFrm.cpp
1>D:MinGWprojectsVCAdvancedMainFrm.cpp(4,10): fatal error C1083: 無法打開預編譯頭文件: “.x86DebugSys.pch”: No such file or directory
1>DIOView.cpp
1>D:MinGWprojectsVCAdvancedDIOView.cpp(4,10): fatal error C1083: 無法打開預編譯頭文件: “.x86DebugSys.pch”: No such file or directory
1>DIOFrm.cpp
1>D:MinGWprojectsVCAdvancedDIOFrm.cpp(4,10): fatal error C1083: 無法打開預編譯頭文件: “.x86DebugSys.pch”: No such file or directory
1>DIODoc.cpp
1>D:MinGWprojectsVCAdvancedDIODoc.cpp(4,10): fatal error C1083: 無法打開預編譯頭文件: “.x86DebugSys.pch”: No such file or directory
1>ChildFrm.cpp
1>D:MinGWprojectsVCAdvancedChildFrm.cpp(4,10): fatal error C1083: 無法打開預編譯頭文件: “.x86DebugSys.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 Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(39,5): warning MSB4211: 正在首次將屬性“IntermediateOutputPath”設置為某個值,但已在“C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets (38,5)”處使用了該屬性。 1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.BuildSteps.Targets(30,5): warning MSB4211: 正在首次將屬性“DebugType”設置為某個值,但已在“C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.BuildSteps.Targets (29,5)”處使用了該屬性。 1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildCurrentBinMicrosoft.Common.CurrentVersion.targets(373,5): warning MSB4211: 正在首次將屬性“CleanFile”設置為某個值,但已在“C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppCommon.targets (38,5)”處使用了該屬性。 1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppBuild.targets(439,5): error MSB8020: 無法找到 Visual Studio 2010 的生成工具(平臺工具集 =“v100”)。若要使用 v100 生成工具進行生成,請安裝 Visual Studio 2010 生成工具。或者,可以升級到當前 Visual Studio 工具,方式是通過選擇“項目”菜單或右鍵單擊該解決方案,然后選擇“重定解決方案目標”。 1>已完成生成項目“Sys.vcxproj”的操作 - 失敗。 ========== 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 ==========

3、重定向項目,又出現(xiàn)了找不到文件的錯誤

4、不使用編譯頭進行處理,成功解決該問題

5、只是報了另一個錯誤:無法啟動程序,系統(tǒng)找不到指定文件,目錄下確實也沒有

1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(D:MinGWprojectsVCAdvancedx64ReleaseSys.exe) 與 Linker 的 OutputFile 屬性值(D:MinGWprojectsVCAdvancedSys_64.exe)不匹配。這可能導致項目生成不正確。若要更正此問題,請確保 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值與 %(Link.OutputFile) 中指定的值匹配。
1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppBuild.targets(1365,5): warning MSB8012: TargetName(Sys) 與 Linker 的 OutputFile 屬性值(Sys_64)不匹配。這可能導致項目生成不正確。若要更正此問題,請確保 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值與 %(Link.OutputFile) 中指定的值匹配。
1>Sys.vcxproj -> D:MinGWprojectsVCAdvancedx64ReleaseSys.exe

6、根據(jù)提示進行處理

1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetPath(C:UsersyeqinfangDesktopOUTSys.exe.exe) 與 Linker 的 OutputFile 屬性值(C:UsersyeqinfangDesktopOUTSys.exe)不匹配。這可能導致項目生成不正確。若要更正此問題,請確保 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值與 %(Link.OutputFile) 中指定的值匹配。
1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.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已經(jīng)通過上述方式實現(xiàn),這里不再重復。那么,如何生成dll文件呢?

1、在上述的基礎上,設置如下:沒有生成文件,原因也有提示

已啟動生成…
1>------ 已啟動生成: 項目: Sys, 配置: Release x64 ------
1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160Microsoft.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:UsersyeqinfangDesktopOUT002Sys.dll
1>已完成生成項目“Sys.vcxproj”的操作。
========== 生成: 成功 1 個,失敗 0 個,最新 0 個,跳過 0 個 ==========

2、重新創(chuàng)建工程,將有用的代碼復制到該工程,繼續(xù)嘗試

報錯信息還是一樣,不過這次生成了dll文件,感覺沒搞懂這個機制。先不管了,用起來再說!

相關推薦