編譯工具p
反編譯工具jad簡單用法
以下假設jad.exe在c:\java目錄下
一、基本用法
Usage:jad [option(s)]
直接輸入類文件名,且支持通配符,如下所示。
c:\java\>jad example1.class
c:\java\>jad *.class
結果是將example1.class反編譯為example1.jad。將example1.jad改為example1.java即得源文件。
二、Option -o
不提示,覆蓋源文件
三、Option -s
c:\java\>jad -sjava example1.class
反編譯結果以.java為擴展名。
四、Option -p
將反編譯結果輸出到屏幕
c:\java\>jad -p example1.class
將反編譯結果重定向到文件
c:\java\>jad -p example1.class>example1.java
五、Option -d
指定反編譯的輸出文件目錄
c:\java\>jad -o -dtest -sjava *.class
㈡ 在C++編譯器中 例如CPP(5)表示什麼意思
只是後綴而已,這幾個通常扒搭都是c/c++源代碼文件,猛此凳有的編譯器可能用來區枝旅別c或c++ P:PLUS:+ 所以p就是+,cpp就是c++ xx我猜可能是+號作為文件名可能有問題,x斜過來正好是+正好替代一下
㈢ eclipse 怎麼編譯keil工程
1. 把KeilBuilder.exe復制到MDK的編譯器目錄下, 一般為: C:\Keil\ARM\BIN40下, 這要看你的MDK安裝在哪了.
2. 新建一個C Project 工程, 並選擇Cross GCC交叉編譯工具為本工程編譯工具.
.通過菜單File -> new -> C Project 新建一個空的C工程. 在彈出的對話框中如下圖, 注意要選擇"Cross GCC"工具鏈:
3. 為新建的工程導入Keil工程或僅導入源文件.
4. 設置Eclipse工程交叉編譯環境.
.在左邊的"Porject Explorer"窗口內滑鼠右鍵單擊工程名, 選擇最後的菜單項"Properties"項.
.在C/C++ Build -> Settings界面中, 設置"Configuration"為"[ All configurations ]"; 設置"Cross Setttings"的"Path"即交叉工具鏈路徑為KeilBuilder所有的目錄, 如C:\Keil\ARM\BIN40. 如下圖:
.在"Cross GCC Compiler"的"Command"下填入"KeilBuilder -no", 表示什麼也不做; 另外的"Cross GCC Linker"及"Cross GCC Assembler"的"Command"中也設置為同值. 此設置為防Eclipse對不存在的GCC工具的報警, 如下圖:
.在C/C++ Build 界面中, Builder Settings 中去掉"Use default build command"上的勾, 並在"Build command"中填入"KeilBuilder.exe -d xxxx -e". 基中xxx為工程根目錄路徑, "-d"表示設置KeilBuilder的工程路徑, "-e"表示在編譯時自動對Eclipse工程進行設置, 目前僅設置"C/C++ Build" -> "Settings" -> "Cross GCC Compiler" -> 「Symbols」和」Includes」以及」Cross GCC Assmebler」 -> 「General」項. 如下圖:
.在C/C++ Build 界面中的"Behaviour"選項卡中, 在"Build(Incremental build)"中填入"-s"表示安靜編譯; 在"Clean"中填入"-c"表示清理工程. 如下圖:
.在C/C++ Build 中的 "Discovery Options" 中去掉 "Enable generate scanner info command"選項. 如下圖:
.不用設置預編譯宏或者Includes選項, 因為KeilBuilder會自動幫忙加進去. 所以, 有時候你看到代碼還有一大堆的錯誤時, 編譯一次後, 刷新工程(右鍵工程名 -> "Refresh")就木有錯誤鳥.
5. 到此, 可以編譯你的工程了. 通過菜單項"Project" -> "Build All"編譯工程, 或"Project" -> "Clean..."清理工程. 編譯不通過或得到不正確Hex文件的繼續往下看. 如下圖:
6. 在Eclipse中添加一個外部工具, 這樣可以通過Eclipse菜單項運行KeilBuilder, 方便.
.在Eclipse菜單中選擇Run -> External Tools -> External Tools Configurations...
.在彈出的對話框中雙擊"Program" 增加一個外部工具.
.在Name中填入"KeilBuilder".
.在"Main"選項卡中, Location通過"Browse File System..." 選擇KeilBuilder程序, 如: C:\Keil\ARM\BIN40\KeilBuilder.exe; 在Working Directory中填入KeilBuilder所在的目錄, 如C:\Keil\ARM\BIN40.
.在"Build"選項卡中, 去掉"Build before launch"上的勾.
.最後單擊"Apply" -> "Run"完成添加, 並運行KeilBuilder工具.
此後你就可以通過菜單Run -> External Tools -> KeilBuilder 來快速運行KeilBuilder工具了. 如下2圖:
7. 經過前面4步的設置, 你的工程編譯很可能會編譯不通過, 或者編譯出來的Hex文件下載不正確. 那是因為一些編譯器/鏈接器選項你還沒有配置.
這時, 你可以通過菜單Run -> External Tools -> KeilBuilder來運行KeilBuilder工具, 通過界面來設置這些參數. 或者也可以直接用記事本打開工程目錄中的"cts.ini"(如果工程目錄中不存在此文件, 請轉到KeilBuilder所在的目錄下的"cts.ini", 如果KeilBuilder所在目錄下也沒有, 那麼請雙擊運行下KeilBuilder程序, "cts.ini"就會自動生成)對參數進行修改.
注意, 在KeilBuilder界面上設置參數時, 必須選擇好自己的工程目錄, 如果沒有選擇工程目錄, 設置的結果會保存到KeilBuilder所在的目錄下的"cts.ini"文件中. KeilBuilder在首次運行時, 會在其所在目錄下生成cts.ini文件並設置參數為默認值. KeilBuilder在每次編譯一個工程時, 如果該工程目錄下發現"cts.ini", 就使用工程目錄下的"cts.ini"; 如果沒有發現"cts.ini"文件, 則把KeilBuilder所在目錄下的"cts.ini"文件復制一份到工程目錄下, 然後再編譯.
關於"cts.ini"文件中的這些參數, 它對應於Keil MDK環境中的ASM編譯器/C編譯器/Linker選項. 因為時間問題, 在KeilBuilder中並未實現(以後有空再搞吧)類似於Keil uVision中的選項式配置. 如果熟悉這些參數最好, 不熟的話可以先在Keil uVision中配置好, 再對應添加到"cts.ini"中.
在"cts.ini"文件中的"ASM=" 後面的內容對應於Keil uVision工程選項中的"Asm"選項.
在"cts.ini"文件中的"CC=" 後面的內容對應於Keil uVision工程選項中的"C/C++"選項.
在"cts.ini"文件中的"LNK=" 後面的內容對應於Keil uVision工程選項中的"Linker"選項.
8. 設置"cts.ini"文件中的編譯選項確實不是一般人能搞定. 我也不懂(誰懂的做個說明分享下吧, 可以的話還能集成為UI, 更方便). 因為人懶, 不想去深究這些編譯(鏈接)器選項, 於是想到了個折中的辦法: 通過Keil uVision來設置好這些參數並編譯工程, 然後把它實時的編譯選項顯示出來以供參考! 這樣當編譯選項無法搞定時, 就把整個工程交給keil uVision來編譯一次, 然後參考實時獲取的參數再對Eclipse工程的"cts.ini"文件做相應的修改就OK了.
在keil uVision中捕獲它的編譯選項, 需要做如下的設置. 在工程屬性"Options for Target xxxx"的"User"選項卡中 設置keil編譯後運行」KeilBuilder.exe -p」. 表示捕獲keil uVision編譯選項, 如下圖:
㈣ platformlo下方的菜單欄里沒有編譯工具了
vscodeplatformlo下方的工具欄里沒有編譯工具了?
答案如下:方法如下:1、離線安裝Mingw64後,牆另一邊的學生可以在線安裝
1、下載Mingw64打開Mingw官網
單擊「下載」
轉到頁面SourceForge
將頁面拉伸到最後,選州雀擇最新版本
下載並解凍(將加壓包放在想放的位置)。
2、配置環境變數
3、測試
2、配置VSCode的C/C編譯和調速環境1、下載VSCode下載鏈接
2、安裝Wingw使用以上方法
3、安裝C/C擴展搜索C/C
4、創建文件夾,在VS中打開,創建. cpp文件
5、部署C/C環境5.1、部署編譯器,用快捷鍵Ctrl Shift P調用命令面板,輸入C/C,選冊宏早擇" editconfigurations(UI ) "進入部署。 設定絕薯兩個選項。 -編譯器路徑: d :/mingw 64/mingw 64/mldy/g.exe intellisense模式: gcc-x64
㈤ linux嵌入式交叉編譯工具鏈問題 淺談
簡介
交叉編譯工具鏈是一個由編譯器、連接器和解釋器組成的綜合開發環境,交叉編譯工具鏈主要由binutils、gcc和glibc 3個部分組成。有時出於減小libc庫大小的考慮,也可以用別的c庫來代替glibc,例如uClibc、dietlibc和newlib。交叉編譯工具鏈主要包括針對目標系統的編譯器gcc、目標系統的二進制工具binutils、目標系統的標准c庫glibc和目標系統的Linux內核頭文件。第一個步驟就是確定目標平台。每個目標平台都有一個明確的格式,這些信息用於在構建過程中識別要使用的不同工具的正確版本。因此,當在一個特定目標機下運行GCC時,GCC便在目錄路徑中查找包含該目標規范的應用程序路徑。GNU的目標規范格式為CPU-PLATFORM-OS。例如,建立基於ARM平台的交叉工具鏈,目標平台名為arm-linux-gnu。
交叉編譯工具鏈的製作方法
分步編譯和安裝交叉編譯工具鏈所需要的庫和源代碼,最終生成交叉編譯工具鏈。
通過Crosstool腳本工具來實現一次編譯生成交叉編譯工具鏈。
直接通過網上(ftp.arm.kernel.org.uk)下載已經製作好的交叉編譯工具鏈。
方法1相對比較困難,適合想深入學習構建交叉工具鏈的讀者。如果只是想使用交叉工具鏈,建議使用方法2或方法3構建交叉工具鏈。方法3的優點不用多說,當然是簡單省事,但與此同時該方法有一定的弊端就是局限性太大,因為畢竟是別人構建好的,也就是固定的沒有靈活性,所以構建所用的庫以及編譯器的版本也許並不適合你要編譯的程序,同時也許會在使用時出現許多莫名的錯誤,建議你慎用此方法。
方法1:分步構建交叉編譯工具鏈
下載所需的源代碼包
建立工作目錄
建立環境變數
編譯、安裝Binutils
獲取內核頭文件
編譯gcc的輔助編譯器
編譯生成glibc庫
編譯生成完整的gcc
由於在問答中的篇幅,我不能細述具體的步驟,興趣的同學請自行閱讀開源共創協議的《Linux from scratch》,網址是:linuxfromscratch dot org
。
方法2:用Crosstool工具構建交叉工具鏈(推薦)
Crosstool是一組腳本工具集,可構建和測試不同版本的gcc和glibc,用於那些支持glibc的體系結構。它也是一個開源項目,下載地址是kegel dot com/crosstool。用Crosstool構建交叉工具鏈要比上述的分步編譯容易得多,並且也方便許多,對於僅僅為了工作需要構建交叉編譯工具鏈的你,建議使用此方法。
運行which makeinfo,如果不能找見該命令,在解壓texinfo-4.11.tar.bz2,進入texinfo-4.11目錄,執行./configure&&make&&make install完成makeinfo工具的安裝
准備文件:
下載所需資源文件linux-2.4.20.tar.gz、binutils-2.19.tar.bz2、gcc-3.3.6.tar.gz、glibc- 2.3.2.tar.gz、glibc-linuxthreads-2.3.2.tar.gz和gdb-6.5.tar.bz2。然後將這些工具包文件放在新建的$HOME/downloads目錄下,最後在$HOME/目錄下解壓crosstool-0.43.tar.gz,命
令如下:
#cd$HOME/
#tar–xvzfcrosstool-0.43.tar.gz
建立腳本文件
接著需要建立自己的編譯腳本,起名為arm.sh,為了簡化編寫arm.sh,尋找一個最接近的腳本文件demo-arm.sh作為模板,然後將該腳本的內容復制到arm.sh,修改arm.sh腳本,具體操作如下:
# cd crosstool-0.43
# cp demo-arm.sh arm.sh
# vi arm.sh
修改後的arm.sh腳本內容如下:
#!/bin/sh
set-ex
TARBALLS_DIR=$HOME/downloads#定義工具鏈源碼所存放位置。
RESULT_TOP=$HOME/arm-bin#定義工具鏈的安裝目錄
exportTARBALLS_DIRRESULT_TOP
GCC_LANGUAGES="c,c++"#定義支持C,C++語言
exportGCC_LANGUAGES
#創建/opt/crosstool目錄
mkdir-p$RESULT_TOP
#編譯工具鏈,該過程需要數小時完成。
eval'catarm.datgcc-3.3.6-glibc-2.3.2.dat'shall.sh--notest
echoDone.
建立配置文件
在arm.sh腳本文件中需要注意arm-xscale.dat和gcc-3.3.6-glibc-2.3.2.dat兩個文件,這兩個文件是作為Crosstool的編譯的配置文件。其中arm.dat文件內容如下,主要用於定義配置文件、定義生成編譯工具鏈的名稱以及定義編譯選項等。
KERNELCONFIG='pwd'/arm.config#內核的配置
TARGET=arm-linux#編譯生成的工具鏈名稱
TARGET_CFLAGS="-O"#編譯選項
gcc-3.3.6-glibc-2.3.2.dat文件內容如下,該文件主要定義編譯過程中所需要的庫以及它定義的版本,如果在編譯過程中發現有些庫不存在時,Crosstool會自動在相關網站上下載,該工具在這點上相對比較智能,也非常有用。
BINUTILS_DIR=binutils-2.19
GCC_DIR=gcc-3.3.6
GLIBC_DIR=glibc-2.3.2
LINUX_DIR=linux-2.6.10-8(根據實際情況填寫)
GDB_DIR=gdb-6.5
執行腳本
將Crosstool的腳本文件和配置文件准備好之後,開始執行arm.sh腳本來編譯交叉編譯工具。具體執行命令如下:
#cdcrosstool-0.43
#./arm.sh
經過數小時的漫長編譯之後,會在/opt/crosstool目錄下生成新的交叉編譯工具,其中包括以下內容:
arm-linux-addr2linearm-linux-g++arm-linux-ldarm-linux-size
arm-linux-ararm-linux-gccarm-linux-nmarm-linux-strings
arm-linux-asarm-linux-gcc-3.3.6arm-linux-objarm-linux-strip
arm-linux-c++arm-linux-gccbugarm-linux-objmpfix-embedded-paths
arm-linux-c++filtarm-linux-gcovarm-linux-ranlib
arm-linux-cpparm-linux-gprofarm-linux-readelf
添加環境變數
然後將生成的編譯工具鏈路徑添加到環境變數PATH上去,添加的方法是在系統/etc/ bashrc文件的最後添加下面一行,在bashrc文件中添加環境變數
export PATH=/home/jiabing/gcc-3.3.6-glibc-2.3.2/arm-linux-bin/bin:$PATH
至此,arm-linux下的交叉編譯工具鏈已經完成,現在就可以使用arm-linux-gcc來生成試驗箱上的程序了!
㈥ VB編譯為P-代碼是什麼意思
p代碼:全稱pseudo-code偽代碼意思VB編譯兩種編譯式種Native-Code(本代碼)另種p-codeP-code
或偽代碼介於
Basic
程序高級指令計算機處理器執行低級本機代碼間種間步驟
論選擇哪都需要運行庫自WINXP版本都自帶VB6運行庫
雖VBGOOD等論壇已經牛使用VB6寫機器+匯編代碼脫離運行庫程序變臃腫原理運行庫集自身或者全部使用API函數
㈦ 都有哪些好的c語言編譯器阿
1. GCC
大名鼎鼎的GNU的C/C++/Obj-C編譯器, 當前版本是2.8.1, 但據說與2.7.*有兼容性
問題. 而使用較廣的是gcc 2.7.2系列, 如RedHat5中帶的就是gcc 2.7.2.3
有時候在Cyrix上用gcc會有些問題, 因此有一套針對Cyrix特點的gcc 2.7.2.3
我這里有RedHat5的rpms ftp://166.111.68.98/pub/Warez-CD/Huricane-contrib
(Cyrix 2.7.2.3 & 2.8.1)
其基本結構就是一個front end和back end,
/usr/bin/gcc 就是個front end, 其kernel東西都放在 /usr/lib/gcc-lib下面,
cpp是C預處理器, cc1*的1M多的就是編譯器的核心模塊了
cc1 C compiler
cc1plus C++ compiler
cc1obj Object-C compiler
但gcc並沒有集成Fortran的compiler, 一般要用f2c轉成C後才用gcc編譯
好象也還有個g77 Fortran compiler吧?
gcc的不斷發展完善使許多commercial compiler都相形見絀, 那當然, gcc/emacs
都由GNU創始人Richard Stallman手創, 是GNU的旗艦產品, 質量當然沒得說了:-)
由於 Unix平台的高度可移植性, gcc幾乎在各種常見的Unix平台上都有, 即使是
Win32/DOS也有gcc的port. 比如說該死的Solaris普通版本連compiler都沒有, 也
就只好用gcc了...
2. EGCS(Experimental/Enhanced GNU Compiler System)
這是gcc的發展方向, 把fortran等編譯器集成進來, 也許還會有Pascal?
它的構造很清晰, 把對gcc的各種改進/port都集成回去. 如gcc 2.7系列據說是
沒有對Pentium進行優化的, 而egcs則把pgcc對Pentium的一些優化集成進去了
現在gcc的開發工作主要就是egcs, 由Cygnus公司領導(?), 這Cygnus公司還是很
不錯的, 還出了GNU-Win32, SourceNavigator等, 是GNU的堅實擁護者:-))
http://egcs.cygnus.com
包括了C/C++/Obj-C/Fortran 編譯器, 當前最新版本1.0.2, 還在不斷開發中
昨天download發現KDE Beta4都用egcs編譯了 :-)
Fortran集成進來後在/usr/lib/gcc-lib下又多了個f771的back end, 當然
還是g77/f77 編譯
我這里有egcs 1.0.2 的rpm 在RH5-CD/collect下面
3. PGCC(Pentium GCC)
http://www.gcc.ml.org
針對Pentium CPU進行了編譯器優化的compiler
pgcc據說用JPEG壓縮解壓縮測試最快可比gcc快 30%!
新版的pgcc都是基於egcs的, 以一個patch的形式release
㈧ VB6自帶編譯器的「本機代碼」和「P代碼」各是什麼求答案
該選項卡設置工程編譯時的條件。選項卡選項「編譯為 P-代碼」
用 p 代碼來編譯工程。存儲在 .vbp 文件中的設置值將被覆蓋掉。
「編譯為本機代碼」
用帶有選定最優化的原碼來編譯工程。存儲在 .vbp 文件中的設置值將被覆蓋掉。
「快速代碼優化」- 通過指示編譯器在速度和大小之間首選速度,使 .exe 和 .dll 文件的速度最快。編譯器可以減少許多功能上跟機器碼序列相同的構造。在某些情況下,這種不同提供了用大小來換取速度的權衡交換。
「小代碼優化」- 通過指示編譯器在速度和大小之間首選大小,來使 .exe 和 .dll 文件最小。編譯器可以減少許多功能上跟機器碼序列相同的構造。如果不選中這個選項,代碼可能就會大一些,但是速度會更快一些。
「非優化」- 無優化地編譯。
「流行的 Pentium Pro™」- 優化所創建的代碼,優化方向是使之更有利於 Pentium Pro™ 處理器來處理。如果在程序中使用了這個選項,則意味著僅僅是為 Pentium Pro™ 處理器所創建的代碼。用此選項產生的代碼仍然可以在更早期的處理器上運行,但是工作起來性能不是那麼好。
「創建符號化調試信息」- 在可執行文件或者 DLL 文件中產生符號調試信息。用此選項創建的可執行文件可以用 Visual C++ 或者具有 CodeView 風格調試信息的調試器來調試。設置這個選項將為可執行文件產生一個帶有符號信息的 .pdb 文件。
「高級優化」
顯示「高級優化」對話框。
給程序設置一個基地址,從而覆蓋 .dll 文件的預設位置(在 0 X 10,000,000 處)。操作系統首先試圖在指定的或者預設的位置載入一個程序。如果沒有足夠空間,那麼系統將重新定位該程序。
㈨ linux中常用編譯器是什麼
Linux 下可用的編譯器有 GCC、EGCS 和 PGCC,其中最常用的編譯器便是 GCC。
GCC 起初是 GNU 推出的 C語言編
譯器,用於類 Unix 系統下的編程,所以名為 GNU C Compiler 。隨著眾多自由開發者的加入,GCC
發展迅速,如今已成為一個支持眾多語言的編譯器了,其中包括 C、C++、Ada、Object C 和 Java 等,以至於 GCC 開始被擴展為
GNU Compiler Collection ,也就是「GNU 編譯器集合」的意思。
GCC用法:
1、GCC基本用法及其選項
gcc 或 g++ 的用法跟參數含義幾乎一樣,他們最基本的用法是:
2、只編譯子程序(-c)
3、產生目標文件(-o)
4、附加調試信息(-g)
5、多文件編譯
6、連接庫文件。
㈩ C語言編譯器有哪些各有什麼特點
C語言編譯器目前主要有VC++、dev-C++、C-Free、win-TC、TC 2.0等等。
其中比較經典的VC++,微軟的產品,編譯器,鏈接器,運行,調試等功能於一體的強大開發工具,特點是功能十分強大,對於新手來說需要一段時間去摸索。
dev-C++是windows下一款開發c/c++的開發環境,使用gcc為編譯器,遵循標准,功能比較強大,語法高量,可以進行單步調試(這對排除錯誤很重要),進行斷點設置等功能,遵循C標准,是一款很強大的開發工具。
C-Free是一款支持多種編譯器的專業化C/C++集成開發環境(IDE)。利用C-Free,使用者可以輕松地編輯、編譯、連接、運行、調試C/C++程序。
TC 2.0:Borland公司的產品,在dos界面下編譯運行,小巧、靈活,但是不能使用滑鼠。
win-TC:在tc2.0的基礎上加上了界面,能夠使用滑鼠,具有語法高量,可以嵌入匯編等特點,對新手一些,拜託了不能用滑鼠的困難。
編譯器,簡單講,就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器(Linker) → 可執行程序 (executables)。