用g++編譯單個原始檔myprog.cc很簡單,只要把檔名當引數傳給g++就行了。
$ g++ myprog.cc
$ ls -l
-rwxr-xr-x 1 wvh users 13644 oct 5 16:17 a.out
-rw-r--r-- 1 wvh users 220 oct 5 16:17 myprog.cc
預設情況下,unix和linux作業系統生成的目標檔案是當前目錄下的a.out,只要輸入./a.out就可以執行。在cygwin系統下,你得到的是a.exe,通過輸入./a或者./a.exe都可以執行。
要定義g++的輸出檔名,使用-o選項如下所示:
$ g++ myprog.cc -o runme
$ ls -l
-rw-r--r-- 1 wvh users 220 oct 5 16:17 myprog.cc
-rwxr-xr-x 1 wvh users 13644 oct 5 16:28 runme
如果編譯多個原始檔,只要在命令列裡列出它們就行了,如下所示,最終產生的輸出檔案是showdate:
$ g++ showdate.cc helper.cc –o showdate
如果你想先編譯這些原始檔,最後再把它們鏈結成乙個2進製檔案,可以用-c選項,那麼g++就只產生object檔案,如下所示:
$ g++ -c showdate.cc
$ g++ -c helper.cc
$ g++ showdate.o helper.o –o showdate
$ ls -l
total 124
-rw-r--r-- 1 wvh users 210 oct 5 12:42 helper.cc
-rw-r--r-- 1 wvh users 45 oct 5 12:29 helper.h
-rw-r--r-- 1 wvh users 1104 oct 5 13:50 helper.o
-rwxr-xr-x 1 wvh users 13891 oct 5 13:51 showdate
-rw-r--r-- 1 wvh users 208 oct 5 12:44 showdate.cc
-rw-r--r-- 1 wvh users 1008 oct 5 13:50 showdate.o
注意
所有的gcc編譯器都是通過檔案的字尾名來判斷檔案型別的,然後選擇應該進行的操作(比如,字尾名為.o的檔案只需要進行鏈結),檔案型別到操作的對映記錄在gcc的specs檔案裡。在gcc版本4以前,specs檔案是標準文字檔案,可以用任何文字編輯器修改;但是gcc版本4以後specs檔案是內建檔案,必須要進行解壓才能修改。
很顯然,當你的專案檔案稍微多點,使用命令列來編譯就不可接受了,特別是還要加上搜尋目錄、優化選項和其他g++選項。解決的方案就是make,不過本文並不討論它。
QEMU編譯及使用方法
qemu是乙個支援跨平台虛擬化的虛擬機器,有user mode和system mode兩種配置方式。其中qemu在system mode配置下模擬出整個計算機,可以在qemu之上執行乙個作業系統。qemu的system mode與常見的vmware和virtualbox等虛擬機器比較相似,但是qem...
QEMU編譯及使用方法
qemu是乙個支援跨平台虛擬化的虛擬機器,有user mode和system mode兩種配置方式。其中qemu在system mode配置下模擬出整個計算機,可以在qemu之上執行乙個作業系統。qemu的system mode與常見的vmware和virtualbox等虛擬機器比較相似,但是qem...
編譯器使用方法
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...