Questions tagged «compilation»

编译是将源文本转换为其他形式或表示形式。该标签最常见的用法是有关将编程语言转换为机器代码的问题。此标记通常与另一个指示源文本类型的标记(例如编程语言标记(C,C ++,Go等))一起使用,并指示用于转换的工具或编译器的标记(gcc,Visual Studio,等等。)。

27
警告:API'variant.getJavaCompile()'已过时,已被'variant.getJavaCompileProvider()'取代
同步Gradle时突然出现此错误: 警告:API'variant.getJavaCompile()'已过时,已被'variant.getJavaCompileProvider()'取代。它将在2019年底删除。有关更多信息,请参见https://d.android.com/r/tools/task-configuration-avoidance 受影响的模块:应用 我build.gradle为应用模块准备了这个: apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'com.google.gms.google-services' apply plugin: 'io.fabric' android { compileSdkVersion 28 buildToolsVersion "28.0.2" defaultConfig { applicationId "..." minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName "..." testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" versionNameSuffix = version_suffix [...] } buildTypes { release { minifyEnabled false …

14
如何使用/创建动态模板以使用Angular 2.0编译动态组件?
我想动态创建一个模板。这应该用于ComponentType在运行时和位置构建一个(甚至替换)在托管组件内部。 在使用RC4之前ComponentResolver,使用RC5时会收到以下消息: ComponentResolver is deprecated for dynamic compilation. Use ComponentFactoryResolver together with @NgModule/@Component.entryComponents or ANALYZE_FOR_ENTRY_COMPONENTS provider instead. For runtime compile only, you can also use Compiler.compileComponentSync/Async. 我找到了此文档(Angular 2同步动态组件创建) 并了解我可以使用 一种动态ngIf的ComponentFactoryResolver。如果我在内部传递了已知组件@Component({entryComponents: [comp1, comp2], ...})-我可以使用.resolveComponentFactory(componentToRender); 实时运行时编译,具有Compiler... 但是问题是如何使用它Compiler?上面的说明说我应该打电话给:Compiler.compileComponentSync/Async -那怎么办? 例如。我想(基于某些配置条件)为一种设置创建这种模板 <form> <string-editor [propertyName]="'code'" [entity]="entity" ></string-editor> <string-editor [propertyName]="'description'" [entity]="entity" ></string-editor> ... 在另一种情况下,这个(string-editor被替换为text-editor) <form> <text-editor …

11
使用G ++编译多个.cpp和.h文件
我刚刚继承了一些C ++代码,这些代码用一个包含主要功能和许多其他功能的cpp文件编写得很差。也有.h包含类及其函数定义的文件。 到目前为止,该程序是使用命令编译的g++ main.cpp。现在,我将类.h和.cpp文件分开了,我是否需要使用makefile或仍可以使用g++ main.cpp命令?

5
OPTION(RECOMPILE)总是更快;为什么?
我遇到了一种奇怪的情况 OPTION (RECOMPILE)查询到查询中会使查询在半秒钟内运行,而省略查询会使查询花费超过五分钟的时间。 从Query Analyzer或C#程序通过执行查询时,就是这种情况SqlCommand.ExecuteReader()。打电话(或不打电话)DBCC FREEPROCCACHE或DBCC dropcleanbuffers没有区别;查询结果始终会即时返回OPTION (RECOMPILE)不超过五分钟的情况下。始终使用相同的参数调用该查询(为了进行此测试)。 我正在使用SQL Server 2008。 我对编写SQL相当满意,但以前从未OPTION在查询中使用过命令,并且在扫描此论坛上的帖子之前并不熟悉计划缓存的整个概念。我从帖子中了解到,这OPTION (RECOMPILE)是一项昂贵的操作。显然,它为查询创建了新的查找策略。那么,为什么随后的省略的查询OPTION (RECOMPILE)是如此之慢呢?后续查询是否应该利用上一次包含重新编译提示的调用所计算的查找策略? 是否有一个查询在每次调用时都需要重新编译提示是非常不寻常的吗? 对不起入门级的问题,但我实在无法一字不漏。 更新:我被要求发布查询... select acctNo,min(date) earliestDate from( select acctNo,tradeDate as date from datafeed_trans where feedid=@feedID and feedDate=@feedDate union select acctNo,feedDate as date from datafeed_money where feedid=@feedID and feedDate=@feedDate union select acctNo,feedDate as date from datafeed_jnl where …


9
编译器如何进行编译?
我正在http://coffeescript.org/网站上研究CoffeeScript ,其中包含以下文字: CoffeeScript编译器本身是用CoffeeScript编写的 编译器如何自行编译,或者该语句是什么意思?
168 compilation 


12
IntelliJ IDEA 13设置为1.7仍使用Java 1.5
尽管在所有项目设置(包括中的File -> Project Structure -> Project :: Project SDK)中都指定了JDK 1.7 ,但是IntelliJ 13当尝试编译某些使用Diamond运算符的简单Java 7代码时,仍会产生以下错误: java: diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator) 配置中是否还有其他-source 7应启用预期选项的地方?

13
如何使Windows能够与Linux一样快地进行C ++编译?
我知道这不是编程问题,而是相关的。 我从事一个相当大的跨平台项目。在Windows上,我使用VC ++2008。在Linux上,我使用gcc。该项目中大约有40k个文件。Windows在编译和链接相同项目时比Linux慢10到40倍。我该如何解决? 在Linux上一次更改增量构建20秒,在Windows上一次增量构建3分钟。为什么?我什至可以在Linux中安装“ gold”链接器,并将时间缩短到7秒。 同样,在Linux上,git比Windows快10到40倍。 在git的情况下,git可能不是以最佳方式使用Windows,而是VC ++?您可能会认为Microsoft希望使自己的开发人员尽可能高效,而更快的编译将大大有助于实现这一目标。也许他们正在尝试鼓励开发人员使用C#? 作为一个简单的测试,找到一个包含很多子文件夹的文件夹,然后做一个简单的 dir /s > c:\list.txt 在Windows上。进行两次,并为第二次运行计时,以便它从缓存中运行。将文件复制到Linux并进行等效的2次运行,并安排第二次运行的时间。 ls -R > /tmp/list.txt 我有2个具有完全相同规格的工作站。配备12千兆RAM,8核3.0 GHz的HP Z600s。在包含约40万个文件的文件夹中,Windows需要40秒,而Linux需要不到1秒。 我可以设置注册表设置来加快Windows速度吗?是什么赋予了? 一些与编译时间相关的稍微相关的链接,不一定是I / O。 显然,在Windows 10(不是Windows 7)中存在一个问题,即关闭进程持有全局锁。当使用多个内核进行编译时,因此会使用多个进程,因此会遇到此问题。 该/analyse选项可能会影响性能,因为它会加载Web浏览器。(此处不相关,但很高兴知道)

6
交叉编译在OSX上运行?
我正在尝试在OSX上交叉编译go应用程序,以为Windows和Linux构建二进制文件。我已经阅读了所有可以在网上找到的东西。我发现的最接近的示例已发布(除了有关go-nuts邮件列表的许多未完成的讨论之外): http://solovyov.net/en/2012/03/09/cross-compiling-go/ 但它不适用于我的安装。我去了1.0.2。由于1.0.2是最近的版本,因此在我看来上述所有示例均不适用于该版本。 试图./make.bash --no-clean与ENV vars设置为386 / windows一起使用,它确实构建了go,但是它为我的安装构建了go,darwin/amd64并且完全忽略了ENV中假设构建其他编译器的设置。 有没有人建议如何做到(如果可以做到的话)?

4
如何使用cmake创建共享库?
我已经编写了一个库,该库过去是使用自写的Makefile进行编译的,但是现在我想切换到cmake。树看起来像这样(我删除了所有不相关的文件): . ├── include │ ├── animation.h │ ├── buffers.h │ ├── ... │ ├── vertex.h │ └── world.h └── src ├── animation.cpp ├── buffers.cpp ├── ... ├── vertex.cpp └── world.cpp 因此,我想做的就是将源代码编译到共享库中,然后将其与头文件一起安装。 我发现的大多数示例都使用一些共享库来编译可执行文件,而不仅仅是一个普通的共享库。如果有人可以告诉我一个使用cmake的非常简单的库,这也将很有帮助,因此我可以以此为例。

5
什么是C中的目标文件?
我正在阅读有关C语言中的库的信息,但尚未找到关于什么是目标文件的解释。其他任何编译文件和目标文件之间的真正区别是什么? 如果有人可以用人类的语言解释,我会很高兴。

8
构建与编译(Java)
认为答案很明显,但是可以解决: 当我在为学校设计一个小型项目时(使用Java),我对其进行了编译。 在我的小屋中,我们正在使用ant来构建我们的项目。 我认为编译是构建的一部分。这样对吗?构建和编译有什么区别? 相关: 编译和构建有什么区别?
138 java  build  compilation 

5
从数据库编译动态HTML字符串
情况 嵌套在我们的Angular应用程序中的是一个称为Page的指令,该指令由控制器支持,该指令包含一个具有ng-bind-html-unsafe属性的div。这被分配给名为“ pageContent”的$ scope变量。从数据库中为该变量分配动态生成的HTML。当用户跳至下一页时,将对数据库进行调用,并将pageContent var设置为此新的HTML,并将其通过ng-bind-html-unsafe显示在屏幕上。这是代码: 页面指​​令 angular.module('myApp.directives') .directive('myPage', function ($compile) { return { templateUrl: 'page.html', restrict: 'E', compile: function compile(element, attrs, transclude) { // does nothing currently return { pre: function preLink(scope, element, attrs, controller) { // does nothing currently }, post: function postLink(scope, element, attrs, controller) { // does …

30
在Visual Studio 2005上的编译时间非常慢
我们的编译时间很慢,在双核2GHz,2G Ram机器上可能要花费20多分钟的时间。 这主要归因于我们的解决方案的规模(已发展到70多个项目),以及VSS(当您拥有大量文件时,它本身就是瓶颈)。(不幸的是,换掉VSS并不是一个选择,所以我不希望它沦落为VSS的狂欢) 我们正在考虑合并项目。我们还在寻找具有多种解决方案的解决方案,以实现问题的更大分离,并为应用程序的每个元素缩短编译时间。当我们尝试保持同步时,我可以看到这将变成DLL地狱。 我很想知道其他团队是如何处理此扩展问题的,当您的代码库达到临界值时,您会怎么做?您浪费了半天时间在状态栏上查看编译消息。 UPDATE 我忽略了提及这是一个C#解决方案。感谢所有C ++的建议,但是距离我不得不担心头文件已经过去了几年了。 编辑: 到目前为止已经有用的好建议(不是说下面没有其他好建议了,只是有什么帮助了) 新型3GHz笔记本电脑-失去管理的能力使管理时产生奇迹 在编译过程中禁用反病毒 编译期间与VSS(实际上是网络)的“断开连接”-我可能会让我们完全删除VS-VSS集成,并坚持使用VSS UI 仍然不能通过编译进行反复操作,但是一点点都可以。 Orion在评论中确实提到了仿制药也可能发挥作用。从我的测试来看,确实确实对性能的影响最小,但是不足以确保-由于光盘活动,编译时间可能不一致。由于时间限制,我的测试未包含实时系统中出现的那么多泛型或代码,因此可能会累积。我不会避免在应该使用泛型的地方使用它们,只是为了提高编译时的性能。 解决方法 我们正在测试在新解决方案中构建应用程序新区域的实践,根据需要导入最新的dll,并在我们满意时将它们集成到更大的解决方案中。 我们还可以通过创建临时解决方案来对它们进行处理,这些临时解决方案仅封装了我们需要处理的区域,并在重新集成代码后将其丢弃。我们需要权衡重新集成此代码所花费的时间与我们在开发过程中没有像Rip Van Winkle这样的快速重新编译经验所获得的时间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.