㈠ vxworks 使用什麼編譯器
我了解只有 gnu,樓上的回答很全面啊。
㈡ 請問C++的編譯器都有哪些
網上找的,呵呵
1.Borland C++ Compiler 5.5
「Borland C/C++ 5.5.1 for Win32」是Borland公司在2000年免費放出的一個C/C++編譯器,其功能完整、包含多種SDK,且容量極小,安裝版本大小僅8MB。Borland公司的旗艦級產品「C++ Builder 5」內置的就是這一編譯器。
2.Dev-C++ 5.0
是Bloodshed軟體公司於2002年9月26日推出的一個基於MingW(即GNU C/C++的Win32版)的微型C/C++開發工具。由於使用了GNU C/C+內核,所以在做軟體移植時非常的方便,你可以方便的將一個程序移植到任意一個有GNU C/C++的平台。而且由於基於GNU C/C++的開放源代碼軟體很多,所以使用Dev-C++是一個很好的選擇。但由於它的調試不便,幫助不全等問題,也使得它在推廣上舉步艱難,遠比不上Borland C/C++、OpenWatcom C/C++這兩個同是免費的編譯器。
3.DJGPP
DJGPP是基於32位保護模式的C語言編譯器,是一個GNU軟體,換句話說,你可以得到它整個系統的源代碼,且可以任意修改。它的集成環境RHIDE是仿Borland C++ 3.1的,十分好用,這比Watcom C要強多了。
4.LCC-Win32
運行於Windows9x/Me/NT/2000下的免費的32位C語言編譯系統。它的原始發布文件只有 3M,但卻擁有一個功能強大的集成開發環境(IDE)、速度極快的編譯器與連接器、方便順手的調試器、資源編輯器和版本控制系統。另外還提供圖像編輯器和 C 語言源文件格式化縮進器等附加工具。通過它的應用程序向導,你可以單擊幾次滑鼠輕松得到一個應用程序框架,絲毫不比其它龐大的同類軟體遜色。 你可以用LCC-Win32開發32位的控制台程序、Windows常規程序、動態連接庫(DLL) 以及靜態連接庫(LIB)。LCC編譯器支持標準的ANSI C,同時支持 C語言的擴展。通過下載相關工具,LCC-Win32還提供對Eiffel、Fortran語言的支持。
5.OpenWatcom:Watcom系統編譯器是加拿大Watcom公司開發的Intel x86體系16/32位編譯器,其最新版是11.0c。
Watcom C/C++的集成開發環境極差,不像Borland C/C++和Visual C/C++那樣有漂亮的界面,編譯連結不過輕輕一點。Watcom C/C++的大部分使用者都在命令行下編譯程序。想想吧!一個需要在命令行下編譯程序的編譯器,怎麼匹敵Borland C/C++和Visual C/C++,甚至是C++ Builder呢?
現在我們所用到的OpenWatcom C/C++ 1.0便是Watcom C/C++ 11.0c開放後的版本,它是免費、而且開放源碼的。
6.當然還有我們經常看見的TC2.0 TC3.0 Borland C++3.1 等
需要付費的編譯器(有些允許有評估期的免費下載):
Borland C++
Comeau C++ - 支持多平台
Compaq C++
Digital Mars C++
Edison Design Group C++ Front End - 被許多C++編譯器廠商採用
Green Hills C++ - 支持嵌入式系統平台
HP C++
IBM C++
Intel C++ - 支持Windows, Linux, 和其他嵌入式系統
Interstron C++
Metrowerks C++ - 支持多平台,可從Metrowerks主頁上查詢
Mentor Graphics/Microtec Research C++ - 支持嵌入式系統平台
Microsoft C++
Paradigm C++ - 支持x86嵌入式系統
The Portland Group C++ - 針對奔騰CPU優化
SGI C++ - 優化的編譯器
Sun C++
WindRiver's Diab C++ - 用於很多嵌入式系統
㈢ 在不考慮編譯器優化等因素下,下面那個運算比較快
下面是在編譯器不優化的情況下的代碼反匯編後的結果
14: if (a > b)//我們看到,只有3條指令,
0040104D mov edx,dword ptr [ebp-4] //將a放入寄存器EDX
00401050 cmp edx,dword ptr [ebp-8] //比較EDX和b的大小
00401053 jle main+3Ch (0040105c) //如果a<b跳轉到0040105c
15: {
16: return 1;
00401055 mov eax,1
0040105A jmp main+4Fh (0040106f)
17: }
18: if (a - b > 0)//我們看到有4條指令
0040105C mov eax,dword ptr [ebp-4]//將a放入EAX
0040105F sub eax,dword ptr [ebp-8]//a-b的差放入EAX
00401062 test eax,eax//比較EAX是否為0
00401064 jle main+4Dh (0040106d)//條件跳轉
19: {
20: return 2;
00401066 mov eax,2
0040106B jmp main+4Fh (0040106f)
21: }
所以我認為if (a > b) {....}
效率更高
㈣ gcc與diab編譯器的兼容性問題
不好意思剛看到,不同編譯器編譯的結果不能鏈接到一起,理由主要有以下兩方面:一是不同編譯器可能對變數名做不同處理,主要針對c++,好像沒有什麼編譯器對c語言的變數名改變,舉個例子,假設c++中的變數test_var,用兩種不同編譯器編譯完該結果可能是Diab_test_var和GCC_test_var成為不同的變數,那麼對於連接器來說就是不同的變數怎麼會鏈接到一起是吧。c好像不存在文件名問題,但是c會遇到第二個方面。第二個方面就是不同的編譯器會提供一些內部函數比如*(乘以)這個操作在編譯器里有定義,有具體的代碼來實現,如果編譯器不同實現的函數名不同,不會鏈接到一起。當然還有更復雜的原因,可能我也不太了解。這些是我的理解,可能不全,但是可以肯定的是,不同編譯器編譯的二進制文件不能鏈接到一起使用。
至於你說的BSP是風河提供的會不會不兼容的問題,是這樣的。通常對於BSP中的c語言部分,無所謂兼不兼容,因為c語言要是ANSI標準的話所有的編譯器都會支持。BSP中的匯編部分跟編譯器相關,但也是格式上的問題。一般vxworks提供gcc版的bsp(提供不提供其他編譯器的BSP我不清楚,因為我們用的是gcc),所以應該是兼容的。假如真的不提供,可以按照gcc匯編語法,把BSP中的函數和變數以及偽指令部分更改成符合GCC語法即可,整體的匯編不需要更改,這部分工作很小的應該不難。
我知道的就這些,希望能幫到你。
㈤ 有人用到Vxworks操作系統的嗎
最近我也在學這個操作系統,Tornado集成開發環境為用戶提供支持C、C++語言的交叉編譯器和類庫。編譯器包括GNU的C/C++編譯器和Diab C/C++編譯器。圖形化的工程管理工具非常方便有效,可以方便地對VxWorks操作系統、組件及工程編譯參數進行配置。核心工具包括VxSim模擬器,WindView軟體邏輯分析儀,WindShell命令行執行工具,CrossWind集成調試器,Browser系統對象檢查工具。這些工具非常適用,方便開發調試。編輯器不受推崇,好在可以設置外部編輯器。 VxWorks性能優越,開發調試便利,強大的技術支持,但是價格昂。
㈥ 請問C++的編譯器都有哪些
網上找的,呵呵
1.Borland C++ Compiler 5.5
「Borland C/C++ 5.5.1 for Win32」是Borland公司在2000年免費放出的一個C/C++編譯器,其功能完整、包含多種SDK,且容量極小,安裝版本大小僅8MB。Borland公司的旗艦級產品「C++ Builder 5」內置的就是這一編譯器。
2.Dev-C++ 5.0
是Bloodshed軟體公司於2002年9月26日推出的一個基於MingW(即GNU C/C++的Win32版)的微型C/C++開發工具。由於使用了GNU C/C+內核,所以在做軟體移植時非常的方便,你可以方便的將一個程序移植到任意一個有GNU C/C++的平台。而且由於基於GNU C/C++的開放源代碼軟體很多,所以使用Dev-C++是一個很好的選擇。但由於它的調試不便,幫助不全等問題,也使得它在推廣上舉步艱難,遠比不上Borland C/C++、OpenWatcom C/C++這兩個同是免費的編譯器。
3.DJGPP
DJGPP是基於32位保護模式的C語言編譯器,是一個GNU軟體,換句話說,你可以得到它整個系統的源代碼,且可以任意修改。它的集成環境RHIDE是仿Borland C++ 3.1的,十分好用,這比Watcom C要強多了。
4.LCC-Win32
運行於Windows9x/Me/NT/2000下的免費的32位C語言編譯系統。它的原始發布文件只有 3M,但卻擁有一個功能強大的集成開發環境(IDE)、速度極快的編譯器與連接器、方便順手的調試器、資源編輯器和版本控制系統。另外還提供圖像編輯器和 C 語言源文件格式化縮進器等附加工具。通過它的應用程序向導,你可以單擊幾次滑鼠輕松得到一個應用程序框架,絲毫不比其它龐大的同類軟體遜色。 你可以用LCC-Win32開發32位的控制台程序、Windows常規程序、動態連接庫(DLL) 以及靜態連接庫(LIB)。LCC編譯器支持標準的ANSI C,同時支持 C語言的擴展。通過下載相關工具,LCC-Win32還提供對Eiffel、Fortran語言的支持。
5.OpenWatcom:Watcom系統編譯器是加拿大Watcom公司開發的Intel x86體系16/32位編譯器,其最新版是11.0c。
Watcom C/C++的集成開發環境極差,不像Borland C/C++和Visual C/C++那樣有漂亮的界面,編譯連結不過輕輕一點。Watcom C/C++的大部分使用者都在命令行下編譯程序。想想吧!一個需要在命令行下編譯程序的編譯器,怎麼匹敵Borland C/C++和Visual C/C++,甚至是C++ Builder呢?
現在我們所用到的OpenWatcom C/C++ 1.0便是Watcom C/C++ 11.0c開放後的版本,它是免費、而且開放源碼的。
6.當然還有我們經常看見的TC2.0 TC3.0 Borland C++3.1 等
需要付費的編譯器(有些允許有評估期的免費下載):
Borland C++
Comeau C++ - 支持多平台
Compaq C++
Digital Mars C++
Edison Design Group C++ Front End - 被許多C++編譯器廠商採用
Green Hills C++ - 支持嵌入式系統平台
HP C++
IBM C++
Intel C++ - 支持Windows, Linux, 和其他嵌入式系統
Interstron C++
Metrowerks C++ - 支持多平台,可從Metrowerks主頁上查詢
Mentor Graphics/Microtec Research C++ - 支持嵌入式系統平台
Microsoft C++
Paradigm C++ - 支持x86嵌入式系統
The Portland Group C++ - 針對奔騰CPU優化
SGI C++ - 優化的編譯器
Sun C++
WindRiver's Diab C++ - 用於很多嵌入式系統