wdk10編譯
⑴ 裝了wdk10後mfc編譯時報錯
關不掉的時候就得接受它,把相關庫安裝一下
⑵ 為什麼安裝wdk10 就不能開發modern 程序
這個需要安裝WDK插件,Windows 後期的版本主要是通過WDK進行驅動的開發的,
⑶ vs2010如何編譯驅動
1、安裝VS2010,安裝WDK 7.0(DDK);
2、新建VC++->Empty Project
3、打開Configuration Manager 並新建一個名稱為「 dirver 」的Solution Configuration 並將「dirver」 設為Active Solution Configuration .
4、打開View-> property Manager。
5、在"dirver" solution configuration 上點擊右鍵,選擇Add new property Sheet。取名為「dirverProperty」. 並對他進下以下設置。
5.1. C\C++ - General - Debug Information Format = Program Database (/Zi)
5.2. C\C++ - Preprocessor - Preprocessor Definitions = _X86_ [add also DBG for Debug config]
【WIN32;_DEBUG;_X86_;i386;STD_CALL;CONDITION_HANDLING;WIN32_LEAN_AND_MEAN;NT_UP;SRVDBG;DBG;_IDWBUILD;_WIN32_WINNT=0x0400;% (PreprocessorDefinitions)】
5.3. C\C++ - Code Generation - Enable C++ Exceptions = No
5.4. C\C++ - Code Generation - Basic Runtime Checks = Default
5.5. C\C++ - Code Generation - Buffer Security Check = No (/GS-)
5.6. C\C++ - Advanced - Calling Convention = __stdcall (/Gz)
5.7. C\C++ - Advanced - Compile As = Compile as C Code (/TC) [if you are going to use plain C]
5.8. Linker - General - Output File = $(OutDir)\$(ProjectName).sys
5.9. Linker - General - Enable Incremental Linking = Default
5.10. Linker - Input - Additional Dependencies = ntoskrnl.lib hal.lib $(NOINHERIT) [add here needed libs here e.g. ntoskrnl.lib hal.lib]
【不知道上面是不是筆誤,應該為:ntoskrnl.lib;hal.lib;%(AdditionalDependencies)】
5.11. Linker - Input - Ignore All Default Libraries = Yes (/NODEFAULTLIB)
5.12. Linker - Manifest File - Generate Manifest = No
5.13. Linker - System - SubSystem = Native (/SUBSYSTEM:NATIVE)
5.14. Linker - System - Driver = Driver (/DRIVER)
5.15. Linker - Advanced - Entry Point = DriverEntry
5.16. Linker - Advanced - Base Address = 0x10000
5.17. Linker - Advanced - Randomized Base Address = Disable (/DYNAMICBASE:NO)
【這個也是錯誤的:應該置空】
5.18. Linker - Advanced - Data Execution Prevention (DEP) = Disable (/NXCOMPAT:NO)
【這個也是錯誤的:應該置空】
6. Config VC++ Directories
6.1 Open Open up property manager by clicking on Menu View->Property Manager.
6.2 Expand the project node and then the Configuration|Platform nodes, you will see "Microsoft.cpp.<Platform>.users" file for each Configuration|Platform. These are the files
for the global settings, similar to the old tools/Options/VC++ Directories.
6.3 Multi-Select "Microsoft.cpp.<Platform>.users", right click and bring up the property page window
6.4 In the property page window, click on "VC++ Directories" (for example) in the left pane, add new paths for the directories such as "Include Directories". separated by
semicolons
(eg:Include Directories config As:
$(ddkroot)\INC
$(ddkroot)\INC\WNET
$(ddkroot)\INC\DDK\WNET
Library Directories config As:
$(ddkroot)\LIB\WNET\I386
)
6.5 Make sure to save the settings before shutting down Visual Studio.
6.6 Re-launch Visual Studio and the new settings will be in effect.
6.7 Note: If you would like to only change the settings for one project, you can right click on the project and bring up the property page. Change the settings for 「VC++
Directories」, these settings will be persisted to the project file.
七. OK. Have done. Now you can test it with simple code, e.g.:
#include "ntddk.h"
NTSTATUS
DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
{
return STATUS_UNSUCCESSFUL;
}
特別說明:
1.
Visual Studio 2010 在智能設備開發方面只支持Windows Phone OS 7.0。如果你要為Windows CE 5.0和Windows Mobile 6.5開發應用程序,請安裝Visual Studio 2008。
2.
做驅動開發時,SDK的版本要和WDK的版本一致,即Win7 WDK要配Win7 SDK,否則會出現編譯錯誤。VS2010里集成了Windows SDK 7.0A。
3.
如果出現類似如下編譯錯誤,解決方法是:拷貝C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h,然後覆蓋掉C:\WinDDK\7600.16385.1\inc\api\sal.h。
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing ')' before 'const'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing '{' before 'const'
.......
⑷ 如何開發Windows NT設備驅動程序
一、開發工具
1,虛擬機和操作系統
本人使用的win10操作系統,並安裝了「VMware Station11」,在虛擬機中暫時只安裝了一個「win7 x64」操作系統,後續將安裝一個win10虛擬機系統。一般情況下,我都是在虛擬機操作進行驅動的安裝和調試,這樣可以防止將本機的操作系統弄亂。
後續將嘗試「通過本機winDbg來調試虛擬機中的驅動」。這是一個比較高級的調試方法,點擊打開鏈接。
2,開發工具
本人主要使用「WDK7600」(點擊打開鏈接)和"VS2015+wdk10"(點擊打開鏈接)。我把前者安裝在「win7 X64」虛擬機中安裝,把後者安裝在本機和實驗室電腦上。由於我使用的教材《Windows驅動開發詳解》和學習博客都是用wdk7這個版本開發,為了環境一致,故選擇了在虛擬機上試驗這些教材上的示例代碼。
關於wdk7,參考博客:點擊打開鏈接。
關於「VS2015+wdk10」,需要在win10系統下,先安裝VS2015,再安裝wdk10,此外還要安裝VS2015的update。(winDbg集成到了wdk10下,路徑:C:\Program Files (x86)\Windows Kits\10\Debuggers\x64)。
注意事項:
1)VS2015默認安裝,是不安裝c++和sdk的,需要選擇自定義安裝;
2)如果已經默認安裝了,這個時候再安裝wdk10,會給出警告;
3)此時,可以選擇先用VS2015新建一個c++項目,然後會提示你安裝c++部分的模塊;
4)安裝好後,就可以正常安裝wdk10了,如果wdk10安裝好後,還有編譯問題,也需要先去VS下看看是否卻c++相關模塊,並按上述3安裝完整。
另一個需要注意的是,編譯報「Inf2Cat error -2: "Inf2Cat, signability test failed. "Double click to see the tool output」,
參考博客:點擊打開鏈接
是因為inf文件的「DriverVer」的時間不對,VS2015默認的「Inf2cat」中的時間為UTF,需要在工程屬性-》「inf2cat」選擇中,將local時間打開。
3,調試工具
1)debugview
在驅動程序中,調用KdPrint函數(類似C語言中printf),然後通過debugview查看列印信息。這是最常用的一種調試方法。
需要注意的是:首先要在「capture」菜單中勾選「kernel」相關的選項,表示抓取內核的信息。然後,需要使用「管理員身份」運行該軟體。Debugview在win10下經常報錯:
需要到「C:\Windows\System32\drivers」中找到「dbgv.sys」,刪除它,再使用「管理員身份」運行該軟體。
2)
4,調試手段
1)驅動安裝階段,可以到「C:\Windows\System32\drivers」目錄下看相應的「sys」文件是否到位。
2)cmd->regedit打開注冊表,再在「編輯」菜單下「查找」對應的設備信息。
3)使用KdPrint函數列印log和DebugView軟體抓取log(最常用的手段);
4)在驅動代碼中寫log文件(理論上可行,待探索);
5)存儲mp信息。所謂mp信息,就是在系統奔潰之前,操作系統會將當前的調用堆棧記錄成一個mp文件。(詳細設置系統轉存mp信息,可以參考《Windows驅動開發技術詳解》最後一章,或博客:點擊打開鏈接)。設置好mp文件後,遇到藍屏,再將mp文件放到WinDbg中查看,這也是一個中常用的調試手段。
6)IRPTrace,這個軟體可以跟蹤IRP,但是win7及後續版本都不可用,可以嘗試自己寫程序跟蹤。
7)PCITree,查看設備掛載;
8)WinObject,查看驅動中的各種對象信息。
9)WinDbg調試虛擬機,這是一個高級應用。配合VS2015可以查看「內存」、「調用堆棧」、「線程」和「反匯編」。
註:在驅動的開發過程,需要逐漸掌握各種工具和調試手段。
二、開發框架
從我最近的瀏覽的資料來看,Windows驅動程序大致有三種類型:NT驅動、WDM驅動和WDF驅動。其中,NT驅動是非即插即用(Plug-in-and-Play,PNP)式的,它是一項系統服務,目前的設備類驅動大都不是這種類型,不是我的關注點,後面將不展開介紹。WDM驅動和WDF驅動都是即插即用的驅動,後者是前者的升級版。
1,WDM框架
WDM是早前的Windows驅動開發框架,雖然現在微軟推薦用WDF,但是,學習WDM一是能夠更對地了解操作系統的內部機制(WDF是對WDM更高層次的封裝),二是《Windows驅動開發技術詳解》以及網上的很多博文都是用的WDM,從學習角度出發也需要掌握一定的WDM知識。
WDM框架的基本知識,可以參考博文:點擊打開鏈接。後續我也用單獨的博文來講解這方面的內容,主要包括:
1)驅動對象與設備對象(DriverObject vs Device Object);
2)物理設備對象(PDO)和功能設備對象(FDO);
3)驅動的層次結構:水平層次(eg:FDO之間)和垂直層次(FDO到PDO);
4)入口函數(DriverEntry);
5)設備擴展(DRIVER_EXTENSION);
6)重要的常式(routine):AddDevice
7)IRP機制(I/O Request Package):MajorFunction(MJ))和MinorFunction(MN);
2,WDF框架
對於WDF框架,可以參考《Window7設備驅動開發》這本書。WDF框架可以分為KMDF(Kernel Model Driver Frame)和UMDF(User Model Driver Frame),其驅動模型如下:
1)WDF對象(屬性、方法和事件);
2)即插即用和電源管理的集成;
3)集成的I/O排隊和取消(queue);
4)I/O模型。在Windows中,IRP的功能不僅僅是向驅動程序提供傳統的I/O請求(讀、寫、創建等)。它是操作系統和驅動程序、驅動程序和驅動程序之間一種基於數據包的通信機制。
3,一個典型的KMDF驅動程序
通過VS2015新建一個項目,選擇「KMDF」,它會產生如下文件:
1)public.h中定義GUID和CTL_CODE,並提供給應用程序使用;
2)trace.h定義的調試宏和函數,暫不關注;
3)driver.h和driver.c定義了主要的框架代碼。包括:入口函數(DriverEntry)、載入設備的常式(KMDFDriver1EvtDeviceAdd)和清理上下文區的函數。該文件都是框架性的代碼,在驅動開發的過程中,可以選擇一個框架,選定框架後,一般不在該文件中添加功能,而是放到「device.c」和「queue.c」。
4)device.h和device.c,主要處理設備相關的功能,與設備交互的實現放在該文件中。主要包括設備初始化和資源釋放;
5)queue.h和queue.c,主要處理IRP,包括KMDFDriver1EvtIoDeviceControl;
⑸ win10上安裝wdk後怎麼編譯內核程序
方法/步驟
WDK的安裝
WDK的安裝,點擊exe文件,然後如圖選中,繼續下一步操作完成安裝,點擊OK即可。
打開程序
從「開始」菜單中打開WDK的build環境配置,從「開始」菜單中選擇「所有程序」,然後選擇「Windows Driver Kits」在WDK的版本(這里「WDK 6001 18001」)「Build Enieiroments」到「Windows XP」到「Launch Windows XP x86 Checked Build Enviroment」。
編譯程序
出現一個控制台,這個控制台已經配置好編譯環境。現在輸入cd命令,進入我們先前建立的first目錄;進入之後,輸入build命令。現在編譯結束,First.svs出現在\First\objchk_wxp_x86\i386下。
安裝srvinstw.exe
接下來安裝srvinstw.exe,執行這個工具,把我們編寫的first.sys安裝到自己的計算機上。
服務選擇
選擇「安裝服務」並單擊「下一步」按鈕。然後選擇「本地計算機」,單擊「下一步」按鈕。
服務名稱配置
這時要輸入服務名稱,這里輸入文件的名字「first」。但這個名稱不一定要
和文件名相同,可以隨意輸入,只是不能和已經存在的服務沖突。接下來,這個位置是需要手工輸入sys文件的路徑。
選擇「設備驅動」
接下來選擇「設備驅動」。輸入「NT驅動器目標名」不需要輸入任何內容,直接單擊「下一步」按鈕即可。選擇啟動類型:請一定選擇「手動」。
⑹ wdk7.1編譯的驅動能在 win10用嗎
驅動主要針對硬體的,如果硬體是一樣的,通常是可以使用的。 驅動安裝方法 1、通過硬體型號,去官方網站下載驅動安裝。 2、通過驅動人生、驅動精靈等驅動軟體平台,安裝驅動。 3、驅動安裝成功以後,重啟計算機就可以了。
⑺ VS2010怎麼配置WDK開發環境
首先將VS2010和WDK安裝到電腦中 配置VS2010驅動環境,運行VS2010,新建一個空項目: 打開配置管理器,添加一個驅動的活動項,確定, 來到VS2010的property manager,為Driver編譯添加一個新的配置文件, 此時工程目錄下會生成一個配置文件, 修改此配置文件,將如下內容覆蓋到配置文件中, <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ImportGroup Label="PropertySheets" /> <PropertyGroup Label="UserMacros" /> <PropertyGroup> <ExecutablePath>D:\WinDDK\7600.16385.1\bin\x86;$(ExecutablePath)</ExecutablePath> </PropertyGroup> <PropertyGroup> <IncludePath>D:\WinDDK\7600.16385.1\inc\api;D:\WinDDK\7600.16385.1\inc\ddk;D:\WinDDK\7600.16385.1\inc\crt;$(IncludePath)</IncludePath> </PropertyGroup> <PropertyGroup> <LibraryPath>D:\WinDDK\7600.16385.1\lib\win7\i386;$(LibraryPath)</LibraryPath> <TargetExt>.sys</TargetExt> <LinkIncremental>false</LinkIncremental> <GenerateManifest>false</GenerateManifest> </PropertyGroup> <ItemDefinitionGroup> <ClCompile> <PreprocessorDefinitions>_X86_;DBG</PreprocessorDefinitions> <CallingConvention>StdCall</CallingConvention> <ExceptionHandling>false</ExceptionHandling> <BasicRuntimeChecks>Default</BasicRuntimeChecks> <BufferSecurityCheck>false</BufferSecurityCheck> <CompileAs>Default</CompileAs> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> </ClCompile> <Link> <AdditionalDependencies>ntoskrnl.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib;Hal.lib;MSVCRT.LIB;LIBCMT.LIB;%(AdditionalDependencies)</AdditionalDependencies> </Link> <Link> <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> <EnableUAC>false</EnableUAC> <SubSystem>Native</SubSystem> <EntryPointSymbol>DriverEntry</EntryPointSymbol> <BaseAddress>0x10000</BaseAddress> <RandomizedBaseAddress> </RandomizedBaseAddress> <DataExecutionPrevention> </DataExecutionPrevention> <GenerateDebugInformation>true</GenerateDebugInformation> <Driver>Driver</Driver> </Link> </ItemDefinitionGroup> <ItemGroup /> </Project> 保存文件,關閉VS2010,重新打開VS2010即可。 PS:配置文件生成後,以後新建工程時可以直接使用,在第四部中就不需要新建一個配置文件,直接添加生成的配置文件即可
⑻ VS2015+WDK10編譯UMDF工程生成的inf文件怎麼安裝
設置目標或測試計算機是配置計算機以便進行自動驅動程序部署、測試和調試的過程。一個測試和調試環境具有兩台計算機:主計算機和目標計算機。目標計算機也稱為逗測試計算機地。使用主機上的 Visual Studio 開發和構建驅動程序。調試程序在主機上運行並且位於 Visual Studio 用戶界面中。當測試和調試驅動程序時,驅動程序在目標計算機上運行。
主計算機和目標計算機必須能夠彼此按名稱執行 ping 操作。如果兩台計算機已加入到同一工作組或同一網路域,則此操作可能更容易。如果你的計算機位於工作組中,我們建議你使用路由器(而非集線器或交換機)連接計算機。不支持對虛擬機進行設置。
准備目標計算機以進行設置
在目標計算機上,安裝將用於運行和測試驅動程序的操作系統。
如果在 x86 或 x64 目標計算機上啟用逗安全啟動地,則禁用該功能。
如果目標計算機使用 ARM 處理器,則安裝 Windows 調試策略。則無需禁用逗安全啟動地。
在目標計算機上,運行與目標計算機平台匹配的 WDK 測試目標安裝程序 MSI。可以在 Remote 下的 Windows 驅動程序工具包 (WDK) 安裝目錄中找到該 MSI。
例如:C:\Program Files (x86)\Windows Kits\10\Remote\x64\WDK Test Target Setup x64-x64_en-us.msi
如果目標計算機運行的是 N 或 KN 版本的 Windows,則安裝適用於 N 和 KN 版本的 Windows 的媒體功能包。
如果目標計算機運行的是 Windows Server,請查找剛才通過 WDK 測試目標設置 MSI 創建的 DriverTest 文件夾。(例如:c:\DriverTest)。右鍵單擊逗DriverTest地文件夾,然後選擇逗屬性地。在逗安全地選項卡上,向逗經過身份驗證的用戶地組授予逗修改地許可權。
驗證主機和目標計算機可以彼此執行 ping 操作。打開命令提示符窗口,並輸入 ping 192.186.X.X(ip_adress)。
如果主計算機和目標計算機已加入到一個工作組,但它們位於不同的子網上,你可能必須調整某些防火牆設置,以便主計算機和目標計算機可以通信。請按照下列步驟進行操作:
兩種方法(選一即可):
方法一:
在目標計算機上的逗控制面板地中,轉到逗網路和 Internet地>逗網路共享中心地。注意你的活動網路。它可能是逗公共網路地、逗私有網路地或逗域地。
在目標計算機上的逗控制面板地中,轉到逗系統和安全地>逗Windows 防火牆地>逗高級設置地>逗入站規則地。
在入站規則列表中,查找用於活動網路的所有網路發現規則。(例如,查找所有逗配置文件地為逗專用地的網路發現規則。)雙擊每個規則,然後打開逗作用域地選項卡。在逗遠程 IP 地址地下,選擇逗任何 IP 地址地。
在入站規則列表中,查找用於活動網路的所有逗文件和列印機共享地規則。對於每個規則,雙擊該規則,將打開逗作用域地選項卡。在逗遠程 IP 地址地下,選擇逗任何 IP 地址地。
方法二:
逗控制面板地->逗系統和安全地->逗Windows防火牆地->"啟動或關閉Windows防火牆"->"關閉Windows防火牆"
設置目標計算機
現在,你可以隨時在 Visual Studio 中通過主計算機設置目標計算機。
在主計算機上,在 Visual Studio 的逗Driver地菜單中,選擇逗Test地>逗Configure Deivce地。
單擊逗Add New Device地。
在逗Network host name地中輸入目標計算機的名稱。選擇逗Provision Device and choose debugger setting地。
選擇某種調試連接類型,並輸入所需的參數。
設置過程將需要幾分鍾時間,並且可能會自動重新啟動目標計算機一到兩次。設置完成後,單擊逗完成地。
WDK 10 與 Microsoft Visual Studio 完全集成。你可以使用 Visual Studio 開發環境生成驅動程序,也可以使用 Microsoft Build Engine (MSBuild) 直接從命令行生成驅動程序。
從 Windows 驅動程序工具包 (WDK) 8 開始,MSBuild 就已經取代了在早期版本的 WDK 中使用的 Windows 構建實用工具 (Build.exe)。現在,WDK 可使用與你用於構建 Visual Studio 項目相同的編譯器和構建工具。使用早期版本的 WDK 構建的驅動程序項目必須進行轉換才能在 Visual Studio 環境中工作。你可以從命令行運行轉換實用工具,也可以通過從現有的源創建新的 Visual Studio 項目來轉換現有驅動程序。
構建驅動程序主要有以下兩種方式(選一即可)
方法一:使用 Visual Studio 構建驅動程序
構建驅動程序的方法與在 Visual Studio 中構建任何項目或解決方案的方法相同。當使用 Windows 驅動程序模板創建新的驅動程序項目時,該模板定義默認(活動)的項目配置以及默認(活動)的解決方案生成配置。
注意 你可以將使用 WDK 8 或 Windows 驅動程序工具包 (WDK) 8.1 所創建的項目和解決方案轉換為適用於 Windows 驅動程序工具包 (WDK) 10 和 Visual Studio 2015。打開項目或解決方案前,請先運行 ProjectUpgradeTool。ProjectUpgradeTool 將轉換項目和解決方案,以便可以使用 WDK 10 構建它們。
1、確保安裝在你的計算機上的 SDK 和 WDK 的版本相同。
2、在 Visual Studio 中打開驅動程序項目或解決方案。
3、在逗解決方案資源管理器地中右鍵單擊解決方案,並選擇逗配置管理器地。
4、從逗配置管理器地中,選擇與你感興趣的構建類型相對應的活動解決方案配置(例如,逗調試地或逗發布地)以及活動解決方案平台(例如,逗Win32地)。
5、選擇要構建驅動程序的目標操作系統。導航到逗驅動程序地>逗常規地中的項目屬性,然後設置 TargetVersion 屬性。
6、為驅動程序或驅動程序包配置項目屬性。 可以為部署、驅動程序簽署或其他任務設置屬性。
7、從逗構建地菜單中,單擊逗構建解決方案地 (Ctrl+Shift+B)。
方法二:
使用命令行構建驅動程序 (MSBuild)
你可以使用逗Visual Studio 命令提示符地窗口和 Microsoft Build Engine (MSBuild) 來從命令行構建驅動程序。
使用逗Visual Studio 命令提示符地窗口構建驅動程序
打開逗適用於 VS2015 的開發人員命令提示符地窗口。
在此窗口中,你可以藉助 MSBuild.exe,通過指定項目 (.VcxProj) 或解決方案 (.Sln) 文件來構建任何 Visual Studio 項目。
導航到項目目錄並為你的目標輸入 MSbuild 命令。
例如,若要使用默認的平台和配置生成名為 MyDriver.vcxproj 的全新的 Visual Studio 驅動程序項目,請導航到項目目錄並輸入以下 MSBuild 命令:
msbuild /t:clean /t:build .\MyDriver.vcxproj
語法 - 若要指定特定的配置和平台,請使用以下命令語法:
msbuild /t:clean /t:build ProjectFile /p:Configuration=<Debug|Release> /p:Platform=architecture /p:TargetPlatformVersion=a.b.c.d /p:TargetVersion=OS
例如,以下命令將為逗調試地配置、逗Win32地平台和 Windows 10 生成一個通用 Windows 驅動程序。
msbuild /t:clean /t:build .\MyDriver.vcxproj /p:Configuration="Debug" /p:Platform=Win32 /p:TargetVersion=地Windows10地 /p:TargetPlatformVersion=地10.0.10010.0地
逗TargetPlatformVersion地設置為可選項,並且允許你指定用於生成的工具包版本。默認值為使用最新的工具包。
使用 Visual Studio 中的選項增加構建輸出詳細信息的步驟
1、單擊 Tools > Options。
2、單擊逗項目和解決方案地文件夾並單擊逗生成並運行地。
3、更改逗MSBuild 項目構建輸出詳細信息地和逗MSBuild 項目構建日誌文件詳細信息地。 默認情況下,這些都設置為逗最少地。
⑼ WDK 編譯的時候顯示有warning,但是怎麼讓它顯示出具體哪幾處(那幾行)有警告
制下來:
我的VS2008的CL.EXE目錄是在E:\Program Files\Microsoft Visual Studio 9.0\VC\bin,
VS2010可以類似的找到..
在'我的電腦'上點右鍵,
選右鍵菜單'屬性'->'高級'->'環境變數',
在彈出的環境變數設置框里找"PATH"這個變數, (在用戶變數或系統變數里都可以)
然後在"PATH"的值後面,用分號分隔,
把將才找到的路徑串復制進去,選確定.
2, 重新運行CMD開啟新的命令窗.
3, 輸入cl回車檢查PATH路徑是否生效.
//以上步聚是設置環境變數,只需設一次以後就好用了.以後每次要命令行下編譯C++程序,就從下面第4步開始.
4, 輸入vcvars32 ,運行cl.exe同一路徑下的vcvars32.bat,設置其它環境變數.
5, 寫一個helloworld程序,保存成hello.cpp, cl hello.cpp回車試試編譯正常不. 如果成功,則生成hello.exe文件.
//-----------------------------------------------------------
C/C++ 編譯器選項
-優化-
/O1 最小化空間 /Op[-] 改善浮點數一致性
/O2 最大化速度 /Os 優選代碼空間
/Oa 假設沒有別名 /Ot 優選代碼速度
/Ob<n> 內聯展開(默認 n=0) /Ow 假設交叉函數別名
/Od 禁用優化(默認值) /Ox 最大化選項。(/Ogityb2 /Gs)
/Og 啟用全局優化 /Oy[-] 啟用框架指針省略
/Oi 啟用內部函數
-代碼生成-
/G3 為 80386 進行優化 /Gh 啟用 _penter 函數調用
/G4 為 80486 進行優化 /GH 啟用 _pexit 函數調用
/G5 為 Pentium 進行優化 /GR[-] 啟用 C++ RTTI
/G6 對 PPro、P-II、P-III 進行優化 /GX[-] 啟用 C++ EH (與 /EHsc 相同)
/G7 對 Pentium 4 或 Athlon 進行優化 /EHs 啟用 C++ EH (沒有 SEH 異常)
/GB 為混合模型進行優化(默認) /EHa 啟用 C++ EH(w/ SEH 異常)
/Gd __cdecl 調用約定 /EHc extern "C" 默認為 nothrow
/Gr __fastcall 調用約定 /GT 生成纖維安全 TLS 訪問
/Gz __stdcall 調用約定 /Gm[-] 啟用最小重新生成
/GA 為 Windows 應用程序進行優化 /GL[-] 啟用鏈接時代碼生成
/Gf 啟用字元串池 /QIfdiv[-] 啟用 Pentium FDIV 修復
/GF 啟用只讀字元串池 /QI0f[-] 啟用 Pentium 0x0f 修復
/Gy 分隔鏈接器函數 /QIfist[-] 使用 FIST 而不是 ftol()
/GZ 啟用堆棧檢查(/RTCs) /RTC1 啟用快速檢查(/RTCsu)
/Ge 對所有函數強制堆棧檢查 /RTCc 轉換為較小的類型檢查
/Gs[num] 控制堆棧檢查調用 /RTCs 堆棧幀運行時檢查
/GS 啟用安全檢查 /RTCu 未初始化的本地用法檢查
/clr[:noAssembly] 為公共語言運行庫編譯
noAssembly - 不產生程序集
/arch:<SSE|SSE2> CPU 結構的最低要求,以下內容之一:
SSE - 啟用支持 SSE 的 CPU 可用的指令
SSE2 - 啟用支持 SSE2 的 CPU 可用的指令
-輸出文件-
/Fa[file] 命名程序集列表文件 /Fo<file> 命名對象文件
/FA[sc] 配置程序集列表 /Fp<file> 命名預編譯頭文件
/Fd[file] 命名 .PDB 文件 /Fr[file] 命名源瀏覽器文件
/Fe<file> 命名可執行文件 /FR[file] 命名擴展 .SBR 文件
/Fm[file] 命名映射文件
-預處理器-
/AI<dir> 添加到程序集搜索路徑 /Fx 將插入的代碼合並到文件
/FU<file> 強制使用程序集/模塊 /FI<file> 命名強制包含文件
/C 不抽出注釋 /U<name> 移除預定義宏
/D<name><text> 定義宏 /u 移除所有預定義宏
/E 預處理到 stdout /I<dir> 添加到包含搜索路徑
/EP 預處理到 stdout,沒有 #line /X 忽略「標准位置」
/P 預處理到文件
-語言-
/Zi 啟用調試信息 /Ze 啟用擴展(默認)
/ZI 啟用「編輯並繼續」調試信息 /Zl 省略 .OBJ 中的默認庫名
/Z7 啟用舊式調試信息 /Zg 生成函數原型
/Zd 僅有行號調試信息 /Zs 只進行語法檢查
/Zp[n] 在 n 位元組邊界上包裝結構 /vd 禁用/啟用 vtordisp
/Za 禁用擴展(暗指 /Op) /vm<x> 指向成員的指針類型
/Zc:arg1[,arg2] C++ 語言一致性,這里的參數可以是:
forScope - 對范圍規則強制使用標准 C++
wchar_t - wchar_t 是本機類型,不是 typedef
- 雜項 -
@<file> 選項響應文件 /wo<n> 發出一次警告 n
/?, /help 列印此幫助消息 /w<l><n> 為 n 設置警告等級 1-4
/c 只編譯,不鏈接 /W<n> 設置警告等級(默認 n=1)
/H<num> 最大外部名稱長度 /Wall 啟用所有警告
/J 默認 char 類型是 unsigned /Wp64 啟用 64 位埠定位警告
/nologo 取消顯示版權消息 /WX 將警告視為錯誤
/showIncludes 顯示包含文件名 /WL 啟用單行診斷
/Tc<source file> 將文件編譯為 .c /Yc[file] 創建 .PCH 文件
/Tp<source file> 將文件編譯為 .cpp /Yd 將調試信息放在每個 .OBJ 中
/TC 將所有文件編譯為 .c /Yl[sym] 為調試庫插入 .PCH 引用
/TP 將所有文件編譯為 .cpp /Yu[file] 使用 .PCH 文件
/V<string> 設置版本字元串 /YX[file] 自動 .PCH
/w 禁用所有警告 /Y- 禁用所有 PCH 選項
/wd<n> 禁用警告 n /Zm<n> 最大內存分配(默認為 %)
/we<n> 將警告 n 視為錯誤
-鏈接-
/MD 與 MSVCRT.LIB 鏈接 /MDd 與 MSVCRTD.LIB 調試庫鏈接
/ML 與 LIBC.LIB 鏈接 /MLd 與 LIBCD.LIB 調試庫鏈接
/MT 與 LIBCMT.LIB 鏈接 /MTd 與 LIBCMTD.LIB 調試庫鏈接
/LD 創建 .DLL /F<num> 設置堆棧大小
/LDd 創建 .DLL 調試庫 /link [鏈接器選項和庫]
另外,站長團上有產品團購,便宜有保證
⑽ 如何安裝WDK並運行編譯一個工程
方法/步驟 1 WDK的安裝 WDK的安裝,點擊exe文件,然後如圖選中,繼續下一步操作完成安裝,點擊OK即可。 2 打開程序 從「開始」菜單中打開WDK的build環境配置,從「開始」菜單中選擇「所有程序」,然後選擇「Windows Driver Kits」在WDK的版本(這里「WDK 6001 18001」)「Build Enieiroments」到「Windows XP」到「Launch Windows XP x86 Checked Build Enviroment」。 3 編譯程序 出現一個控制台,這個控制台已經配置好編譯環境。現在輸入cd命令,進入我們先前建立的first目錄;進入之後,輸入build命令。現在編譯結束,First.svs出現在\First\objchk_wxp_x86\i386下。 4 安裝srvinstw.exe 接下來安裝srvinstw.exe,執行這個工具,把我們編寫的first.sys安裝到自己的計算機上。 5 服務選擇 選擇「安裝服務」並單擊「下一步」按鈕。然後選擇「本地計算機」,單擊「下一步」按鈕。 6 服務名稱配置 這時要輸入服務名稱,這里輸入文件的名字「first」。但這個名稱不一定要 和文件名相同,可以隨意輸入,只是不能和已經存在的服務沖突。接下來,這個位置是需要手工輸入sys文件的路徑。 7 選擇「設備驅動」 接下來選擇「設備驅動」。輸入「NT驅動器目標名」不需要輸入任何內容,直接單擊「下一步」按鈕即可。選擇啟動類型:請一定選擇「手動」。 8 安裝DehugView.exe DehugView.exe的安裝非常簡單,直接打開DehugView.exe之後,界面如圖所示。 9 啟動.sys文件 要把Capture Kernel勾上,由於前面已經安裝了服務,所以,現在打開控制台(所有程序附件一命令提示符),輸入net start first就可以啟動first.sys了。反之,可以輸入net stop first來停止它的運行。 注意事項 第二步:先前建立的first目錄,這個到時候根據自己的條件自己建立就可以了。