輕松編譯
A. 如果能輕松編譯LFS linux.好找工作嗎,月薪能有多少呢
lfs還是一個比較成熟的東西, 會編譯lfs,不代表你對linux掌握的很多。
上萬不成問題那也是講講的。 工資上萬的搞linux的人眼裡,lfs應該算不上什麼東西的, 根本沒有必要去學習和研究
B. window內自帶的C語言編譯器怎麼用
1、首先,輸入【#include】。

注意事項:
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
C. 輕松匯編怎麼用
一步 基本的編輯功能
這里是介紹基本的編輯功能,就像在介紹Windows自帶的記事本。 文件菜單: 新建:新建一個文件,快捷鍵為 Ctrl+N ; 保存:保存當前文件,快捷鍵為 Ctrl+S ; 打開:打開一個文件,快捷鍵為 Ctrl+O ; 退出:退出輕松匯編 ; 另存為: 把正在編輯的文件存為另外一個文件 ; 最近使用過的文件:在這里紀錄了您最近使用過的文件,可以快速打開。如果 您不希望別人看到您編輯過什麼程序,可以點擊「清空全部紀錄」。 編輯菜單: 全選:選定正在編輯的全部內容,快捷鍵為 Ctrl+A; 復制:復制選定的內容到剪貼板,快捷鍵為 Ctrl+C; 剪切:復制選定的內容到剪貼板,並刪除所選定的內容,快捷鍵為 Ctrl+X; 粘貼:把剪貼板中的內容復制到編輯窗口,快捷鍵為 Ctrl+P; 刪除:刪除選定內容,快捷鍵為 Del; 撤消:撤消上一步操作,快捷鍵為 Ctrl+Z,但是注意只能撤消一次。 查找菜單: 查找:在所編輯的文件中查找字元串,快捷鍵為 Ctrl+F; 替換:在所編輯的文件中把一個字元串替換為另一個,快捷鍵為 Ctrl+R; 查找下一個:從當前游標起,查找下一個,快捷鍵為 F3;
第二步 編寫一個匯編程序
編寫第一個匯編程序。 打開輕松匯編就自動為您新建了一個模板,直接在上面添加數據定義和代碼就可以了。 一般來說,都是先寫堆棧段。輸入「stacks segment stack」,用空格隔開關鍵字。然後按下回車鍵換行——您會看到,輕松匯編自動把剛才輸入的那一行程序的格式整理好了。 第二行應該是堆棧的大小了,應該輸入「db 128 p(0)」,輸入「bd 128 p(0)」試試,會怎樣?在換行時沒有整理格式。如果您輸入的匯編程序有拼寫錯誤,輕松匯編會檢測出來,並且拒絕整理錯誤行的格式,這時候您就可以避免這類簡單而又隱蔽的錯誤。當然,如果您確定您輸入的是正確的,而輕松匯編沒有整理格式,或整理的格式不好看,請告訴我這個錯誤,不勝感激,聯系方式見左側小字。在您編程的過程中,左側的導航欄會隨時更新您的語法信息,可以通過導航欄來快速定位您的語法元素。 接著,把您所想要寫的程序寫完,進行下一步:編譯、運行一個程序。 如果是以前寫的程序,在輕松匯編中打開後,點擊:運行-整理格式,輕松匯編會對整個程序格式進行整理。
第三步 編譯、運行一個匯編程序
把您剛才寫的那個匯編程序編譯、運行一下,熟悉操作。 點擊:運行-生成目標文件,輕松匯編就會自動生成目標文件,另外,根據您的設定(如何設定,請參見第四步),還會生成其他的文件。默認是生成交叉文件和映像文件,點擊右上角的按鈕就可以看到這兩個文件(這兩個文件的作用,請參見疑難解答)。 如果有語法錯誤,編譯會失敗,錯誤信息會顯示在下面的窗口中,點擊錯誤信息,錯誤行就會突出顯示出來。 點擊:運行-運行,輕松匯編就會會自動完成編譯、鏈接、運行當前程序。在程序運行時是全屏方式,結束後變成窗口方式,不會退出。 點擊:運行-調試,輕松匯編就會自動完成編譯、鏈接、調試的工作,使用的是TD作為調試工具。 就這些了,因為在輕松匯編下編譯、運行一個程序確實簡單。 在匯編時還有其他的可能,那麼,請進行第四步:讓匯編變的更輕松。
第四步 讓匯編變得更輕松
對輕松匯編進行個人設置,讓它更符合您的習慣。 在輕松匯編中根據初學者的特點,提供了很有特色的功能,如果您不喜歡的話,可以關掉它,對於運行的參數,同樣也是通過設置來改變的。下面我們一一介紹: 在設置窗體中: 格式設定:在這里的下拉框中有三個選項,全部大寫、全部小寫和不處理, 選定後的結果分別是在進行格式處理時對格式化結果的處理。 自動整理格式:選定後在換行的時候會對原來行進行格式整理,如果沒有選定就不整理格式。 採用調試模式:選定後在編譯時包括參數/zi,在鏈接時包括參數/v,這樣生成的可執行文件比較大,包含了用TD調試時所需要的信息,可以實現源代碼調試;如不選定,不能實現源代碼調試,在調試的時候不太方便。推薦選定該選項。 編譯生成Com文件:選定該選項後在鏈接時包括參數/t,如果你寫的是一個com文件的匯編代碼,那麼就可以選定以生成一個com後綴的文件。在選定該選項後調試時不能實現源代碼調試,所以最好在編寫、調試的時候不選定,最後調試通過後再選定該選項生成com文件。如果不選定,即使是com文件的匯編代碼也是可以編譯通過,只不過生成的是一個Exe文件。推薦不選定。 自定義參數:就是自己提供TASM和TLink的參數了,如果你對TASM了解比較多,可以實現其他的參數功能,但是對於一般的學習者,並不需要自定義參數,以免造成程序運行時出問題。 程序格式:在這里控制格式整理的方式,您可以自己設置後看看效果。不過推薦用默認方式。 顯示導航欄:選中後顯示導航欄,否則不顯示。 顯示錯誤欄:選中後顯示錯誤欄,否則不顯示。推薦選中,因為不選中的話,有錯誤它也不會自動顯示的。
編輯本段三,疑 難 解 答
交叉文件和映像文件是什麼?
交叉文件和映像文件是編譯過程和結果的詳細顯示。其中交叉文件是在第二遍掃描中建立的,映像文件是對可執行文件的說明,所以只有生成了可執行文件,才會有映像文件,但是只要不發生嚴重錯誤,就有交叉文件。 學會閱讀交叉文件對於理解匯編原理更加重要,交叉文件說明如下: 1、編譯後的機器代碼和匯編語言的對應關系。 在交叉文件的主體部分,就是說明編譯後的機器代碼和匯編語言的對應關系的,分為三列,第一列是編譯後機器代碼在內存中的地址,第二列是編譯後的機器代碼,第三列就是你寫的匯編語言和注釋。要注意的是,在交叉文件中的數字全部都是用十六進製表示的,沒有十進製表示的數字。 下面是一段交叉文件的原文: 000E B1 02 MOV CL,2 ;把2送到CL中 0010 F6 E9 IMUL CL ;CL中的數值和AL中數值相乘 0012 FE C0 INC AL ;AL中的數值加1 在第一列是對應指令在內存的地址,第一條指令「MOV CL,2」的起始地址是000E,佔了兩個位元組(B1 02),所以第二條指令的起始地址是0010。 在第二列是編譯後的機器指令,第一條指令「MOV CL,2」編譯後的機器代碼是「B1 02」,其中B1表示:1)是MOV指令;2)定址方式是立即數定址;3)使用的是CL寄存器。02表示操作數是02H,十六進制數2。第二、三條指令也是以此類推,查看一下指令格式就可以了。編譯後的可執行文件里寫的就是第二列的內容,您可以用UlTra Edit等十六進制編輯器打開看一看。 第三列就是被編譯的匯編指令。 2.宏擴展情況。 在存在著宏擴展的部分,都用「1」標出,如下所示: 0024 E8 0035 CALL PINISET MOUTPUT CLINE ;輸出CLINE 0027 BA 0001 R 1 MOV DX,OFFSET CLINE 002A B4 09 1 MOV AH,09H 002C CD 21 1 INT 021H 在這段程序中,事先定義了宏MOUTPUT: MOUTPUT MACRO PSTR ;輸出PSTR MOV DX,OFFSET PSTR MOV AH,09H INT 021H ENDM 而CLINE是一個數據。 您可以看到,宏被擴展成的三條指令都用「1」標出來了。 3.錯誤列表。 在交叉文件的匯編語言的錯誤行的上面標出了錯誤原因、錯誤行、和錯誤類別,在交叉文件的最後,還列出了總的錯誤數。 4.段、子程序、宏、變數的清單。 在交叉文件的最後部分是對匯編程序中所有的段、子程序、宏、變數的清單,列出了它們的起始地址、值、類型等特徵。 學會閱讀交叉文件,可以對了解指令格式、編譯原理有很大的幫助,而且通過閱讀交叉文件,可以了解實際的宏擴展情況,有利於程序排錯。
為什麼語法錯誤的提示信息是亂七八糟?
輕松匯編調用的是TASM 5.0作為內核編譯匯編程序的,錯誤信息也是通過TASM 5.0來截獲的。為了簡便安裝,把TASM 5.0功能實現所需要的最少的幾個文件附帶安裝了,它們是TASM.Exe,TLink.Exe,TD.Exe,RTM.Exe。 其中,TASM.Exe的版本是4.1,TLink.Exe的版本是7.1.30.1。如果發生了上述情況,很可能是被替換成了不同的版本,您可以再其他地方拷貝一個相同版本的過來。或者重新安裝輕松匯編。現在網上很多TASM5就是輕松匯編所調用的。
為什麼運行結果和匯編源代碼不一致呢?
在有些情況下,會發生這種問題:修改了源代碼以後再運行程序,運行的結果卻是修改以前的,似乎修改的沒有效果! 解決這個問題的辦法是在修改源代碼以後,都要先編譯(Ctrl+F9),在編譯通過後,再鏈接(F9),然後再運行或調試,否則修改就沒有效果。 之所以會這樣,是因為在輕松匯編中,編譯只負責把匯編的源代碼編譯成目標文件(*.obj),而鏈接只負責把已有的目標文件鏈接成可執行文件(*.exe),而運行只負責運行已經存在的可執行文件,調試也只負責調試已經存在的可執行文件。這是符合在命令行下寫匯編程序的規則的。 在這種情況下,如果你先打開一個匯編程序,第一次編譯、鏈接、運行或調試,都很正常。接著,你修改了源代碼,再運行,結果肯定是修改以前的,因為可執行文件還是按修改前的源代碼生成的,鏈接一遍再運行,結果還是修改以前的,因為目標文件是按修改以前的源代碼生成的,那由此生成的可執行文件自然也是按修改以前的代碼生成的了。所以必須重新編譯一遍再重新鏈接一遍,然後再運行或調試,就沒問題了。
D. 如何在Dos下編譯和運行java程序
第一:首先安裝JDK。 第二:為了能使Java程序在dos下很方便的編譯和運行Java程序,就要配置其運 行的環境變數,具體步驟如下: (1)在安裝的目錄下找到你所安裝的JDK文件,在裡面找到java.exe文件,復制其路徑。 (2)滑鼠右擊我的電腦,打開屬性面板單擊高級菜單、選擇「環境變數」。 (3) 在彈出的面板中找到「系統環境變數」,在其窗口選中變數名為Path的變數。 Path是路徑設置命令,其功能是:設備可執行文件的搜索路徑,只對文件有效。當運行一個可執行文件時,DOS會先在當前目錄中搜索該文件,若找到則運行之;若找不到該文件,則根據Path命令所設置的路徑,順序逐條地到目錄中搜索該文件;Path命令中的路徑,若有兩條以上,各路徑之間以一個分號「;」開。 (4)單擊「編輯」,在彈出的窗口中的變數值的最後面粘貼上你剛才找到的路徑,中間用分號隔開,單擊確定。這樣你就可以在DOS下很輕松的編譯和運行Java程序. 如果Path路徑中前面的路徑有別的JDK版本,則在DOS下運行的是路徑比較前面的版本。 第三:編譯Java程序生成「.class」文件,在DOS下,應用DOS命令找到你所編Java程序文件(假設文件名為HelloWorld.java)的根目錄下輸入命令:javac HelloWorld.java。如果生成。「.class」文件則編譯成功。 第四:執行Java程序:接著上步操作輸入:java HelloWorld;在命令提示符上會出現運行結果。
E. 如何編譯OpenWrt
Openwrt 官方正式的發行版是已編譯好了的映像文件(後綴名bin或trx、trx2),此映像文件可從Openwrt官方網站的下載頁面中輕松獲取到,連接地址為 OpenWrt官方網站。這些編譯好的映像文件是基於默認的配置設置,且只針對受支持的平台或設備的。因此,為什麼要打造一個自己的映像文件,理由有以下四點:
您想擁有一個個性化的配置OpenWrt(彰顯個性,在朋友圈子裡顯擺顯擺,開個玩笑);
您想在實驗性的平台上測試OpenWrt;
您參與測試或參與開發OpenWrt的工作;
或者,最簡單的目的就是為了保持自己的Openwrt為最新版本;
若想實現上述目的,其實很簡單,按下述文字即可成功編譯出一個您的Openwrt來。
准備工作
在開始編譯Openwrt之前需要您做些准備工作;與其他編譯過程一樣,類似的編譯工具和編譯環境是必不可少的:
一個構建OpenWrt映像的系統平台,簡單說就是准備一個操作系統(比如Ubuntu、Debian等);
確保安裝了所需的依賴關系庫, (在debian系統中就是安裝各種需要的軟體包)
OpenWrt源代碼副本
首先, 開機登陸到支持編譯Openwrt的操作系統(廢話了)。實體機或者虛擬機(Vmware 或者 Qemu)里的操作系統都行,這里推薦使用Linux系統。 bsd和mac osx系統也可以編,但不推薦,且未驗證是否可編譯成功。下文假定您使用的是Debian操作系統,使用 apt-get 來管理包. 替代的選擇是 Ubuntu (分支 Kubuntu, Xubuntu 等即可)。
第二步, 就是安裝所需要的各種軟體包, 包括編譯器,解壓工具,特定的庫等. 這些工作可以簡單的通過鍵入以下命令 (通常需要root 或者是 sudo 許可權),以root許可權安裝下列軟體包(可能並不完整,會有提示,提示缺少即裝就可以了):
32位(x86)請執行下列命令:
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev
64位(x86_64)請執行下列命令(多裝了哪些庫或軟體包呢?請您仔細看一看哦):
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev ia32-libs \
lib32gcc1 libc6-dev-i386
參考 本列表中 所列的編譯環境所需要軟體包或庫。
某些依賴的為庫或軟體包也許操作系統中已經安裝過,此時apt-get會作出提示(提示您忽略或重新安裝的),別緊張,放輕鬆些,編譯Openwrt不會像編譯DD-WRT那樣難的(至少本人是體會到了編譯DD-WRT的難)。
最後下載一份完整的 Openwrt 源碼到編譯環境中。關於Openwrt的源代碼下載,途徑有二,一是通過 svn ,一是通過 git,建議使用 svn ,因為Openwrt主要以 svn 來維護Openwrt系統的版本。另外,請注意Openwrt中不同的分支版本,一個是用得較多的開發快照,俗稱 trunk,二是穩定版,俗稱 backfire。
安裝Subversion
若你想通過svn下載源代碼,你需安裝 Subversion。Subversion,或稱SVN, 是OpenWrt的project中用來控製版本的系統,它非常類似的 CVS的界面和使用條款。 執行下述命令即可安裝SVN,很容易的:
# apt-get install subversion
Subversion安裝完畢,通過SVN命令可獲取得到一份OpenWrt純凈源代碼。您還得創建一個目錄以便存放獲取得到的Openwrt源代碼,要獲取源代碼你還得輸入subversion命令來獲取 (svn里這種操作稱之為'check out') 。命令很簡單的,繼續看下去就能見到了,別著急,耐心點兒。
編譯流程
編譯專屬於您的設備的特定Openwrt固件以一下五個步驟:
通過Subversion命令獲得源代碼;
更新(或安裝) package feeds〔package feeds無法確切翻譯,待譯吧);
創建一個默認配置以檢查編譯環境是否搭建好了 (假如需要的話);
用Menuconfig來配置即將編譯生成的固件映像文件的配置項;
最後開始編譯固件;
下載源代碼
最後,下載一份完整的OpenWrt源代碼。你可選擇:
下載穩定發行版,或
下載開發版 (俗稱"trunk"版)。
使用發行版的源碼
截止本文時, Openwrt公開發行的穩定版為 OpenWrt 10.03 "backfire"。此版本是最穩定的,但也許不包括最新更新的補丁或最新編寫的出的新功能。
下述代碼即舉例說明了通過svn從brandkfire獲得backfire源代碼(此版本意思是從trunk分支的補丁也在backfire版本中了,即包含修復補丁):
# mkdir OpenWrt/
# cd OpenWrt/
# svn co svn://svn.openwrt.org/openwrt/branches/backfire
註解: 上述svn命令將在當前目錄創建一個 OpenWrt/backfire/ 子目錄,此目錄包含此命令獲取到的源代碼。
您也可以通過下述命令,下載不含修復補丁的backfire的原版源碼:
# svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03
使用開發版源代碼
當前的開發版本分支(trunk)已包含最新的實驗補丁。此分支或許還突破了Openwrt原來所不支持的硬體設備的限制哦,驚喜的同時也有風險存在。因此,編譯trunk版,慎之~
# mkdir OpenWrt/
# cd OpenWrt/
# svn co svn://svn.openwrt.org/openwrt/trunk/
更多詳細資料詳見: https://dev.openwrt.org/wiki/GetSource.
跟進並更新源代碼
因Openwrt的源代碼隨時都會變動,故此命令將確保您所獲取得到的源碼的最新性。下述假設您用的是backfire版本的源碼:
## Here, backfire is the directory name of the current release branch you're tracking
# cd OpenWrt/backfire/
# svn up
'svn up' 命令用於更新SVN上更新了,但本地尚未更新的這部分源代碼(本人實踐證明此命令會將本地源碼與SVN上的源碼先比較,若SVN有更新才會下載更新的部分,很實用的一個命令)。如果未指定目標路徑,則此命令將更新當前目錄及當前目錄的子目錄內的源碼。
Feeds下載
Feeds即為包含到你的OpenWrt環境中的額外軟體包的索引之類的。(feed譯名很多,莫衷一是,至2008年底為止,還沒有一個十分通用而備受認可的中文譯名;所以此文當中我們用英文feed來稱呼)。 最主要的Feeds有以下三個:
'packages' - 路由的基本功能,
'LuCI' - OpenWrt默認的GUI(WEB管理界面), 及
'Xwrt' - 其他的GUI。
一般情況,你至少需要含 'packages' 和 'LuCI'兩個Feeds。
下載完feeds之後, (為編譯OpenWrt的recipies額外的預定義包) 您可以檢查哪些feeds要包括在內。編輯在你的編譯環境的根目錄下的'feeds.conf.default'文件。
然後使用下列命令開始下載(註:可能你需要先運行cd trunk進入trunk目錄才能成功執行下列命令):
# ./scripts/feeds update -a
在此之後,下載的軟體包需要安裝。亦即指的下邊的命令啦。若路過下邊的install命令則後續make menuconfig將無法成功執行!(註:可能你需要先運行cd trunk進入trunk目錄才能成功執行下列命令):
# ./scripts/feeds install -a
只需編輯Feeds的配置文件或運行更新命令,即可很方便地更新或添加新的實驗性的packages到源碼中並編譯到OpenWrt固件去。
注意:請老壇友及舊的新聞組成員們注意了,這一步取代了創建符號鏈接symlinks的老辦法哦。
更新Feeds
諸如此類源碼,你得定期更新Feeds。 通過如上相同的命令:
# ./scripts/feeds update -a
# ./scripts/feeds install -a
注意:若你清楚地知道你不需添加新的packages到menuconfig中去,那麼你可在更新Feeds時跳過這一步。
生成配置
You may not have to make configration always after updating sources and feeds, but making it ensures that all packages from source and feeds are correctly included in your build configuration.
Defconfig
下一步是檢查編譯環境,若可進行編譯則生成默認配置:
# make defconfig
若defconfig回顯提示缺少軟體包或編譯庫等依賴,則按提示安裝所缺軟體包或庫等即可,不難的,細心點就行。
Menuconfig
menuconfig是一個基於文本的工具,它處理選擇的目標(需要還是不需要)、編譯生成軟體包(openwrt下是IPKG格式)以及內核選項(編譯成模塊還是內核)等等
# make menuconfig
在你離開並保存配置文件(默認都是.config)後,將自動配置依賴關系,讓你可以著手編譯更新的固件。
大眾可通過'menuconfig'這一簡單的圖形化的配置環境,非常輕松地編譯出專屬您本人的OpenWrt固件。
可以用'menuconfig',以開發的意圖來編譯OpenWrt的固件,為自己(個人)創造一個結構簡單但是功能強大的環境。(上句實在難翻譯,只能意譯。並且也請大家都學習下編譯OP固件,讓以OP固件盈利的人丟掉那骯臟的飯碗!)
Menuconfig或多或少有些難以說明的地方,即使是最專業的配置,也可以尋求幫助並加以解決。 需要你指定何種目標平台,要包含的package軟體包和內核模塊等均需要你指定,配置標準的過程中會包括修改:
目標平台(即路由器何種架構,BCM呢還是AR均可選擇)
選擇要包含的package軟體包
構建系統設置
內核模塊
Target system is selected from the extensive list of supported platforms, with the numerous target profiles – ranging from specific devices to generic profiles, all depending on the particular device at hand. Package selection has the option of either 'selecting all package', which might be un-practical in certain situation, or relying on the default set of packages will be adequate or make an indivial selection. It is here needed to mention that some package combinations might break the build process, so it can take some experimentation before the expected result is reached. Added to this, the OpenWrt developers are themselves only maintaining a smaller set of packages – which includes all default packages – but, the feeds-script makes it very simple to handle a locally maintained set of packages and integrate them in the build-process.
假如你需要LuCI, 要到Administration 菜單里,在LuCI組件的子菜單下, 並選擇: luci-admin-core, luci-admin-full, and luci-admin-mini組件包。
假如你不需要PPP,你可到Network菜單下取消對它的選擇,以便編譯時不包含此組件。
Menuconfig用法: 確保這些組件包是以 '*'星號標記而不是 'M'標記。
如果你是以星號 '*'標記該組件包, 則該組件包將編譯進最終生成的OpenWrt固件中。
如果你僅以 'M'標記該組件包, 則該組件包將不會編譯進最終生成的OpenWrt固件中。
The final step before the process of compiling the intended image(s) is to exit 'menuconfig' – this also includes the option to save a specific configuration or load an already existing, and pre-configured, version.
Exit and save.
Source Mirrors
The 'Build system settings' include some efficient options for changing package locations which makes it easy to handle a local package set:
Local mirror for source packages
Download folder
In the case of the first option, you simply enter a full URL to the web or ftp server on which the package sources are hosted. Download folder would in the same way be the path to a local folder on the build system (or network). If you have a web/ftp-server hosting the tarballs, the OpenWrt build system will try this one before trying to download from the location(s) mentioned in the Makefiles . Similar if a local 'download folder', residing on the build system, has been specified. The 'Kernel moles' option is required if you need specific (non-standard) drivers and so forth – this would typically be things like moles for USB or particular network interface drivers etc.
編譯固件
萬事具備,只欠東風,通過下面簡單的make命令來編譯:
# make
在多核電腦中編譯
具有多核CPU處理器的電腦進行編譯,使用下述參數可令編譯過程加速。 常規用法為 <您cpu處理器的數目 + 1> – 例如使用3進程來編譯 (即雙核CPU), 命令及參數如下:
# make -j 3
後台編譯
若你在這個系統內編譯OpenWrt的同時還處理其他,可以讓閑置的I/O及CPU來在後台編譯固件 (雙核CPU):
# ionice -c 3 nice -n 20 make -j 2
編譯簡單的基本的軟體包
當你為OpenWrt開發或打包軟體包,編譯簡單的基本的軟體包可以很輕易地編譯該軟體包 (例如, 軟體包cups):
# make package/cups/compile V=99
一個在Feeds里的軟體包大約是這樣子的:
# make package/feeds/packages/ndyndns/compile V=99
編譯錯誤
如果因某種不知道的原因而編譯失敗,下面有種簡單的方法來得知編譯到底錯在哪裡了:
# make V=99 2>&1 |tee build.log |grep -i error
上述編譯命令意為:V99參數,將出錯信息保存在build.log,生成輸出完整詳細的副本(with stdout piped to stderr),只有在屏幕上顯示的錯誤。
舉例說明:
# ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 \
|tee build.log |egrep -i '(warn|error)'
The above saves a full verbose of the build output (with stdout piped to stderr) in build.log and outputs only warnings and errors while building using only background resources on a al core CPU.
一鍵編譯
即使用腳本來編譯Openwrt固件。許多朋友編譯Openwrt是用的腳本來編譯的,詳見: https://forum.openwrt.org/viewtopic.php?id=28267
生成的固件在哪
編譯成功後所生成的固件文件位於bin目錄下,可用如下命令查看:
# cd bin/
# ls */
清理
編譯OpneWrt時你可能需要一個清潔干凈的編譯環境。 以下操作有利用編譯工作:
清潔
清潔trunk/ 目錄,在編譯過程中使用「make clean」命令即可。 此命令將刪除bin目錄和build_dir目錄下的所有文件及文件夾。
## See CAUTION below
# make clean
F. 學C語言用什麼編譯器好
C-Free 還行,我就是用這個 寫C、C++程序 ,小巧,不到20M,真的不錯~~~~~~~
C-Free 5.0 專業版
C-Free是一款支持多種編譯器的專業化C/C++集成開發環境(IDE)。利用本軟體,使用者可以輕松地編輯、編譯、連接、運行、調試C/C++程序。C-Free中集成了C/C++代碼解析器,能夠實時解析代碼,並且在編寫的過程中給出智能的提示。C-Free提供了對目前業界主流C/C++編譯器的支持,你可以在C-Free中輕松切換編譯器。可定製的快捷鍵、外部工具以及外部幫助文檔,使你在編寫代碼時得心應手。完善的工程/工程組管理使你能夠方便的管理自己的代碼。
G. .NET下所有語言都可以輕松被反編譯嗎
JVM和CLR下面的所有語言都是先編譯為位元組碼的,相對於傳統的C++,容易被反編譯容易被反編譯的不僅僅是C#,還有Java,F#,VB.net,事實上,C#已經可以通過native編譯直接生成機器碼運行了(.net native技術)這樣一定程度上可以提高反編譯的難度
H. Microsoft Visual Studio 2005下能直接編譯CS文件嗎
應該可以吧。有一個main就可以,你可以建一個控制台的工程就可以了
I. 編程語言排行榜是怎樣的
2019年排行:Java,C,python,C++,C#,PHP。
1、Java
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。

4、C++
C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。
C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
C++不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
5、C#
C#是微軟公司發布的一種面向對象的、運行於.NET Framework和.NET Core(完全開源,跨平台)之上的高級程序設計語言。並定於在微軟職業開發者論壇(PDC)上登台亮相。
C#是面向對象的編程語言。它使得程序員可以快速地編寫各種基於MICROSOFT .NET平台的應用程序,MICROSOFT .NET提供了一系列的工具和服務來最大程度地開發利用計算與通訊領域。
J. 如何製作CHM類似的軟體的軟體
使用QuickCHM軟體輕松編譯CHM格式的文件
談起CHM格式的文件,可能無人不曉,因為幾乎所有的軟體,現在都用CHM格式的文檔製作軟體幫助文件。另外,有很大一部分電子圖書也是用CHM格式編譯的。其實,編譯CHM格式的文件很簡單,下面就為大家介紹一款製作CHM文件的利器——QuickCHM。
軟體名稱:QuickCHM
軟體大小:1460KB
下載地址:http://www.skycn.com/soft/6785.html
在介紹QuickCHM之前,有必要對CHM的格式作個簡單說明。CHM文件格式是微軟1998年推出的基於HTML的幫助文件系統,它代替了早先的WinHelp幫助系統,能在Windows 98或NT及以上版本的操作系統中直接運行。
編譯CHM
QuickCHM未注冊時,只能編輯最多20個節點的項目,在製作CHM文件前,最好把要編譯進CHM中的文件編輯成HTML網頁文件,CHM格式的文件支持所有的網頁元素,所以你可以隨心所欲地在Dreamweaver等網頁編輯軟體中編輯HTML文件。QuickCHM自帶一個簡易的網頁編輯器,利用它可以編輯一些簡單的網頁,一般的做法是在Dreamweaver中做好網頁,然後在QuickCHM中進行局部的修改。
需要注意的是編譯進CHM文檔中的文件最好都放在同一個文件夾中。
啟動QuickCHM,在菜單欄執行「文件→新建」命令,新建一個「hhp」項目。切換到「目錄」頁,在菜單欄執行「主題→導入→添加文件夾」,導入待編譯的文件夾中的文件,注意,在彈出的「添加文件夾」對話框中,可以使用過濾器,防止圖片等某些類型的文件進入目錄。在默認的情況下,進入目錄中的各節點即主題都是以網頁標題顯示的(如圖1),也可以在「系統選項」中設置為以文件名顯示。接下來的任務,就是編輯目錄和網頁,下面就以這兩個方面作簡單的介紹。
編輯目錄:
目錄的編輯主要是重命名主題,修改主題圖標,排序主題,嵌套主題,新建主題和刪除主題,這些都可以利用右鍵快捷菜單和「目錄」頁上的按鈕完成。
編輯網頁:
QuickCHM集成了一個所見即所得的網頁編輯器,利用QuickCHM提供的網頁編輯工具箱(如圖1),可以完成大部分的網頁操作。切換到「源文件」頁,可以對HTML源代碼進行直接修改。和多數網頁編輯軟體一樣,切換到「預覽」頁,可以對當前網頁實時預覽。
圖1
利用同樣的方法,還可以給幫助系統做一個「索引」頁。
目錄和網頁編輯完成以後,就可以輸出CHM文檔了,不過在輸出前也可以把它保存為一個「.hhp」項目,以便日後繼續編輯。點擊工具欄上的「編譯」按鈕,編譯完成,如圖2所示,這是利用上述的方法製作的「瑞星殺毒軟體2004版」的幫助系統,從圖中可以看出,這個幫助系統的「面板」上只有「目錄」頁,沒有「索引」頁。
圖2
事實上,CHM文件的這個閱讀平台即「瀏覽窗體」的所有部分都可以在「編譯」前進行修改和定製,若你做進CHM幫助系統的各網頁間都能相互導航,我們甚至可以隱藏或關閉整個「面板」。
在菜單欄上執行「選項→項目選項」命令,彈出「參數」對話框,如圖3所示,在這里可以設定「主頁」、「默認頁」,顯示或隱藏工具欄按鈕和標題,顯示或隱藏面板及面板上的目錄、索引等,在這里還可以設定目錄的表現方式和整個窗體的外觀,添加「閃屏」(啟動時一個一閃而過的圖片,相當於軟體的啟動畫面)等,當然了,以上的所有設置必須在「編譯」前設置才能看到效果。
圖3
反編譯CHM
QuickCHM不僅能把HTML網頁、文本文件、圖片等編譯為一個CHM文件, 而且還能反編譯一個CHM文件,也就是說,利用QuickCHM,可以釋放CHM文件中的HTML文件、文本文件、圖片文件等資源,並且它能夠恢復源文件的全部目錄結構和文件名,以便幫助我們得到源文件進行資料恢復或二次編輯。
啟動QuickCHM,在菜單欄執行「文件→反編譯」,在彈出的對話框中選擇要進行反編譯的CHM文件以及反編譯得到的HTML文件和圖片等其它文件資源的保存位置,點擊「確定」,反編譯即可完成,同時保存HTML文件和圖片等其它文件的文件夾被打開。
