导航:首页 > 源码编译 > 多编译平台

多编译平台

发布时间: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 语言学习历程,

阅读全文

与多编译平台相关的资料

热点内容
f如何设置ftp服务器 浏览:829
编程题兔子生兔子python 浏览:419
加密数字卡专利申请 浏览:779
我的世界命令方块该怎么拿 浏览:780
浙江容错服务器厂家云空间 浏览:194
linuxpython3idle 浏览:739
程序员成就感从哪来 浏览:545
游资抄底源码公式 浏览:802
用VF命令 浏览:948
解压速度14m 浏览:329
php获取httpheader 浏览:297
什么软件可以修改pdf文件 浏览:867
命令行截图软件 浏览:734
程序员加班多 浏览:123
android设置view的背景 浏览:684
u盘加密工具哪个好 浏览:571
php生成html模板引擎 浏览:26
如何设置app封杀 浏览:823
手机将照片弄成压缩包 浏览:221
卡联购卡盟官网源码 浏览:867