如何在編譯器中包含自己
① c語言中如何將自己常用的函數封裝到編譯器的庫函數中具體應該怎麼做呢
用編譯器提供的庫管理工具。
C語言的編譯器都會提供一個命令行工具,可以把自己編譯後的.obj模塊加入指定的庫文件,以後使用時只需要連接該庫文件即可。這個命令行工具通常是lib.exe,用這個工具可以查看庫中的模塊,可以把模塊加入到庫中,可以從庫中刪除模塊。這個工具不僅僅是自己建立的庫文件的管理工具,可以管理所有的庫文件,包括C語言提供的標准庫。
② 如何利用UEStudio配置自己的編譯環境
1. 語法加亮的問題:
UEStudio(一下檢查UES),預設是支持C/C++和java的語句加亮的。但你必須先告訴UES這是一個.cpp或.java程序,否則一上來就敲源代碼,UES會把它當作普通文本文件來對待的。你只要存一下盤,源碼類型就會被UES正確識別。 如果有不能識別的其他源碼類型,可去UE網站,下載對應的wordfiles,總有一款會適合你。
2. UES本身並不帶編譯器,但如果你電腦中有這些編譯器,那麼UES本身是支持build這些程序的。但UES要求Creat->Build->Run這三部曲,才能正確編譯。
先打開project manager,指定項目文件的目錄,選擇相應的編譯器,選擇模板,鍵入項目文件名,點擊「create(創建)」按鈕後,UES會在指定的目錄下,建立:項目文件、.cpp,.h文件等。這是在Project菜單中,打開這個新項目文件,在主文件cpp中,鍵入或拷貝或添加代碼,存檔。項目Project中Build或Compiler這時都是可以被選擇的了(不再是灰色)。你當然也可以手動創建項目,然後添加自己的源碼。--- 【更詳細的說明和步驟】,可以在UES的官網上(
Home » Support » Tutorials/Power Tips » UEStudio » Creating your first application
)查看到。
3. UES是根據你的系統安裝的程序,或路徑,來配置編譯器環境的。如果UES沒有找到,你可以在Build菜單中,指定編譯器的路徑。
③ 初學者,怎麼在c語言編譯器上輸入自己名字
intmain(){
chars[10];
scanf("%s",&s);
return0;
}
④ 如何編寫一個c++代碼,而且包含自己編寫的頭文件,並且可以運行。
首先要明白這些文件時什麼文件,再用編譯器,例如:VC6.0,Dev
C++等編譯環境中運行,
你可以打開VC6.0界面,一般用得較多的是Win32控制台應用程序(源程序,擴展名.cpp),步驟是:1,建立一個工程,「文件」——「新建」,出現下面界面:選擇「Win32
Console
Application」(控制台應用程序,左邊倒數第三個),命名工程名稱,選擇保存位置,點擊「確定」,進入下一步,看到如下提示界面:建立一個空工程,對應其他需要的你一可以建立別的工程;點擊「完成」,之後:顯示你創建的工程的信息。2,再在有一個的工程的條件下,我們再建立一個源文件;「文件」——「新建」(快捷鍵Ctri+N),出現:建立源文件,選擇「C++
Source
」,一般都是建立這種文件的(適用在當文件中適用)如果要建立頭文件的話,選擇「C/C++
Header
File」,(適用在多文件工程中使用)命名,文件名稱,點擊「確定」,之後:進入編輯區,在主界面編寫代碼:如下編寫完之後呢:可以按編譯按鈕調試程序,看看有沒有錯誤,有的話改正,沒有的話就可以再按連接按鈕檢查連接(多文件工程時常用,檢查文件間是否正常連接),最後,點運行按鈕,就可以運行了如果是有代碼如:cpp文件,或
.h
文件,想添加都VC6.0里的話,請下面:
文件擴張名是.h,代表的話頭文件,一般是書寫一些函數原型,以及一些在整個程序中常用到的結構體,頻繁使用的函數說明,定義等等;文件擴張名為,cpp的,是C++中的源文件,也是最常用到的文件,每建立一個工程都要至少一個源文件(至少要有一個函數入口——主函數main()
),包含了核心代碼;建立與運行說明:(以VC
6.0編譯器為例,其他編譯器類似)首先,打開VC
6.0編譯環境;在菜單欄——文件(的下拉菜單中選擇「新建」),在彈出的選擇窗口中,選擇
Win32
Console
Application(控制台應用程序)
,在填寫
程序名稱,選擇一個程序保存路徑,點擊「完成」,查看工程信息在點擊「確定」,級建立一個簡單的工程了!再點擊左邊的工程信息右下角的「FileView」選項;可以看到你新建的工程,再雙擊你新建的工程名
可以查看工程的信息在雙擊工程文件,在這里是
777.files,可以看到該工程的包含的文件:其中,Source
Files
為包含所有工程的源文件Header
Files
為包含所有工程的頭文件
在源文件選項「Source
Files
」,右鍵單擊中的「添加目錄到工程」,添加你要打開的擴展名為
.cpp的源文件在頭文件選項「
Header
Files」,右鍵單擊中的「添加目錄到工程」,添加你要打開的擴展名為
.
h的頭文件添加完你所有的頭文件和源文件之後,檢查一下是否添加完畢,之後就可以編譯了,
其中第二個按鈕
為編譯按鈕,可以找出工程的錯誤信息,有錯誤修改,沒錯誤就可以跳到連接
,編譯右邊的按鈕
,即第三個按鈕(多文件工程一定要連接,查看文件是否准確相連接)當編譯,連接都沒有錯誤時,可以按運行按鈕
,即可以運行了
,^_^
⑤ c語言怎麼包含自己寫的頭文件
C語言中的頭文件可以自己寫的。
頭文件幾個好處:
1,頭文件可以定義所用的函數列表,方便查閱你可以調用的函數;
2,頭文件可以定義很多宏定義,就是一些全局靜態變數的定義,在這樣的情況下,只要修改頭文件的內容,程序就可以做相應的修改,不用親自跑到繁瑣的代碼內去搜索。
3,頭文件只是聲明,不佔內存空間,要知道其執行過程,要看你頭文件所申明的函數是在哪個.c文件里定義的,才知道。
4,他並不是C自帶的,可以不用。
5,調用了頭文件,就等於賦予了調用某些函數的許可權,如果你要算一個數的N次方,就要調用Pow()函數,而這個函數是定義在math.c裡面的,要用這個函數,就必需調用math.h這個頭文件。
頭文件寫法:
#include
...
//-------------------------------
#ifndef MY_POINT
#define MY_POINT
class Class1
{
}
class Class2
{
}
...
#endif
在要使用類定義的文件中加入
#include "頭文件名.h "
一般來說,頭文件里多數是放的函數定義或函數體。
此外,還有:
#ifndef ****
#define ****
……
#endif
之類的語句,用於控制#define 與 #endif之間的內容不被重復定義或插入。
#include 語句起的只是一個插入作用。
也就是說,#include 的文件里的內容可以隨便寫。
編譯器使用#include 的文件里的內容來插入到#include 所在位置。
所以,你說的「頭文件」沒有固定格式。
⑥ VC如何用編譯器將自己的源代碼轉換成目標軟體,可以執行打開的軟體,編譯成exe文件是所有文件編譯的結果
至於生成什麼文件應該看樓主需要進行設置,一般默認都會生成.EXE文件,
首先先從文件說吧,不管什麼格式都是一個文件,裡面都是數字也就是代碼,而我們在軟體里常用的文件格式一般是頭文件(.h .hpp以h開頭等),代碼實現文件(.c .cpp等),裡面裝的也就是程序代碼。
Windows(一般用VC寫的程序)程序分為 程序代碼 和 UI(User Interface用戶介面)資源 兩大部分,兩部份最後以RC編譯器整合為一個完整的EXE 文件。
所謂UI 資源是指功能菜單、對話框外貌、程序圖標、游標形狀、圖片等等東西。這些UI 資源的實際內容(二進制代碼)系藉助各種工具產生,並以各種擴展名存在,如.ico、.bmp、.cur 等等,這需要樓主在VC的資源(RC)編輯器里去搞,
過程就是,你點擊運行時,首先C編譯器編譯(所有的,當然會有先後順序這要看編譯器了).cpp文件並(.h 不會編譯不然就不要#include了~~)生成.OBJ文件(其中進行語法檢查,轉換成匯編,再轉換成二進制代碼等);提示一下,如果你在VC中有圖片呀,按鈕呀之類的是RC編譯器在你添加後自動做好的文件,它就是以圖形的形式顯示給你看而已,在C編譯的同時RC編譯器將這些圖片呀之類的搞成一個.RES的文件,再之後就是連接了,連接器把.OBJ .RES再弄成.EXE文件,
其實樓主先把這些比較核心和基礎的搞懂就OK了,希望樓主是VC界一代新秀啊~~~~~~
⑦ makefile怎樣引用自身
Make工具最主要也是最基本的功能就是通過makefile文件來描述源程序之間的相互關系並自動維護編譯工作。而makefile 文件需要按照某種語法進行編寫,文件中需要說明如何編譯各個源文件並連接生成可執行文件,並要求定義源文件之間的依賴關系。makefile 文件是許多編譯器--包括 Windows NT 下的編譯器--維護編譯信息的常用方法,只是在集成開發環境中,用戶通過友好的界面修改 makefile 文件而已。
在 UNIX 系統中,習慣使用 Makefile 作為 makfile 文件。如果要使用其他文件作為 makefile,則可利用類似下面的 make 命令選項指定 makefile 文件:
$ make -f Makefile.debug
例如,一個名為prog的程序由三個C源文件filea.c、fileb.c和filec.c以及庫文件LS編譯生成,這三個文件還分別包含自己的頭文件a.h 、b.h和c.h。通常情況下,C編譯器將會輸出三個目標文件filea.o、fileb.o和filec.o。假設filea.c和fileb.c都要聲明用到一個名為defs的文件,但filec.c不用。即在filea.c和fileb.c里都有這樣的聲明:
#include "defs "
那麼下面的文檔就描述了這些文件之間的相互聯系:
#It is a example for describing makefile
prog : filea.o fileb.o filec.o
cc filea.o fileb.o filec.o -LS -o prog
filea.o : filea.c a.h defs
cc -c filea.c
fileb.o : fileb.c b.h defs
cc -c fileb.c
filec.o : filec.c c.h
cc -c filec.c
這個描述文檔就是一個簡單的makefile文件。
從上面的例子注意到,第一個字元為 # 的行為注釋行。第一個非注釋行指定prog由三個目標文件filea.o、fileb.o和filec.o鏈接生成。第三行描述了如何從prog所依賴的文件建立可執行文件。接下來的4、6、8行分別指定三個目標文件,以及它們所依賴的.c和.h文件以及defs文件。而5、7、9行則指定了如何從目標所依賴的文件建立目標。
當filea.c或a.h文件在編譯之後又被修改,則 make 工具可自動重新編譯filea.o,如果在前後兩次編譯之間,filea.C 和a.h 均沒有被修改,而且 test.o 還存在的話,就沒有必要重新編譯。這種依賴關系在多源文件的程序編譯中尤其重要。通過這種依賴關系的定義,make 工具可避免許多不必要的編譯工作。當然,利用 Shell 腳本也可以達到自動編譯的效果,但是,Shell 腳本將全部編譯任何源文件,包括哪些不必要重新編譯的源文件,而 make 工具則可根據目標上一次編譯的時間和目標所依賴的源文件的更新時間而自動判斷應當編譯哪個源文件。
Makefile文件作為一種描述文檔一般需要包含以下內容:
◆ 宏定義
◆ 源文件之間的相互依賴關系
◆ 可執行的命令
Makefile中允許使用簡單的宏指代源文件及其相關編譯信息,在Linux中也稱宏為變數。在引用宏時只需在變數前加$符號,但值得注意的是,如果變數名的長度超過一個字元,在引用時就必須加圓括弧()。
下面都是有效的宏引用:
$(CFLAGS)
$2
$Z
$(Z)
其中最後兩個引用是完全一致的。
需要注意的是一些宏的預定義變數,在Unix系統中,$*、$@、$?和$ <四個特殊宏的值在執行命令的過程中會發生相應的變化,而在GNU make中則定義了更多的預定義變數。關於預定義變數的詳細內容,宏定義的使用可以使我們脫離那些冗長乏味的編譯選項,為編寫makefile文件帶來很大的方便。
# Define a macro for the object files
OBJECTS= filea.o fileb.o filec.o
# Define a macro for the library file
LIBES= -LS
# use macros rewrite makefile
prog: $(OBJECTS)
cc $(OBJECTS) $(LIBES) -o prog
……
此時如果執行不帶參數的make命令,將連接三個目標文件和庫文件LS;但是如果在make命令後帶有新的宏定義:
make "LIBES= -LL -LS "
則命令行後面的宏定義將覆蓋makefile文件中的宏定義。若LL也是庫文件,此時make命令將連接三個目標文件以及兩個庫文件LS和LL。
在Unix系統中沒有對常量NULL作出明確的定義,因此我們要定義NULL字元串時要使用下述宏定義:
STRINGNAME=
Make命令
在make命令後不僅可以出現宏定義,還可以跟其他命令行參數,這些參數指定了需要編譯的目標文件。其標准形式為:
target1 [target2 …]:[:][dependent1 …][;commands][#…]
[(tab) commands][#…]
方括弧中間的部分表示可選項。Targets和dependents當中可以包含字元、數字、句點和 "/ "符號。除了引用,commands中不能含有 "# ",也不允許換行。
在通常的情況下命令行參數中只含有一個 ": ",此時command序列通常和makefile文件中某些定義文件間依賴關系的描述行有關。如果與目標相關連的那些描述行指定了相關的command序列,那麼就執行這些相關的command命令,即使在分號和(tab)後面的aommand欄位甚至有可能是NULL。如果那些與目標相關連的行沒有指定command,那麼將調用系統默認的目標文件生成規則。
如果命令行參數中含有兩個冒號 ":: ",則此時的command序列也許會和makefile中所有描述文件依賴關系的行有關。此時將執行那些與目標相關連的描述行所指向的相關命令。同時還將執行build-in規則。
如果在執行command命令時返回了一個非 "0 "的出錯信號,例如makefile文件中出現了錯誤的目標文件名或者出現了以連字元打頭的命令字元串,make操作一般會就此終止,但如果make後帶有 "-i "參數,則make將忽略此類出錯信號。
Make命本身可帶有四種參數:標志、宏定義、描述文件名和目標文件名。其標准形式為:
Make [flags] [macro definitions] [targets]
⑧ 如何用編譯器將自己的源代碼轉換成目標代碼
我們使用編譯器將自己的源代碼轉換成目標代碼, 使用鏈接器將我們的目標代碼鏈接成一個可執行程序。另外, 我們使用一些程序在計算機中輸入源代碼文本並且編輯它。這些是最初的和最重要的工具, 它們構成程序員的工具集合或「程序開發環境」。 如果你使用的是命令行窗口, 就像很多專業程序員所做的那樣, 你將不得不自己來編寫編譯和鏈接命令。如果你使用IDE(「互動式開發環境」或「集成式開發環境」), 就像很多程序員所做的那樣, 簡單地點擊正確按鈕就可以完成這個工作。附錄C介紹了如何在你的C++實現中編譯和鏈接。 IDE通常包括一個具有有用特性的編輯器, 例如用不同顏色的代碼來區分你的源代碼中的注釋、 關鍵字和其他部分, 以及其他幫助你來調試代碼、 編譯和運行代碼的功能。調試是發現程序中的錯誤和排除錯誤的活動, 你在前進的道路上會聽到很多有關它的內容。 我們使用微軟的Visual C++作?喑炭 ⒒肪呈道 H綣 頤羌虻サ廝怠氨嘁肫鰲被蚴恰癐DE」的某些部分, 那就是所指Visual C++系統。但是, 你可以使用一些提供最新的、 符合標準的C++實現的系統。我們所說的大多數內容(經過微小的修改)對所有的C++實現都將是正確的, 並且其代碼可以在任何地方運行。在工作中, 我們使用幾種不同的實現。
⑨ C語言含有包含自定義頭文件的程序怎麼編譯
1、只要在程序開頭加入#include 「自定義頭文件名」,在編譯過程當中,頭文件自動會被添加到源文件當中一起進行編譯。
2、編譯,編譯程序讀取源程序(字元流),對之進行詞法和語法的分析,將高級語言指令轉換為功能等效的匯編代碼,再由匯編程序轉換為機器語言,並且按照操作系統對可執行文件格式的要求鏈接生成可執行程序。C源程序頭文件-->預編譯處理(cpp)-->編譯程序本身-->優化程序-->匯編程序-->鏈接程序-->可執行文件。

⑩ 如何把自己寫的頭文件用#include<gt;包含
__HARDWARE_H__已經被定義,則下面的代碼部分就不會被編譯了,這樣就避免了重復定義。
另外一個地方就是使用include時,使用引號與尖括弧的意思是不一樣的。使用引號(「」)時,首先搜索工程文件所在目錄,然後再搜索編譯器頭文件所在目錄。而使用尖括弧(<>)時,剛好是相反的搜索順序。假設我們有兩個文件名一樣的頭文件hardware.h,但內容卻是不一樣的。一個保存在編譯器指定的頭文件目錄下,我們把它叫做文件I;另一個則保存在當前工程的目錄下,我們把它叫做文件II。如果我們使用的是#i nclude <hardware.h>,則我們引用到的是文件I。如果我們使用的是#i nclude 「hardware.h」,則我們引用的將是文件II。筆者以前就遇到過一個同事問,為什麼他修改了那個頭文件裡面的內容,好象跟沒有修改一樣?就是因為他有兩個一樣的頭文件(就像我們剛描述的那樣),他是使用#i nclude<hardware.h>引用的,而他修改時,卻是當前工程所在的目錄下的那個文件。
