當前位置:首頁 » 編程軟體 » dos怎麼編譯c

dos怎麼編譯c

發布時間: 2023-01-11 14:45:44

① 怎麼在DOS下編譯C++程序

VC6隻是一個IDE,可以方便的調用編譯器,鏈接器,頭文件,庫文件,如果編輯和編譯驅動能集成在一起,這樣可以提高開發效率。

對於普通的Win32應用程序,VC6已經默認支持了,而對於驅動程序沒有設定好的工程向導。其實驅動程序也就是一個sys,是通過c語言寫成,所以編譯它理論上沒有問題,只是在實際操作上有點麻煩。

下面就來說明一下各種平台編譯sys驅動的方法(包括64位平台)。

先看32位版本驅動的編譯方法,首先你得准備一些編譯必備工具:

1.要安裝VC6

2.安裝DDK(裝哪個呢?這個問題其實很簡單的,只是很多人不明白,裝DDK當然是越新越好了,越新支持的平台越多,像2000DDK你是絕對編譯不出來64位sys的,因為它沒帶64位的庫和編譯器,所以我們選擇現在最比較新的,2003DDK(WDK也可以),支持的平台很多(AMD64,IA64,2000,XP,2003都支持)。

好了,這下我們的系統已經安裝了最強的開發工具VC6,最新DDK,在VC里編譯各個平台的驅動都沒有問題了!

開始,假設我們的DDK裝在C:\2003DDK目錄,那麼我會發現裡面有很多驅動的例子(安裝的時候全選),我們選擇C:\2003DDK\src\wdm\usb\bulkusb作為我們的實驗範例。

第一步:

打開VC,建立一個Win32 Application工程,然後選擇An empty Project(我用英文版的VC,建議你也換成英文版的),意思就是建立一個空的Win32工程,工程名字就叫bulkusb,點Finish.

第二步:

將C:\2003DDK\src\wdm\usb\bulkusb\sys(這里是驅動代碼,另一個exe里是用戶程序,不管它)里的所有文件拷貝到bulkusb工程目錄下。然後把.h,.c,.rc 導入到VC里對應的目錄裡面去。

第三步:

然後就是開始設置工程選項,把這些代碼編譯成sys了。 要編譯我們需要DDK,所以先要在vc的Tool->Options->Directories里設置一些路徑給VC調用(設置基本原則:要保證下面所有設置的路徑排在前面!)。

設置Include路徑:

C:\2003DDK\INC

C:\2003DDK\INC\CRT

C:\2003DDK\INC\WNET

C:\2003DDK\INC\DDK\WNET

C:\2003DDK\INC\DDK\WDM\WNET

要按這樣的順序添加。注意這里的WNET目錄了嗎?這就是2003最新頭文件,其實選擇wxp或者w2k目錄也是可以的,只是wnet里的頭文件最全,因為系統不斷進步,有些新的api只有新的頭文件里才有定義。當然最好是選擇對應的頭文件來編譯對應系統的驅動,但是我試過用wnet編譯的驅動在2000 下也能用,因為我們一般用不到那些新添加的 api.。

設置lib路徑:

C:\2003DDK\LIB

C:\2003DDK\LIB\CRT\I386

C:\2003DDK\LIB\WNET\I386 //wnet道理和上面一樣

設置Executable File:

C:\2003DDK\BIN\X86 //這就是編譯器的路徑,包含cl.exe,link.exe的目錄,由於我們要編譯32位驅動,所以把這個添加進去,放在第一項。

總的來說,只要設置好Include,Lib和編譯器,編譯什麼文件都沒問題的,你也可以自己嘗試安裝最新的2003SDK,編譯Win32應用程序成64位。

第四步:

開始進入工程設置,先設置C/C++,在Preprocesser definitions里輸入如下字串:

Release下輸入:

_X86_=1,i386=1,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,NDEBUG

Debug下輸入:

_X86_=1,i386=1,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG

在Code Generation里的Calling convention用__stdcall,(這是驅動程序必須的)

Debug版有個特殊編譯選項 /GZ (注意是大寫的,小寫的不要刪!)刪掉,否則有鏈接錯誤,chkesp鏈接不上什麼的。

第五步:

開始設置Link頁,將輸出文件名改為sys擴展名,

在General的Object/Library moles, 填入驅動所調用到的幾個lib:

ntoskrnl.lib hal.lib usbd.lib wmilib.lib。

然後進入Output在Entry-point symbol:

填DriverEntry

下面就是往Project Options手動增加一些鏈接選項,復制如下進去:

/machine:IX86 /driver /subsystem:native /SECTION:INIT,d /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221

刪除如下選項:

/subsystem:windows

/machine代表目標機器類型,/driver代表驅動,/subsystem:native 也是代表驅動。

OK,大功告成,我們可以編譯32位驅動了!

那麼如果我們要編譯64位驅動呢? 這里大家注意一下,64位有兩種,一個是AMD64,一個是IA64,要選定你的目標平台,目前AMD64平台最為流行。

其實編譯成64位也很簡單,只要把32位的配置稍微改一下就行了,我們以編譯AMD64位驅動為例(你會復制VC的工程Configurations吧,把32位的Relase,Debug各復制一份改名為ReleaseAMD64和DebugAMD64,然後在復製品的基礎上修改):

1.要修改兩個lib路徑:

C:\2003DDK\LIB\CRT\I386改為:C:\2003DDK\LIB\CRT\amd64

C:\2003DDK\LIB\WNET\I386 改為:C:\2003DDK\lib\wnet\amd64

2.修改編譯器路徑:

C:\2003DDK\BIN\X86

改為:

C:\2003DDK\bin\win64\x86\amd64

C:\2003DDK\BIN\X86 //這句也要存在

3.修改C/C++里的Preprocesser definitions為:

ReleaseAMD64下輸入:

_AMD64_,AMD64,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,NDEBUG

DebugAMD64下輸入:

_AMD64_,AMD64,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG

4.需要修改link頁里的Project Options,手動改一下:將/machine:IX86改為:/machine:amd64

5.理論上到這里設置就OK了,不過還是有一個鏈接錯誤unresolved external symbol __security_cookie ,只要在鏈接的lib里加入bufferoverflowK.lib (為什麼是bufferoverflowK.lib?看這里:http://support.microsoft.com/kb/894573) 就可以了。我修改的工程範例下載:下載地址。

以上的設置大部分都可以保存在VC工程文件(*.dsp)里,除了設置的include路徑,lib路徑和編譯器路徑,這些路徑是全局的,在打開另一些工程也會留下了,就會給編譯應用程序帶來麻煩,還需要一個一個改回去,而目錄切換器就是為了快速切換這些路徑而開發的。

② C語言如何用dos命令編譯運行

找不到程序是
PATH
的問題
可以直接在
Visual
Studio
Command
Prompt
里運行
或者打開
cmd
後執行一下
VC
目錄下的
vcvarsall.bat

③ 如何在DOS下用C/C++ 編譯器

vc的話,參考安裝後的 VsDevCmd.bat 文件,,,,,,其實,開DOS窗口,執行一次VsDevCmd.bat,就可以使用cl.exe編譯了,也可以 使用link.exe鏈接。。。。。。

最主要的是 bin目錄中的cl.exe和link.exe,即bin這個路徑要在PATH。。。。。然後是INCLUDE和 LIB環境變數要正確配置

~~~~~~
~~~~~
~~~~~~~~~~~~~~~~~

④ 怎麼用dos編譯C語言拜託了各位 謝謝

DOS是沒這個功能的,你非要DOS化一點可以用TC來寫C語言 或者你自己去弄C語言編譯器和連接器。然後怎麼使用,程序都是有HELP功能的。用過DOS的我想就不要多說了吧。呵呵。。

⑤ 用dos編輯一個c語言源程序,步驟是什麼

輸入與編輯源程序--對源程序進行編譯--與庫函數連接--運行可執行的目標程序。

⑥ windows下怎樣運行dos編輯C程序

Windows下是無法運行DOS的,這是兩個不同的操作系統(DOS下可以運行早期的Windows,那時Windows還只是一個DOS程序)。
可以在Windows的命令行程序中運行部分DOS程序,Ctrl+R,在彈出窗口中輸入cmd即可啟動命令行程序。
Windows不帶C語言編譯器,需要另外安裝,可用Turbo C、Dev-C++,也可以用mingw、cygwin等環境(如masm、nasm、tasm等是匯編器,不能編譯C語言)。

如果真的想直接編輯C程序,可以用UltraEdit等16位編輯器;只是想編輯C源代碼,可以隨便找一個純文本編輯器(UltraEdit、notepad等,但Word不行)。

⑦ 在Windows系統下,不安裝編譯器,能否直接用DOS命令編寫編譯C程序如果能,怎樣操作

首先,Windows不是純C語言編寫的,應該說是類C語言編寫的。
其次,不是不能運行C語言的程序,也不是沒有編譯器。而是運行自定義C或者C++程序是一個功能,這個功能的實現所需要的開發費用是非常高昂的,而且售出的比較少。
所以實際上C和C++的編譯器比Windows要貴很多。如果把編譯器成本分攤到Windows里,又會增加Windows的價格。
這些實際上是商業策略,需要很久才能理解。

⑧ 如何在DOS界面進行C語言編譯

以我本機為實例,我的VC6安裝在C盤,具體路徑:
C:\Program Files\Microsoft Visual Studio\VC98\Bin

你可以像我這樣嘗試輸入該路徑下的可執行文件,看看其用途說明,就知道哪個是編譯用的,哪個是鏈接用的。。。

C:\Program Files\Microsoft Visual Studio\VC98\Bin>cl
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]

然後我新建了一個cpp文件,就是顯示hello world,放在C:\test1\下面,我是這樣編譯的:

C:\Program Files\Microsoft Visual Studio\VC98\Bin>cl c:\test1\main.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

main.cpp
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:main.exe
main.obj

C:\Program Files\Microsoft Visual Studio\VC98\Bin>main
Hello world!

C:\Program Files\Microsoft Visual Studio\VC98\Bin>

⑨ 怎麼在DOS下編譯C語言成為.exe文件啊

裝mingw
將bin目錄添加到系統變數
運行cmd,輸入gcc
出現
找不到文件的提示就
說明安裝
成功了
命令gcc
用法示例:
編譯:
gcc
-c
main.c
生成
main.o
連接:
gcc
-o
m.exe
main.o
生成m.exe
可執行文件
編譯連接一起來就是
gcc
-o
m.exe
main.c
//適合單文件,不要用於工程中
如果是c++的話
連接要用g++命令

⑩ 怎麼在DOS下編譯C語言成為.exe文件啊

裝mingw
將bin目錄添加到系統變數

運行cmd,輸入gcc 出現 找不到文件的提示就 說明安裝 成功了

命令gcc 用法示例:
編譯: gcc -c main.c 生成 main.o
連接: gcc -o m.exe main.o 生成m.exe 可執行文件

編譯連接一起來就是 gcc -o m.exe main.c //適合單文件,不要用於工程中

如果是c++的話 連接要用g++命令

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:593
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:888
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:582
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:765
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:684
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1013
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:255
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:114
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:806
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:713