问题标签 [compiler-version]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# 编译器是否设置版本或平台常量?
C# 编译器中是否有任何预定义的常量来检测目标平台的版本?
我可以在项目选项中设置平台,但如何为 .NET 2 和 .NET 3.5 编写单一源代码?
编辑:我真的很想编写一些代码,并且能够使用#if CLR_VERSION35 之类的东西来切换行为,然后运行不同的配置。
反过来的问题:如果我进行 CLR35 和 CLR20 配置,是否可以基于此选择目标平台?该选项在 VS2008 中不可用,我对 MSBUILD 还不太了解。
g++ - 不同g++版本生成的代码基准
我在一个对性能非常敏感的应用程序域的运行时系统上工作。我们付出了很多努力来保持与旧编译器版本的向后兼容性,包括避免最近实现的语言结构,并为旧版本综合它们。
但是,我担心这项工作会对我们的用户造成伤害,因为它使他们能够继续使用编译器版本,这会导致他们大量的性能损失。不幸的是,我无法找到跨版本执行性能的任何真实比较。如果有人有关于此问题的报告的链接,请发布它们。
我真的很想看到涵盖广泛版本的基准测试(如果你能回到 3.2,那就太棒了)和应用程序/测试
backwards-compatibility - 放弃对旧编译器版本的支持的技术考虑?
我从事一个以源代码和二进制形式免费分发的项目,因为我们的许多用户需要专门为他们的系统编译它。这需要一定程度的考虑来保持与旧主机系统的向后兼容性,主要是它们的编译器。
其中一些最笨拙的,例如 GCC 3.2(2003!)、ICC 9、MSVC(几乎是废弃软件,而不是 C++!)和 Sun 的编译器(在我们仍然关心的一些旧版本中)缺乏对语言特性的支持,使开发更容易。在某些情况下,让用户坚持使用这些编译器会降低很多性能,这与我们提供的目标背道而驰。
那么,在什么时候我们说足够了?我可以看到几个停止支持特定编译器的参数:
- 生成代码的性能不佳(相对于较新的版本,在此处询问)
- 缺乏对语言功能的支持
- 开发系统的可用性差(专有的比 GCC 更多,但旧的 GCC 也存在系统管理员问题)
- 未修复错误的可能性(我们在 ICC 和 xlC 中隔离了 ICE,还有什么可能潜伏着?)
我确定我错过了其他一些,我不知道如何衡量它们。那么,我错过了哪些论点?还有哪些其他技术考虑因素起作用?
注意:这个问题之前的措辞更广泛,导致许多受访者指出决策从根本上说是一个业务流程,而不是一个工程流程。我知道“业务”方面的考虑,但这不是我在这里寻找的更多内容。我想听听那些不得不支持旧编译器或选择放弃它们的人的经验,以及这对他们的开发有何影响。
linux - 选择更新的 gcc 版本进行升级
我在 CentOS 5.4 上开发 C++ 应用程序,我们遇到了 gcc 4.1.2 的几个不方便的情况,例如无法在类构造函数中调试局部变量,这是一个已确认的 gcc 错误(与作用域变量相同的问题)。我正在考虑升级到更高的 gcc 版本。生产环境应该选择什么版本?我可以简单地从 gcc.org 获取最新版本,构建它并开始使用它吗?我应该只使用 CentOS 软件库中的 rpm 吗?
谢谢。
java - Java - 使用 java 1.4 编译 src/main/java 并使用 1.5 编译 src/test/java
我有一个只能用 java 1.4 编译的项目。但我打算使用 mockito 编写一些单元测试。我想要一种在 pom 中指定的方法,以便src/main/java
编译jdk 1.4
但src/test/java
使用jdk 1.5
.
有没有办法做到这一点?如果是,应该进行哪些 pom 更改?
谢谢你的时间!!!
c++ - __cplusplus 指令在各种编译器中是如何定义的?
我的编译器将其扩展为 199711L。这意味着什么?我读到 __cplusplus > 199711L 表示 C++11。这个宏有哪些可能的扩展,它意味着什么?
java - 不支持的 major.minor 版本 52.0 - 同时使用较低版本进行编译。怎么还是坏了?
当我尝试运行我的程序时收到此错误消息:
我正在使用 Eclipse。我尝试转到 Windows -> Preferences -> Compiler 并将我的 Compiler 合规级别更改为较低版本,一直降至最低的 1.3。我还尝试配置项目特定设置并做同样的事情。
我检查了我的 Java 版本,我正在运行 1.7。
我相信 52 应该是 JDK 8,但是如果我在 1.3 中编译它,为什么它说我使用的是 JDK 8?
抱歉,还有其他类似的问题,但他们的解决方案都不适合我。
python - 是否可以强制 VS 2013 使用 VS 2010 编译器进行编译?
我想为 python 包装一个库。Python是用VS2010编译的,我有VS2013。是否可以强制 VS2013 像 VS2010 一样编译?
PS。我已经尝试过了,除非编译 python 的编译器版本和编译包装器的编译器版本相同,否则它不起作用。
PS。我的 python 应用程序依赖于许多其他库,我无法使用 VS 2013 重新编译它
非常感谢,
eclipse - Eclipse 上的 Maven 项目在更新后恢复 Java 编译器版本(从 1.8 到 1.5)(alt f5)
如标题中所述,我遇到了这个问题:如果我尝试编辑我的 Maven 项目的编译器版本(通过右键单击 proj -> Preferences -> Compiler...apply,ok ),然后按alt-f5(更新)我失去了所有以前的设置,如果我重新进入首选项菜单,我发现 java 编译器回到 1.5(总是 JDK 8,但 1.5 而不是 1.8)。
我尝试了很多方法和组合,例如通过 Preferences -> Facet 设置编译器,或者将 maven 插件添加到我的 pom 中,我真的找不到可行的解决方案。
请注意,在我的全局首选项中,Java 运行时环境已正确设置为 JDK 8 1.8。
任何人都可以帮助我吗?提前致谢,
朱利奥
java - 从安装的 java 8 JDK 使用 java 6 编译
我需要为大学使用 Java 6 编译我的源代码。我目前在我的 PC (Linux) 上安装了 Java 8 JDK。如何在 Java 6 中编译?
ps 我知道我将无法使用任何 Java 7 或 8 功能。
pps 我意识到使用 Java 8 JDK 可以很好地编译 Java 6 源代码,但是我发现在家编译时我不小心在我的程序中使用了 Java 6 后的特性。当我尝试在 uni 的实验室计算机上编译源代码时,我遇到了一堆错误。例如,无法将对象转换为原始类型。