因为在StackOverflow上的一些帖子中,建议在可行的情况下尝试支持多个(在本例中是C/C++)编译器,因为这会迫使你编写更符合标准的代码,并有助于查找错误。
因此,我正在寻找其他免费的C/C++编译器,我可以在我的项目中添加对它的支持(它是用C/C++ (两种语言的组合)编写的)。我发现Open Watcom是一个有趣的候选者。
所以我的问题是: Open Watcom C/C++编译器与其他编译器(例如,gcc/g++,Visual C++等)相比有哪些优点和缺点?
发布于 2010-12-24 01:18:09
这可能没有什么特别的好处,因为如果您的目标是可移植代码,那么您通常会尝试将代码限制为所有编译器实现的标准子集。我会说最小公分母,但这看起来有点贬义。
一种编译器相对于另一种编译器的优势通常在于它提供的扩展,它包含的库,或者生成代码的性能,如果您的目标是可移植性,那么您可能对这两者都不感兴趣。在这种情况下,您应该感兴趣的不是一个编译器相对于另一个编译器的优势,而是它对ISO标准的坚持和遵守。
在其早期的商业化身中,Watcom是著名的可用的最好的优化编译器之一;然而,我怀疑从那时起它是否跟上了处理器的发展(甚至是从16位到32位x86的过渡!)。
它的一个在某些情况下可能被视为优势的特性是它支持DOS、OS/2和Windows,但如果你的目标是维护遗留系统,这可能只是一个优势。将其移植到Linux、BSD和x86以外的处理器上的努力已经存在,但还没有完成,而GCC已经在那里工作了很多年了。
我建议,如果你能支持GCC和VC++,你可能有足够的编译器独立性(但建议你使用高警告级别设置进行编译(在GCC中为-Wall -Werror,在VC++中为\W4 \Wx )。我认为,与操作系统可移植性相比,编译器可移植性是一个微不足道的问题,您真正需要考虑的是跨平台库支持,而不是独立于编译器的代码支持。
但是,如果您喜欢使用编译器,也可以考虑Digital Mars编译器。像Watcom一样,它也有商业编译器的传统,以前是Zortech/Symantec C/C++编译器。
发布于 2010-12-24 02:33:49
如果你的“haxxor”是指你可以使用#pragma aux定义非常规的调用约定,那么watcom就会支持这一点。除此之外,我认为甚至没有理由尝试使用这样一个过时的编译器,除非你有可怕的硬件限制。国际海事组织,只需担心3人,,GCC,ICC,MSVC
发布于 2012-05-23 03:15:12
这里的一些人使用与Watcom (实际上是OpenWatcom)编译器“过时”有关的表达式。那么这意味着什么呢?
现在来看看它做了什么--除了支持16位实数和保护模式代码:
它在扁平内存模型中生成优秀的32位保护模式代码,每个人都使用它作为environment.
的代码生成功能非常出色,而且它位于最前面,有更多“未过期”的compilers.
你对编译器有什么“感觉”?就我而言,我不知道该怎么做。这是错误消息的编写方式吗?是否在控制台日志的消息中?
世界上最伟大的网络操作系统Novell Netware使用Watcom作为其开发环境。这在很大程度上说明了Watcom。别忘了: Netware的死亡是由于糟糕的营销管理和雷蒙德的违规行为。它并没有因为缺乏技术上的卓越而消亡。
我想我想说的是,你们这些不知道自己在说什么的人,也许应该少一点渴望写出答案。
我知道我知道这一切都是为了得到那些梦寐以求的分数和徽章以及你所拥有的一切。你如何得到它们是无关紧要的,对吧?
https://stackoverflow.com/questions/4520624
复制相似问题