问题标签 [static-compilation]

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 回答
433 浏览

programming-languages - 是否存在具有解释器、动态编译器和静态编译器(例如 c++ 编译器)以及多媒体库的高级语言?

解释器和动态编译器将用于测试/原型设计,当我完成测试时,我使用静态编译器。

0 投票
2 回答
1142 浏览

c++ - 尝试使用 mingw32-make 命令静态编译 Qt 应用程序,但使用 #include 语句出现错误

我写了一个我想静态编译的文本编辑器应用程序。我按照页面上概述的说明进行操作。

我去了所有源文件所在的目录。冉:

,这就是我得到一个错误列表的地方,这些错误都是由我的代码中的#include 语句引起的。就像,如果我写了#include <QMainWindow>,我会得到一个错误

QMainWindow:没有这样的文件或目录。

我究竟做错了什么?

0 投票
0 回答
435 浏览

groovy - Groovy 静态编译

  1. 我可以使用 groovy 编写 100% 的静态代码吗?即使我使用标准库?
  2. 如何在应用程序范围内启用 100% 静态编译?
0 投票
0 回答
505 浏览

time - 使用“@CompileStatic”时,Groovy 代码变得越来越慢

我有以下 Groovy 代码片段

应该测试天气x是一个以 1、3、7 或 9 结尾的数字

我正在为 Eclipse 使用 groovy 插件,所以当我想运行代码时,我有几个选项,我可以将它作为 Groovy 脚本运行,也可以作为 Java 应用程序运行。这是运行时。

但是当我启用静态编译时,就会发生这种情况

我很困惑,
1. 我认为编译到 Java 应用程序应该比将 Groovy 作为脚本运行更快。
2. 为什么Groovy 脚本选项使用静态编译变得如此之快,而Java 脚本选项变得更长?

0 投票
2 回答
114 浏览

c++ - g++ 在编译时走得太远了

我正在尝试使用递归模板在 C++ 中实现非常简单的单继承堆栈跟踪:

一切都应该没问题,但是当我尝试编译它时,g++ 忽略了
if(typeid(T)==typeid(StackTrace))return; 行并返回以下错误:

它试图调用 C::Base::Base::Base::Base /StackTrace::Base/ 类,它在运行时永远不会被调用。即使我在 printStackTrace 声明之后立即放置return语句,也会评估相同的错误。为什么不动态检查范围和成员函数以及为什么编译器忽略返回

0 投票
0 回答
523 浏览

java - Groovy @CompileStatic 类是否仍应包含元类代码?

我开始将一些 Groovy 类合并到我的 Maven 构建的 Spring 应用程序中,主要是为了减少许多 POJO 和值对象类的样板。(相比之下,我一直在使用 Roo 来处理样板文件,但随着 Spring 和 Maven 的更新版本,Roo 变得越来越不稳定。)我的 Spring Data MongoDB 类之一如下所示:

由于这些只是普通的结构对象,我不需要也不想要 Groovy 的元分类和调用选址的复杂性和开销。我只想要一个相当于 POJO 的东西。我尝试用 注释类@CompileStatic,但是虽然字节码中的一些调用已替换invokedynamicinvokevirtual,但我仍然得到.class包含几个大型 Groovy 方法和数据结构的巨大文件;一个只有一个空子类的类,它具体化了一个通用超类,它的字节码超过 5k。

我已经从 Eclipse 和命令行中编译了代码,两次都使用groovy-eclipse-compiler(2.8.0-01),虽然有一些细微的差异,但字节码中仍然包含所有动态“膨胀”。我引入的 Groovy 依赖项是 2.3.2,我的 Java 目标设置为 1.7。

甚至整个类都被标记@CompileStatic为将所有 Groovy 元数据和代码编译到其中吗?如果是这样,还有其他方法可以禁用它吗?

0 投票
1 回答
1354 浏览

grails - 如何在 Grails 中设置静态编译?

我是 Grails 的初学者,我想使用静态编译,但我不想GrailsCompileStatic为每个类使用注释。我可以为配置文件中的所有类设置它吗?

GrailsCompileStatic不能使用注解,因为我只需要为生产环境使用静态编译。对于其他环境应该使用动态编译。

请问有人知道解决办法吗??以及如何验证使用的编译?

谢谢解答。。

0 投票
2 回答
52 浏览

c++ - C++ 为有限数量设置的所有变体编译代码

例如,函数内部有硬逻辑void Func(long param1, long param2, long param3, long param4, long param5)

它里面有很多语句取决于参数,不同的检查,计算取决于组合等。

并且该函数被调用了数百万次并且需要大量的执行时间。我想减少那个时间。

所有参数均取自config.ini文件,因此在编译时它们是未知的。

但我知道,param1 可能在 diapason [1..3] 中,param2 在 diapason [0..1] 中等等。

所以,最后,这些参数可能有 200 种组合。

而且我希望我的编译器编译分离的200个组合,并且在运行时开始时,config.ini加载时只需选择其中一个,避免运行时计算参数的依赖关系。

这有可能在 C++98 中实现吗?还是在 C++11/14 中?

0 投票
1 回答
1024 浏览

angular - Angular2应用程序的静态与动态引导

在 angular2 RC5 中,我们通过引导应用程序的主模块来启动应用程序,并且 Angular 在针对浏览器时提供了两个引导选项。可以选择动态引导或静态。

文档提到静态,生成较小的应用程序,因此有性能提升,但我不清楚何时最好使用每种方法,哪种方法更适合生产,以及使用动态编译有什么好处。有人可以解释吗?

0 投票
1 回答
1975 浏览

c++ - 使用静态 glibc 编译共享对象 (.so)

我正在构建一些需要成为共享对象(.so)的代码。

我的构建机器上的 libc 可能比已发布的机器更新的问题,所以我想静态链接它以避免兼容性问题。(我的程序使用 memcpy,它显然是 GLIBC_2.14 的东西,它可以低至 2.5)。

使用 -shared 和 -static 进行编译不起作用,因为 crtbeginT.o 不是使用 -fPIC 编译的。

编辑:可能不是重新访问动态链接 libc 静态和其他一些库的 GCC 的副本?因为那个问题是关于静态链接 libc 的主要精灵,这是关于静态链接 libc 的共享对象。