為什麼vs不能用exe文件
『壹』 VS2010 c++編譯的時候總是出現找不到exe文件、這是個什麼情況求大神光環
VS在生成可執行文件時使用了一種新的技術,該技術生成的可執行文件會伴隨生成一個清單文件(manifest
file)(.manifest後綴文件)(其本質上是XML文檔,你可以用文本編輯器打開看看),並在鏈接完成後將該清單文件嵌入到exe文件中(默認
情況下)。而在FAT32文件系統中,在處理清單文件階段,當增量鏈接時不能完成清單文件的更新(默認情況下),於是造成清單文件嵌入失敗,從而使該
exe文件運行時沒有相應的清單文件而運行失敗並提示如上錯誤。
解決方案很多,列舉如下:
1. 由於這是在鏈接動態運行庫出現的問題,所以你可以選擇代碼生成的連接方式為/MTd而非/MDd,不用這些DLL文件從而避免問題的出現。該方法有一個很顯然的缺點:適用范圍有限,不推薦該方法。
2. 既然跟FAT32系統有關,那麼我們可以選擇在NTFS文件系統中開發從而避免該問題,此方法同上,也是採用的迴避問題的方式,不提倡。
3.
該方法仍與FAT32有關:在項目的「屬性|配置屬性|清單工具|常規」中的「使用FAT32解決辦法」選擇「是」(默認為「否」),重新生成項目即可解
決問題。該方法是唯一真正針對問題所在而提出的解決方法,使清單工具可以正確更新。(此方法是官方解決方法,也比較方便,推薦)
4. 既然問題是在更新嵌入的清單文件時發生的,由於FAT32的原因而未能更新嵌入的清單文件,於是我們有如下兩種解決方法:
(1)不啟用增量鏈接。在項目的「屬性|配置屬性|鏈接器|常規」中的「啟用增量鏈接」選擇「否」。此方法阻斷了問題產生的源頭,其每次生成exe文件時都直接嵌入清單文件,而不是默認的根據時戳而決定是否更新清單文件。
(2)不嵌入清單文件。在項目的「屬性|配置屬性|清單工具|輸入和輸出」中的「嵌入清單」選擇「否」,從而在生成exe文件時附隨生成一個清單文件(默
認情況下,其文件名為exe文件的全名加上「.manifest」),避免了嵌入清單文件可能失敗的問題。在程序運行時,會用到該清單文件。顯然,這種方
式使可執行程序產生了更多的外部依賴,不推薦。
另外,還有一個不能稱為方法的土辦法:每次Build前手動刪除*.ilk文件(增量鏈接文件)(當然可以在項目屬性中寫入刪除命令,使其自動執行),不推薦該土辦法。
最後,總結一下:
1. 此問題只在特定條件下才會出現:在FAT32文件系統中編譯、默認設置(增量模式、不啟用FAT32解決方案、嵌入清單文件)、非第一次生成可執行文件文件(即在增量連接、更新清單文件時)。
2. 解決方案1和4.1方便實用,推薦使用。
『貳』 VS的EXE文件在別的電腦用不了 求大神告訴我怎麼解決
1.在其他電腦上裝對應版本的vc運行庫
2.更改你的工程文件,使用MT方式(使用靜態鏈接庫),重新編譯連接生成exe文件
3.把需要的幾個dll文件跟著exe文件一起拷貝。
4.還有可能你生成的是64位程序,但是其他電腦室32位的。
『叄』 VS2013生成的exe文件雙擊後不能運行
肯定是少了什麼東西,所以不能運行,你看看你項目裡面有沒有引用其他DLL庫,如果引用了,是不是應該拷貝的與exe同目錄呢?
『肆』 程序在vs開發環境下可以運行,直接點debug目錄中的exe文件運行就沒反應
debug下的可執行程序。1.如果不是靜態連接,缺少vs環境下動態鏈接庫等支持2.如果不包含資料庫文件無法運行是很正常的。解決方法,在選項,編譯時選擇靜態連接。將資料庫文件拷進debug目錄
『伍』 求助:用VS2010生成的exe文件為什麼不能直接運行
用vs2010自帶的打包工具打包即可。但也要對方電腦上有.net framework。如果沒有,要額外把這個也打包進去。
『陸』 vs2010出現無法打開.exe,那些重裝都試過了,沒用。怎麼辦啊
你的project是debug的,缺乏很多依賴文件,所以無法打開,你release後就可以打開了,
如果你是想用VS打開你的project,那就打開工程文件,具體後綴名忘了(太久沒寫了),位置在你創建Project時候project所在根目錄
『柒』 VS2010編譯已經成功,但不生成exe文件是什麼問題
所有Visual Studio編譯的程序,只要你用到了C Runtime庫的函數,比如printf等最基本的標准函數,就會鏈接MSVCRxx.dll,裡面的xx是你編譯的Visual Studio的版本號。現在的問題就是你用的VS2010,很多計算機上沒有這個DLL,即使你編譯成Release版本(Debug版本需要更多的庫支持),依然會出現運行不了的情況。解決辦法是你可以靜態鏈接這些庫,這樣就不需要DLL支持,或者你讓目標計算機安裝Visual Studio 2010 Redistribute Package,這個包包含了VS2010編譯出來的程序需要的庫。
『捌』 求解:vs2010無法生成exe文件,無法編譯運行C怎麼辦
我就遇到這樣的情況了,如果你運行別的程序沒問題,那就是程序本身的錯誤,程序的參數類型不匹配之類的問題都會引起不生成exe可執行文件
『玖』 為什麼VS不能生成exe文件
vs2010編譯出來的程序默認是debug模式是要用到系統以外的msvcr100d.ll,這個文件在沒有裝vs或vs運行庫的電腦里一般沒有,release模式默認要用到系統外的msvcr100.dll,這個文件也是一般電腦上沒有,你最好把相應的dll放在同一個文件夾中傳過去,以便正常運行。還有,如果你直接傳exe文件,qq會把這個exe文件重命名成「**.exe.重命名文件」,也就是exe文件到對方那裡成了".重命名"文件,結果對方電腦找不到相關聯的程序,所以提示不知道用什麼打開程序,你可以讓他再重命名成exe文件,要麼你把exe文件放在一個文件夾裡面,然後把文件夾傳過去,文件夾裡面的exe文件是不會重命名的成「.重命名」文件的,只有直接傳exe文件時才會被替換成重命名文件。
『拾』 vs2010里F5可以運行程序,但是直接點擊生成的exe文件不行。
生成的exe應用程序啟動的工作路徑與你控制項的目錄不同,使用相對路徑去訪問外部的文件,或單獨生成dll後拷貝到應用程序的bin目錄下