導航:首頁 > 源碼編譯 > 多編譯平台

多編譯平台

發布時間:2022-06-30 16:10:47

1. 在企業用得最多的 編譯C++的編譯環境是什麼

了解的C/C++編譯器如下:
GCC家族有
Cygwin
Mingw32
DJGPP
Dev-C++(Mingw32)
還有正宗的GNU GCC 2.95.5~3.0.0.4版本
MS家族有
MSC 5.0、6.0、7.0
MSQC 1.0、2.5
MSVC 1.0、4.2、6.0、7.0
Borland家族有
TC 1.0、2.0
TC++ 1.01、3.0
BC 3.0、3.1、4.0、4.5、5.0、5.02
BCB 3.0、5.0、6.0
其它有
Intel C/C++ 5.0
Watcom C/C++ 11.0、11.0c
VectorC 1.3.3
IBM VisualAge for C++
DigitalMars C/C++
KAI C/C++ 4.03f for RedHat 7.2
Lcc4.1
LCC-WIN32 2001-09-25~2002-04-28日版
Small C
CC386
Pacific C
另外還有C的解釋器
Quincy
Eic
CINT

上面提到的編譯器/解釋器,大部分我都使用過。現在固定使用VC7.0 Cygwin Mingw32 VectorC和LCC-WIN32這五種編譯器。

在GCC家族中GNU GCC是根本,其它的編譯器版本都是從它導出的。其中,Cygwin和Mingw32都是WIN32平台下的編譯器,DJGPP是DOS下的32位編譯器。大家所熟知的DEV-C++充其量只是GCC的一個外殼,它所自帶的編譯器就是Mingw32的一個版本。這些GCC的版本中,Cygwin是最大的,它與其說是一個編譯器,倒不如說是一套編程工具。它不僅有編譯器,還有其它很多的工具。其實,它就是一個UNIX系統在WIN32平台上的實現。實現了大多常用的UNIX工具,最近的版本中連Apache這樣的「工具」都集成進來的。不過,Cygwin雖然功能強大,但它卻不是很易用(和UNIX相似,熟悉UNIX的人用它可以很快上手),因為太多其它的工具分散了人們的注意力。相比之下Mingw32就要好用得多,它只有最基本的幾個編程工具(只可惜它不自帶GDB)。GCC中並不只是C/C++編譯器,其中還有很多其它的編譯器如java,Fortran,ADA等。它是一個編譯器集合,不過有些編譯器只能在UNIX系統上用。MS家族的編譯器就不用說了,大家對它們都很熟悉。VC 7.0(VC.NET)是它的最新產品。Borland家族也不用說,大家也是耳熟能詳。最近它才推出了BCB 6.0。

其它的編譯器如:Intel C/C++大家一看名稱就知道是Intel的東西,它和VC6完全兼容,不過要掛在VC6下才能用。Watcom C/C++是早先編譯器四國大戰中的一員,原本是很不錯的東西,可惜戰略不對,現在已不見聲息了。倒是以它為基礎的一個OpenWatcom現在還在奮戰。VectorC是我近日才發現的一個好東東,它是個純C的編譯器。IBM的VisualAge for C++原本是IBM想用來淌C++編譯器這片渾水的東西,不過IBM的戰略改了,它就被放棄了。DigitalMars C/C++的前身的Symantec C++(它也是編譯器四國大戰中的一員),不過現在Symantec不做了,於是它的作者就把它改成了DigitalMars C/C++開放給大家使用。以上這些都是WIN32平台上的東西。KAI C/C++是個很強大的C/C++編譯器,它是個多平台的編譯器。不過現在被INTEL收購了,已經停止開發了。Lcc4.1是個純C的編譯器它是開放源代碼的。不過不怎麼好用。LCC-WIN32是一個在LCC基礎上開發的C語言的集成開發環境,很好用,而且有很詳細的資料,FREE!Pacific C是一個純DOS的C的集成開發環境,就不多說了。Small C CC386都是開放源代碼的編譯器,它們都很簡單,應用來給大家學習編譯器的。Quincy Eic CINT都是C的解釋器,是用來讓大家學習C語言的其中CINT的功能很強大,還支持一些C++的特性。
當然還有很多其它的編譯器,這里我給出的編譯器都是可以在WIN32或DOS平台上用的(除KAI外)。UNIX平台上的編譯器還是以GNU的為主,其它的我就不是很清楚了。

在以上的編譯器中,最特別的就是VectorC這個東西只支持純C。但它卻號稱是最快的編譯器,不過經過我的試驗,它的確在有些情況下強過其它編譯器很多!而且它還有個互動式的優化器,可以讓你直接看到C代碼對映的匯編代碼。Cygwin和Mingw32為一母所生,其運行效果相差不大。它們生成的代碼效率都很不錯,編譯的速度也很快,最值得一提的是它們對C++的特性的支持算是所有編譯器中最完全的,而且它們還支持C99的大部分特性。這一點很是不錯!大家對MS的VC已經很熟悉了,本不用我多說。不過在它的最新的產品VC7.0中,有很大的改進。它對C++的特性的支持比6.0有了很大的提高,是我所用的編譯器中是僅次於GCC的。而且它編譯出的程序,運行速度很快!僅有少數時候次於VectorC與GCC,其它情況都是最快的!其平均運行速度是最快的。對Borland的產品我也無需多說。它的TC2.0與BC3.1都是我最喜歡的東西。可是現在的BCB卻大不如前了,編譯的速度和VC6一樣慢!IDE還有較多的BUG。最令人想不通的是它生成的代碼的運行速度很慢,比LCC-WIN32還慢!它唯一值得一提的就是它的RAD做的比MS的好。Intel的編譯器大家可能不熟,它太貴了!還要有VC的支持,很不劃算,而且編譯速度比VC6還慢。不過它的代碼質量很不錯。DigitalMars C/C++沒有什麼亮點,編譯速度較快,代碼執行速度適中,對C++特性支持還算不錯。LCC-WIN32是個很不錯的集成開發環境,它只支持純C。它的編譯速度極快!代碼執行速度較慢。不過它的最大亮點在於它的IDE,在所有的FREE編程工具中,它的IDE是最專業的,有很強大的代碼分析,管理功能。而且它提供了大量的編程資料。
我曾對一些編譯器的代碼執行效率做過一些測試,以下是概況:
1. VectorC、VC 7.0 (極快)
2. Intel C/C++、VC 6.0、GCC (很快)
3. DigitalMars C/C++ (一般)
4. LCC-WIN32、BCB、BC5.02 (較慢)
當然,我所做的測試比較片面。不過在很大程度上已能反映其大概狀況。

2. 開發平台,集成環境,編譯器,有什麼區別,為什麼c++有那麼多的平台

這個區別也太大了
編譯器:將高級語言編譯成機器碼,你這里說的是C++就是將C++代碼編譯成計算機可以識別的2進制代碼,顯然計算機是不認識C++代碼的,C++只是為了程序員便於編寫程序而產生高級程序語言。

集成環境:就是所謂IDE,你可以是認為用來做程序的一個軟體,這個軟體包含了從寫程序到生成可執行程序的所有組件,也包括調試等其他功能。簡單的對比,就如你寫文檔用的WORD一樣,IDE就提供對應的類似功能。

開發平台:開發平台一般包括IDE,系統,資料庫版本,編譯器版本等一系列與開發相關的信息,即軟體是在這樣的計算機環境下開發的。

為什麼C++有那麼多平台:回答很簡單,因為計算機大家使用的系統等不同,有的用LINUX,有的用WINDOWS,有的是嵌入式平台,也可以從CPU角度說,有X86架構的,有X64的。即使是同一個系統,也有不同版本。每個平台下的文件格式、每個CPU的指令不同等等都造成了平台多,不只是C++的問題。

3. qt如何設置宏區分同一個平台多套件編譯

在pro裡面定義一個宏,然後在代碼中根據這個宏進行條件編譯。

下面是一個示例:

網頁鏈接

4. c++編譯平台都有哪些

VC,devC++,blockC++都行

5. 搞不懂:如果C++在每個平台都有編譯器,不就想JAVA一樣成了跨平台的了嗎




C++ 和 Java 這兩種編譯型語言都是跨平台的,只是它們跨平台的層次不同而已:
前者是源碼層(Fortran 和 Pascal 也是),後者是可執行文件層。

也就是說,要移植的話,C++ 程序必須在目的平台上重新編譯,Java 則只需把可執行文件拷到目的平台上去,不必在那裡重新編譯。

我說的 「可執行文件」 的定義是 「編譯器的輸出文件」(C++ 的是 .exe,Java 的是 .class)。


6. 目前公司用的最多的C++編譯、開發平台是什麼

一般編譯器是cl.exe,開發平台是VC++。

7. Java的編譯平台

個人推薦myeclipse 和netbeans一起用,由 netbeans 編輯GUI生成代碼,再用myeclipse 編寫事件
netbeans 是可以像VB編譯器那樣拖控制項進行編輯的,而myeclipse 則具有強大的智能提示功能
nestbeans不用注冊碼,你在GOUGOU上一搜就有,目前最新版本的是IDE6.51,還是中文版的,而myeclipse 你也可以再GOUGOU上搜到,不過其注冊碼你也要搜,呵呵,我還是給你一段注冊碼的計算代碼吧,把它運行一下,輸入你的名字(當然也可以是其他符號,你就當是在注冊),然後程序會給出你的注冊碼。

代碼如下:(6.01版本的)

package testPackage_No_Useful.getRegCode;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class MyEclipseGen {
private static final String LL = "Decompiling this righted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/right/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself.";
public String getSerial(String userId, String licenseNum) {
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.add(1, 3);
cal.add(6, -1);
java.text.NumberFormat nf = new java.text.DecimalFormat("000");
licenseNum = nf.format(Integer.valueOf(licenseNum));
String verTime = new StringBuilder("-").append(new java.text.
SimpleDateFormat("yyMMdd").format(cal.getTime())).append("0").
toString();
String type = "YE3MP-";
String need = new StringBuilder(userId.substring(0, 1)).append(type).
append("300").append(licenseNum).append(verTime).toString();
String dx = new StringBuilder(need).append(LL).append(userId).toString();
int suf = this.decode(dx);
String code = new StringBuilder(need).append(String.valueOf(suf)).
toString();
return this.change(code);
}

private int decode(String s) {
int i;
char[] ac;
int j;
int k;
i = 0;
ac = s.toCharArray();
j = 0;
k = ac.length;
while (j < k) {
i = (31 * i) + ac[j];
j++;
}
return Math.abs(i);
}

private String change(String s) {
byte[] abyte0;
char[] ac;
int i;
int k;
int j;
abyte0 = s.getBytes();
ac = new char[s.length()];
i = 0;
k = abyte0.length;
while (i < k) {
j = abyte0[i];
if ((j >= 48) && (j <= 57)) {
j = (((j - 48) + 5) % 10) + 48;
} else if ((j >= 65) && (j <= 90)) {
j = (((j - 65) + 13) % 26) + 65;
} else if ((j >= 97) && (j <= 122)) {
j = (((j - 97) + 13) % 26) + 97;
}
ac[i] = (char) j;
i++;
}
return String.valueOf(ac);
}

public MyEclipseGen() {
super();
}

public static void main(String[] args) {
try {
System.out.println("please input register name:");
BufferedReader reader = new BufferedReader(new InputStreamReader(
System.in));
String userId = null;
userId = reader.readLine();
MyEclipseGen myeclipsegen = new MyEclipseGen();
String res = myeclipsegen.getSerial(userId, "20");
System.out.println("Serial:" + res);
reader.readLine();
} catch (IOException ex) {
}
}
}

8. 多平台c++

1. 絕對可以。方法:
1).使用成熟的跨平台線程庫,比如boost.thread
2).自己用#if . #else #endif 這樣根據不同平台對源碼做出區分
3).自己對線程使用做一個包裝,在底層對不同的平台做出不同的實現。
2.絕對可以。方法:
1).使用成熟的跨平台網路庫,比如ACE,boost.asio.
2).同第一個問題
3).同第一個問題

推薦樓主看看這本書: 《跨平台軟體開發:C & C++ 》

9. 誰能提供有效的c程序編譯平台

這個就是極品:
Turbo C/C++ for Windows 集成實驗與學習環境是從事一線教學的大學教師根據 C 語言初學者的特點,量身定製的一個簡單易用的 C 語言實驗與學習軟體。軟體集成了高校 C 語言教學中使用最多的三種編譯器 Visual C++ 6.0 、Turbo C++3.0和Turbo C 2.0 ,支持 C 、 C++ 、標准 C 、標准C++ 、 Windows C 程序的編輯、調試、運行,給高校 C 語言的實驗提供了簡單易用的軟體實驗環境。同時還集成了《 C 語言入門教程(每章均有 C 語言初學者易錯點和習題答案分析)》, C 語言學習方法指導、標准 C 、標准 C++ 、Windwos 入門程序實例、典型源程序、典型的函數演算法,課程設計指導、課程設計源程序、 Visual C++6.0 常見編譯錯誤信息、Turbo C++3.0常見編譯錯誤信息、 Turbo C2.0 常見編譯錯誤信息、C語言專業詞彙的中英文對照等,同時還有 2001 年到 2005 年二級 C 語言的全部真題筆試試卷及答案與分析和 10 套全真上機模擬試題和詳盡的答案與分析, 「編程日記」 功能可以讓你記錄你的 C 語言學習歷程,

閱讀全文

與多編譯平台相關的資料

熱點內容
cmd輸入命令斷開連接 瀏覽:909
二線大廠程序員員工年薪 瀏覽:985
程序員能從事導彈行業嗎 瀏覽:936
林園炒股指標源碼 瀏覽:466
pdf頁面間距 瀏覽:64
vi命令實訓操作 瀏覽:971
傳說古代洪水肆虐誰奉帝堯的命令 瀏覽:691
如何卸載愛思app 瀏覽:41
安卓app如何不顯示圖標 瀏覽:525
桌面雲伺服器組建配置 瀏覽:923
濟寧織夢源碼怎麼跳轉到qq 瀏覽:291
西安java培訓 瀏覽:299
蘋果用戶app如何退款 瀏覽:890
解壓方式就是喝酒 瀏覽:397
麥塊怎麼添加到游戲伺服器 瀏覽:962
噴油螺桿製冷壓縮機 瀏覽:582
python員工信息登記表 瀏覽:378
高中美術pdf 瀏覽:162
java實現排列 瀏覽:514
javavector的用法 瀏覽:983