问题标签 [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.

0 投票
3 回答
1361 浏览

c# - C# 编译器是否设置版本或平台常量?

C# 编译器中是否有任何预定义的常量来检测目标平台的版本?

我可以在项目选项中设置平台,但如何为 .NET 2 和 .NET 3.5 编写单一源代码?

编辑:我真的很想编写一些代码,并且能够使用#if CLR_VERSION35 之类的东西来切换行为,然后运行不同的配置。

反过来的问题:如果我进行 CLR35 和 CLR20 配置,是否可以基于此选择目标平台?该选项在 VS2008 中不可用,我对 MSBUILD 还不太了解。

0 投票
1 回答
378 浏览

g++ - 不同g++版本生成的代码基准

我在一个对性能非常敏感的应用程序域的运行时系统上工作。我们付出了很多努力来保持与旧编译器版本的向后兼容性,包括避免最近实现的语言结构,并为旧版本综合它们。

但是,我担心这项工作会对我们的用户造成伤害,因为它使他们能够继续使用编译器版本,这会导致他们大量的性能损失。不幸的是,我无法找到跨版本执行性能的任何真实比较。如果有人有关于此问题的报告的链接,请发布它们。

我真的很想看到涵盖广泛版本的基准测试(如果你能回到 3.2,那就太棒了)和应用程序/测试

0 投票
3 回答
234 浏览

backwards-compatibility - 放弃对旧编译器版本的支持的技术考虑?

我从事一个以源代码和二进制形式免费分发的项目,因为我们的许多用户需要专门为他们的系统编译它。这需要一定程度的考虑来保持与旧主机系统的向后兼容性,主要是它们的编译器。

其中一些最笨拙的,例如 GCC 3.2(2003!)、ICC 9、MSVC(几乎是废弃软件,而不是 C++!)和 Sun 的编译器(在我们仍然关心的一些旧版本中)缺乏对语言特性的支持,使开发更容易。在某些情况下,让用户坚持使用这些编译器会降低很多性能,这与我们提供的目标背道而驰。

那么,在什么时候我们说足够了?我可以看到几个停止支持特定编译器的参数:

我确定我错过了其他一些,我不知道如何衡量它们。那么,我错过了哪些论点?还有哪些其他技术考虑因素起作用?

注意:这个问题之前的措辞更广泛,导致许多受访者指出决策从根本上说是一个业务流程,而不是一个工程流程。我知道“业务”方面的考虑,但这不是我在这里寻找的更多内容。我想听听那些不得不支持旧编译器或选择放弃它们的人的经验,以及这对他们的开发有何影响。

0 投票
1 回答
501 浏览

linux - 选择更新的 gcc 版本进行升级

我在 CentOS 5.4 上开发 C++ 应用程序,我们遇到了 gcc 4.1.2 的几个不方便的情况,例如无法在类构造函数中调试局部变量,这是一个已确认的 gcc 错误(与作用域变量相同的问题)。我正在考虑升级到更高的 gcc 版本。生产环境应该选择什么版本?我可以简单地从 gcc.org 获取最新版本,构建它并开始使用它吗?我应该只使用 CentOS 软件库中的 rpm 吗?

谢谢。

0 投票
1 回答
280 浏览

java - Java - 使用 java 1.4 编译 src/main/java 并使用 1.5 编译 src/test/java

我有一个只能用 java 1.4 编译的项目。但我打算使用 mockito 编写一些单元测试。我想要一种在 pom 中指定的方法,以便src/main/java编译jdk 1.4src/test/java使用jdk 1.5.

有没有办法做到这一点?如果是,应该进行哪些 pom 更改?

谢谢你的时间!!!

0 投票
4 回答
26487 浏览

c++ - __cplusplus 指令在各种编译器中是如何定义的?

我的编译器将其扩展为 199711L。这意味着什么?我读到 __cplusplus > 199711L 表示 C++11。这个宏有哪些可能的扩展,它意味着什么?

0 投票
2 回答
16572 浏览

java - 不支持的 major.minor 版本 52.0 - 同时使用较低版本进行编译。怎么还是坏了?

当我尝试运行我的程序时收到此错误消息:

我正在使用 Eclipse。我尝试转到 Windows -> Preferences -> Compiler 并将我的 Compiler 合规级别更改为较低版本,一直降至最低的 1.3。我还尝试配置项目特定设置并做同样的事情。

我检查了我的 Java 版本,我正在运行 1.7。

我相信 52 应该是 JDK 8,但是如果我在 1.3 中编译它,为什么它说我使用的是 JDK 8?

抱歉,还有其他类似的问题,但他们的解决方案都不适合我。

0 投票
1 回答
98 浏览

python - 是否可以强制 VS 2013 使用 VS 2010 编译器进行编译?

我想为 python 包装一个库。Python是用VS2010编译的,我有VS2013。是否可以强制 VS2013 像 VS2010 一样编译?

PS。我已经尝试过了,除非编译 python 的编译器版本和编译包装器的编译器版本相同,否则它不起作用。

PS。我的 python 应用程序依赖于许多其他库,我无法使用 VS 2013 重新编译它

非常感谢,

0 投票
1 回答
1755 浏览

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。

任何人都可以帮助我吗?提前致谢,

朱利奥

0 投票
3 回答
9068 浏览

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 的实验室计算机上编译源代码时,我遇到了一堆错误。例如,无法将对象转换为原始类型。