安装:我在GNU编程系列(gcc、g++、make和gdb)中安装了Cygwin,并成功地编译了我正在运行的一个程序。然后我决定将boost安装到Cygwin中,因为我需要在我的程序开发时使用典型的boost工具。所以,使用Cywing setup.exe,我安装了boost。在此之后,我刚刚成功编译并运行的程序就不再工作了。(回想一下,它并不依赖于提振。)
我发现在boost安装时,它还安装了一个新的编译器g++-4.exe,而以前我一直使用r++-3.exe。Boost还象征性地将g++.exe与新编译器连接起来。在我更改回符号链接后,我的旧程序正确编译。
有什么理由我应该使用g++-4而不是g++-3?
发布于 2010-09-08 19:11:00
g++ 3非常古老,gcc社区早已放弃了对它的维护。(GCC 4.3目前是最老的维护版本系列。)在较新的版本中,已经有了许多语言一致性的改进(包括接受有效代码和拒绝坏代码),因此,如果您现在就坚持下去,您将有更轻松的时间继续前进。您可以查看每个系列的发行说明(例如为4.0),了解这些改进以及它们可能需要的代码更改的说明。就我个人而言,当我能够根据精确的语言规范对程序进行推理时,我觉得编程更令人愉快,而且很少被迫理解特定编译器的怪癖。
此外,对g++ 3的支持似乎已经接近尾声,因为Boost 1.44认为GCC 3(.4.6)只是一个单一平台上的“额外测试编译器”。Boost开发是线性的(而不是分支的),因此您可以发现自己处于需要升级以获得bug修复的情况,但随后发现您的平台不再受支持。
https://stackoverflow.com/questions/3670004
复制相似问题