Windows下VS開發環境

2021-10-17 00:05:07 字數 2047 閱讀 9999

mfc程式的編譯設定

關於debug和release的提示

環境安裝

開啟專案工程之後,右擊專案工程,選中並單擊「屬性」,開啟屬性頁。屬性頁介面如圖所示。

在「平台工具集」裡選擇「visual studio 2015 - windows xp (v140xp)」,即帶有「windows xp (v140xp)」字樣的選項,這表示程式相容xp系統,它可以在xp系統下正常執行。設定相容xp系統的介面如下所示。

繼續上面的操作,單擊左側「c/c++」前面的三角形標號,展開選項;然後,單擊「**生成」選項,這時便可以在右側頁面看到「執行庫」的預設值是「mdd」。如果此時你的專案是debug模式的,則選擇「mtd」;若是release模式的,則選擇「mt」。其中mt是「multithread, static version」的縮寫,即多執行緒靜態版本;d是「debug」的縮寫,即debug模式。執行庫的設定介面如下圖所示。

根據上面兩步操作——設定相容xp系統和靜態編譯執行庫,編譯出來的控制台程式和dll程式就能直接在windows系統上載入執行了。

對於mfc程式,還需要額外的操作。

在 「mfc的使用」 選項中設定 「在靜態庫中使用mfc」,這樣根據上面兩步操作——設定相容xp系統和靜態編譯執行庫,編譯出來的控制台程式和dll程式就能直接在windows系統上載入執行了。

「程式在debug模式下執行正常,而在release模式下執行卻出錯。」 的問題總結。

在vs開發環境中,debug模式和release模式並沒有本質上的區別,它們編譯使用的都是同乙份原始碼,這是眾所周知的。

其中,debug通常稱為除錯版本。通過一系列編譯選項的配合,編譯結果通常包含除錯資訊,而且不進行任何優化,這為開發人員提供強大的應用程式除錯能力。而release通常稱為發布版本,是為使用者使用的。一般,客戶不允許在發布版本上進行除錯,所以它不儲存除錯資訊,同時,它往往進行各種優化,以期達到**量最小和速度最優,為使用者的使用提供便利。

debug模式和release模式的唯一區別,就是在vs開發環境裡編譯選項的區別。在明確了這一點之後,就不得不重新思考程式的編譯設定了。

首先,程式在debug模式下正常執行,所以,**肯定是沒有問題的,這排除了**有問題的假設。

然而,程式在release模式下編譯通過,執行卻出錯了。通過上面的介紹,我們知道debug模式和release模式只是編譯選項的區別,所以確定出錯是由一些編譯設定的問題導致的。

考慮到程式裡面可能使用到了開源的第三方庫,而且第三方庫也是自己編譯出來的。在release模式下出錯的位置,也是在執行第三方庫**時候報錯的位置。這樣一來,便確定了出錯原因:在呼叫第三方庫時,debug模式和release模式的編譯選項和第三方庫的編譯選項可能沒有對應,這很有可能就是執行庫的設定問題。

在release模式下,開啟專案工程的屬性頁後,展開「c/c++」,單擊「**生成」,更改「執行庫」裡的選項,依次更改為「多執行緒(/mt)」「多執行緒除錯(/mtd)」「多執行緒dll(/md)」「多執行緒除錯dll(/mdd)」進行測試。

經測試發現,在更改為「多執行緒除錯(/mtd)」的時候,生成的程式可以正常執行,問題得以解決。正如之前所介紹的,在「/mtd」中,mt表示「multithread, static version」,d表示「debug」。該程式是在release模式下,一開始便選擇了「/mt」去編譯。設定為「多執行緒除錯(/mtd)」的時候,程式正常,原因是第三方庫在release模式下編譯的時候,執行庫設定為「多執行緒除錯(/mtd)」,從而導致這個問題的產生。

Windows 環境下開發 Hyperf

1.開啟 hyper v。docker run v d hypef demo hyperf skeleton p 9501 9501 it entrypoint bin sh hyperf hyperf latest 映象容器執行後,在容器內安裝 composer php r copy compos...

VS2015 windows開發環境配置

從vs2015開始,crt有乙個改動,部分c函式被移出去了,出了個ucrt。當你發現編譯的時候總是缺少c的標頭檔案,就需要手動新增目錄以便支援新的ucrt,msdn文章裡有介紹,如何在vs2015裡用ucrt庫來編譯程式 關鍵步驟是把下面的巨集加到搜尋目錄中去。universalcrt includ...

Windows下配置Django開發環境

windows下配置django開發環境 1 如你想在c 下建立乙個django工程,在dos下 如 cd c 2 執行 django admin.py startproject mysite 命令在當前目錄建立乙個 mysite 目錄。3 進入 mysite 目錄 cd mysite 4 並執行 ...