導航:首頁 > 源碼編譯 > 微軟編譯教程

微軟編譯教程

發布時間:2023-02-27 18:42:36

1. 如何在Windows下編譯OpenSSL

筆者按照一定的步驟成功了編譯了OpenSSL庫,步驟如下:

1)在微軟網站下載並安裝VS Studio,筆者寫博客之時的最新版本是2013,連接如下

2)從下載並安裝ActivePerl。

3)從下載並安裝Nasm匯編器。

4)從下載並安裝OpenSSL的最新Release包。筆者寫博客之時,最新的OpenSSL包是:4459777
Feb 11 16:34:23 2013 openssl-1.0.1e.tar.gz (MD5) (SHA1) (PGP sign) [LATEST]

這里需要強調的是,讀者未必需要完全按照筆者的步驟編譯OpenSSL庫,這里的部分次序是可以互換的。

在完成所有上述5步後,我們就可以解壓縮OpenSSL包,在對它進行修改便可以編譯了。在解壓縮後,所有的源代碼放在openssl- 1.0.1e目錄下,在此目錄下,有兩個文件INSTALL.W32, INSTALL.W64需要被關注。打開其中的任何一個文件,你會看到如何編譯OpenSSL的各個步驟。這里,筆者將會再啰嗦一下。

1)打開VS Studio命令行工具,如圖1所示。若編譯64位OpenSSL庫,請打開Visual Studio x64 Win64 Command Prompt,反之亦然。

圖1

2)配置編譯文件及安裝目錄;

編譯Win32:perl Configure VC-WIN32 --prefix=c:\some\openssl\dir

編譯Win64:perl Configure VC-WIN64A

「c:\some\openssl\dir」目錄可以改成任何你希望的安裝目錄

3)搭建編譯環境:

ms\do_nasm

ms\do_ms

對於64位編譯,將ms\do_ms替換成ms\do_win64a

4)編譯OpenSSL

nmake -f ms\ntdll.mak

5)安裝編譯生成的庫到「c:\some\openssl\dir」

nmake -f ms\ntdll.mak install

執行後搞定了嗎?若沒有,是不是遺忘的中間的某個步驟?

2. c語言怎麼用微軟的軟體編譯(過程)

DOS下面是沒有cl的,cl是Windows下命令行方式的編譯工具,IDE也是調用它編譯的。直接cl.exe /help就能看到幫助,貼給你吧 VS2010的(2012的可以交叉編譯ARM架構的目標代碼)

用於 80x86 的 Microsoft (R) 32 位 C/C++ 優化編譯器 16.00.40219.01 版
版權所有(C) Microsoft Corporation。保留所有權利。

C/C++ 編譯器選項

-優化-

/O1 最小化空間 /O2 最大化速度
/Ob<n> 內聯擴展(默認 n=0) /Od 禁用優化(默認)
/Og 啟用全局優化 /Oi[-] 啟用內部函數
/Os 優選代碼空間 /Ot 優選代碼速度
/Ox 最大化優化 /Oy[-] 啟用幀指針省略

-代碼生成-

/GF 啟用只讀字元串池 /Gm[-] 啟用最小重新生成
/Gy[-] 分隔鏈接器函數 /GS[-] 啟用安全檢查
/GR[-] 啟用 C++ RTTI /GX[-] 啟用 C++ EH (與 /EHsc 相同)
/EHs 啟用 C++ EH (沒有 SEH 異常) /EHa 啟用 C++ EH (w/ SEH 異常)
/EHc 外部「C」默認為 nothrow
/fp:<except[-]|fast|precise|strict> 選擇浮點模式:
except[-] - 在生成代碼時考慮浮點異常
fast -「fast」浮點模式;結果可預測性比較低
precise -「precise」浮點模式;結果可預測
strict -「strict」 浮點模式(意味著 /fp:except)
即使使用 /fp:except,/Qfast_transcendentals 也生成內聯內部 FP
/GL[-] 啟用鏈接時代碼生成 /GA 為 Windows 應用程序進行優化
/Ge 對所有函數強制堆棧檢查 /Gs[num] 控制堆棧檢查調用
/Gh 啟用 _penter 函數調用 /GH 啟用 _pexit 函數調用
/GT 生成纖程安全 TLS 訪問 /RTC1 啟用快速檢查(/RTCsu)
/RTCc 轉換為較小的類型檢查 /RTCs 堆棧幀運行時檢查
/RTCu 未初始化的局部用法檢查
/clr[:option] 為公共語言運行時編譯,其中 option 是:
pure - 生成只包含 IL 的輸出文件(沒有本機可執行代碼)
safe - 生成只包含 IL 的可驗證輸出文件
oldSyntax - 接受 Visual C++ 2002/2003 的託管擴展語法
initialAppDomain - 啟用 Visual C++ 2002 的初始 AppDomain 行為
noAssembly - 不產生程序集 /Gd __cdecl 調用約定
/Gr __fastcall 調用約定 /Gz __stdcall 調用約定
/GZ 啟用堆棧檢查(/RTCs) /QIfist[-] 使用 FIST 而不是 ftol()
/hotpatch 確保可熱修補映像的函數填充
/arch:<SSE|SSE2|AVX> CPU 架構的最低要求,以下選項之一:
SSE - 啟用支持 SSE 的 CPU 可用的指令
SSE2 - 啟用支持 SSE2 的 CPU 可用的指令
AVX - 支持使用 Intel(R) 高級矢量擴展指令
/Qimprecise_fwaits 僅在「try」邊界而不是「try」內部生成 FWAITs
/Qsafe_fp_loads 生成安全 FP 負載

-輸出文件-

/Fa[file] 命名程序集列表文件 /FA[scu] 配置程序集列表
/Fd[file] 命名 .PDB 文件 /Fe<file> 命名可執行文件
/Fm[file] 命名映射文件 /Fo<file> 命名對象文件
/Fp<file> 命名預編譯頭文件 /Fr[file] 命名源瀏覽器文件
/FR[file] 命名擴展 .SBR 文件 /Fi[file] 命名預處理的文件
/doc[file] 處理 XML 文檔注釋,並可選擇命名 .xdc 文件

-預處理器-

/AI<dir> 添加到程序集搜索路徑 /FU<file> 強制使用程序集/模塊
/C 不抽出注釋 /D<name>{=|#}<text> 定義宏
/E 預處理到 stdout /EP 預處理到 stdout,無行號
/P 預處理到文件 /Fx 將插入的代碼合並到文件中
/FI<file> 命名強制包含文件 /U<name> 移除預定義的宏
/u 移除所有預定義的宏 /I<dir> 添加到包含搜索路徑
/X 忽略「標准位置」

-語言-

/Zi 啟用調試信息 /Z7 啟用舊式調試信息
/Zp[n] 在 n 位元組邊界上包裝結構 /Za 禁用擴展
/Ze 啟用擴展(默認) /Zl 省略 .OBJ 中的默認庫名
/Zg 生成函數原型 /Zs 只進行語法檢查
/vd{0|1|2} 禁用/啟用 vtordisp /vm<x> 指向成員的指針類型
/Zc:arg1[,arg2] C++ 語言合規性,這里的參數可以是:
forScope[-] - 對范圍規則強制使用標准 C++
wchar_t[-] - wchar_t 是本機類型,不是 typedef
auto[-] - 對 auto 強制使用新的標准 C++ 含義
trigraphs[-] - 啟用三元祖(默認為關閉)
/ZI 啟用「編輯並繼續」調試信息 /openmp 啟用 OpenMP 2.0 語言擴展

- 雜項 -

@<file> 選項響應文件 /?, /help 列印此幫助消息
/bigobj 生成擴展的對象格式 /c 只編譯,不鏈接
/errorReport:option 將內部編譯器錯誤報告給 Microsoft
none - 不發送報告 prompt - 提示立即發送報告
queue - 在下一次管理員登錄時,提示發送報告(默認)
send - 自動發送報告 /FC 診斷中使用完整路徑名
/H<num> 最大外部名稱長度 /J 默認 char 類型是 unsigned
/MP[n] 最多使用「n」個進程進行編譯 /nologo 取消顯示版權信息
/showIncludes 顯示包含文件名 /Tc<source file> 將文件編譯為 .c
/Tp<source file> 將文件編譯為 .cpp /TC 將所有文件編譯為 .c
/TP 將所有文件編譯為 .cpp /V<string> 設置版本字元串
/w 禁用所有警告 /wd<n> 禁用警告 n
/we<n> 將警告 n 視為錯誤 /wo<n> 發出一次警告 n
/w<l><n> 為 n 設置警告等級 1-4 /W<n> 設置警告等級(默認 n=1)
/Wall 啟用所有警告 /WL 啟用單行診斷
/WX 將警告視為錯誤 /Yc[file] 創建 .PCH 文件
/Yd 將調試信息放在每個 .OBJ 中 /Yl[sym] 為調試庫插入 .PCH 引用
/Yu[file] 使用 .PCH 文件 /Y- 禁用所有 PCH 選項
/Zm<n> 最大內存分配(默認為 %) /Wp64 啟用 64 位埠定位警告

-鏈接-

/LD 創建 .DLL /LDd 創建 .DLL 調試庫
/LN 創建 .netmole /F<num> 設置堆棧大小
/link [鏈接器選項和庫] /MD 與 MSVCRT.LIB 鏈接
/MT 與 LIBCMT.LIB 鏈接 /MDd 與 MSVCRTD.LIB 調試庫鏈接
/MTd 與 LIBCMTD.LIB 調試庫鏈接

-代碼分析-

/analyze[:WX-] 啟用代碼分析
WX- - 即使調用了 /WX,也不應將代碼分析警告視為錯誤

3. Microsoft Visual Studio 2010 怎麼編譯,怎麼運行

打開visual studio,然後點擊文件--》新建項目,在彈出的對話框中選擇你要編譯的語言(如fortran),然後新建一個empty project,命名後點擊確定。這樣在visual studio的右側就可以看到你的project。再在source files中添加你的程序。就可以編譯了。運行和編譯都可以在調試的菜單下找到。

4. microsoft visual c++里的編譯在哪裡

  1. 在生成菜單下的最後一個子菜單編譯(這個是單獨編譯的)。
    在生成菜單下的的 生產解決方案 或者 生產 ,就是編譯加組建。

  2. 在VC中編譯程序的過程:

    1.打開VC軟體。
    2.新建C++程序文件。
    3.在新建面板中,選擇「文件」選項卡,選擇「C++ Source File」選項,同時輸入該文件的名稱。
    4.寫好程序後,單擊工具欄的「Compile」按鈕,進行編譯。
    5.編譯完成,計算機提示我們代碼正確,並創建了工程文件。
    6.單擊工具欄的「Build」按鈕,進行連接。
    7.計算機提示我們連接成功,並創建了二進制代碼。
    8.單擊工具欄的「BuildExecute」按鈕,計算機開始運行代碼。
    9.程序運行完畢,計算機輸出了正確的結果。

5. 微軟VS2010如何用來編譯C語言

如何使用Visual Studio 2010(VS2010)編譯C語言
1.打開VS2010主界面,然後選擇,文件→新建→項目,在項目類型中選擇VC++→win32 然後在右側模板中選擇win32控制台應用程序,再在下面輸入一個名稱(項目名稱,不用帶.C)
選擇保存位置後確定,彈出個對話框,不管它,下一步.
2.接下來注意了,這個對話框中,應用程序類型要選擇控制台應用程序,附加選項一定要選中「空項目」。然後點完成。然後對話框消失.
3.回到VS主界面,這時會在左側和右側多了如圖工具欄「解決方案管理器」,在源文件上點右鍵,選擇「添加→新建項」。這里注意,如果你已經有寫好的C源文件,那麼要選擇「現有項」
4.又打開個對話框,不管左邊的,在右邊的模板中選擇C++文件(注一),在下面的名稱中輸入源文件的名字加上.C(注二),保存位置用默認的。然後點擊「添加」
5.好了,編輯頁面出來了,大家可以寫代碼了,這里就寫所有程序員無論學什麼語言都要寫的一個程序「hello world」吧^_^
這里可以看到,VS2010可以智能的標示出函數參數和函數體,方便查看和修改。比VC6.0方便多了。
tips:system(「pause」)(需頭文件windows.h)的目的是讓程序執行到這個位置的時候「暫停」,讓操作者能看到結果。
編好了,然後選擇 調試,或者直接點綠色小箭頭按鈕(注三)就可以查看程序運行結果了,最後,別忘了保存.
好了,介紹完了,相信大家也都掌握了在VS2010下編譯C的方法,這樣裝了VS2010的同學也就不用再費事裝VC6.0了,VS很好很強大,其他的功能大家自己慢慢摸索吧,呵呵,不說啦。
注釋:
注一:現在已經基本沒有純粹的C編譯環境了,都是用兼容C的C++編譯工具來編譯C,所以創建的模板是C++模板。(大家一定還記得VC6.0中大家新建的文件也是C++SourceFile(C++源文件)吧)
注二:加上.C後,編譯系統就會知道這個是C源,從而創建的是C的源文件,編譯的時候就會調用C編譯器。而不加.C,創建的就是C++的源文件。編譯的時候會調用C++的編譯器。雖然C++兼容C,但是在不同的C++編譯環境對C的支持度是不同的,就比如本文中的例子,那句system函數就是C專有的,如果採用C++來編譯就會出錯。所以,在不確定所用的C++編譯器是不是支持某種C語法的時候,還是老老實實的記得加上.C,來告訴編譯系統使用C編譯器而不是C++。
注三:綠色小箭頭的意思是「調試」,快捷鍵F5,使用的時候會吧程序從頭執行到尾,然後自動退出,如果你的程序沒有暫停語句的話,就會出現黑色的程序窗口一閃而過的情況。
如果不想讓程序在調試完畢後自動退出,最簡便的方法就是選擇菜單中的「調試→開始執行」或者按快捷鍵ctrl+F5

6. 如何調用微軟編譯器

你的意思是在命令行使用么?

我講不明白 ,你自己看吧 我網上找的

微軟C/C++編譯器命令行模式用法

微軟C/C++編譯器編譯選項數目眾多,在「命令提示符」窗口鍵入cl /?即可查看完整列表
(見附錄1)。比如說,/GX啟用C++異常處理機制,/GR啟用C++ RTTI,等等。在此不打算
詳細討論這些編譯選項用法。

以下是我的測試目錄f:\vstest中的一個樣例文件:

//1.cpp

#include <iostream>

using namespace std;

void main()

{

cout << "Hello Royal"<<endl;

}

你現在可以進入該目錄執行如下編譯命令:

F:\vstest>cl /GX 1.cpp

運行程序,即會產生如下輸出:

Hello Royal

7. 怎樣用Microsoft visual c++把c源代碼編譯成exe 可執行文件

以VC6舉例:

1、打開電腦上安裝的vc6.0,進入如圖界面

閱讀全文

與微軟編譯教程相關的資料

熱點內容
linux中命令大全 瀏覽:34
pic單片機學習網站 瀏覽:163
843除6的演算法 瀏覽:376
arduino編程視頻 瀏覽:744
pdf背景綠色 瀏覽:612
記事本dos命令 瀏覽:274
伺服器如何搭建多個節點 瀏覽:326
acx演算法 瀏覽:258
幽冥詭匠漫畫全集用什麼app可以看 瀏覽:1001
租用伺服器為什麼越來越慢 瀏覽:960
演算法創新就業方向 瀏覽:423
演算法最優解作者 瀏覽:868
通達信紅綠寶塔線指標源碼 瀏覽:668
app是什麼東西合法嗎 瀏覽:232
怎麼鎖app視頻教程 瀏覽:841
迅捷pdf注冊碼生成器 瀏覽:750
androidsdkosx 瀏覽:304
壓縮面膜紙熒光 瀏覽:841
app怎麼分身三個 瀏覽:746
電影bt下載源碼 瀏覽:424