问题标签 [incremental-linking]
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.
visual-c++ - 同类目标目录
如果启用了增量链接,Visual C++ 会在 $(TargetDir) 中生成 *.ilk 文件,我可以覆盖此行为并将其重定向到另一个目录吗?(不使用构建后步骤)
c++ - Visual C++ 中的部分生成与完整生成
对于我使用 Visual C++ 进行的大部分开发工作,我使用的是部分构建,例如按 F7 并仅重新构建更改的 C++ 文件和它们的依赖关系,然后是增量链接。在将版本传递给测试之前,我会采取预防措施进行完全重建,这在我当前的项目中大约需要 45 分钟。我看到很多帖子和文章都在提倡这一行动,但想知道这是否必要,如果有,为什么?它是否会影响交付的 EXE 或相关的 PDB(我们也在测试中使用)?从测试的角度来看,该软件的功能会有所不同吗?
对于发布版本,我使用的是 VS2005、增量编译和链接、预编译头文件。
windows - 我如何知道可执行文件是否被增量链接?
我正在尝试使用 Purify 6 来分析我们使用 VC++ 2003 (7.1) 构建的一个可执行文件中的内存损坏。
当我使用以下命令检测二进制文件时:
仪器中止告诉我可执行文件是增量链接的。困惑的是,我检查了构建选项,但/INCREMENTAL:NO
在那里。可以肯定的是,我重建了它,并且该选项在链接时正确传递。
有没有办法知道可执行文件是否被增量链接?
我看了看内容dumpbin /HEADERS
,但没有看到任何相关内容。
谢谢。
c++ - C++: LINK : debug\XXXXX.exe not found 或不是由最后一个增量链接构建的;执行完整链接
使用 Visual Studio 2008 SP1,
这一行:
每次编译项目时都会出现,无论我做了多么小的更改。
这可能是什么原因?
incremental-linking - 什么是“增量链接”?
我查看了 Microsoft 的 MSDN 和整个网络,但我仍然无法真正了解它是什么。
这是否意味着已完成的程序在其执行期间的不同时间加载 DLL,就像在启动时同时加载一样?
我完全走投无路了吗?:)
linux - 在 Linux 上使用 gcc 进行增量链接。是否可以?
我团队项目的开发方式是,我们从所有.o
对象文件中为我们的应用程序生成一个共享对象库。我的任务(希望它足够具体,但也足够通用以对其他人有用!)是仅链接自上次创建可执行文件以来已更改的目标文件。例如,这是我用来构建 .so 的命令行:
哪个按预期工作!:) 我的目标是从现在开始只能链接更改的目标文件,以加快并发链接过程。一个示例命令是:
这将libMySharedLibrary.so
使用较新的目标文件进行更新,同时还保留较旧的目标文件libMySharedLibrary.so
。实际上,当我libMySharedLibrary.so
使用上面的命令生成时,文件大小比包含所有目标文件时的文件大小要小得多,所以我几乎可以肯定上面的命令没有做我想要的。
通过我的研究,我发现-i
链接器有一个选项与-r
选项相同,它似乎也只是将所有目标文件组合成一个大目标文件。不幸的是,这似乎不是我想要的。
简而言之,我只想在初始链接之后链接更改的目标文件,从而为将来的链接提供更快的链接过程。有没有办法做到这一点?
编辑:我尝试过的一个例子-i/-r
:
示例命令:g++34 -Wl,-r -nostdlib -rdynamic -m64 -Wl,-rpath,'$ORIGIN' MyObject1.o MyObject2.o MyObject3.o MyObject4.o -o AllMyObjects.o
我必须添加-nostdlib
标签以阻止它对我大喊大叫需要它,并删除,-shared
因为标签不允许共享对象-r
。
这个命令似乎将我所有的 .o 文件都塞进一个大的 .o 文件中。因此,如果我可以从现在开始仅使用已更改的 .o 文件更新该 .o 文件,那就太好了。在最初创建 AllMyObjects.o 之后,我尝试了这个命令:g++34 -Wl,-r -nostdlib -rdynamic -m64 -Wl,-rpath,'$ORIGIN' MyObject1.o MyObject3.o -o AllMyObjects.o
,但它也会创建一个更小的 (file-size-wise) AllMyObjects.o
,所以我假设它不可能拥有所有的目标文件。我觉得这是我可能会犯一个小错误的事情。有人有什么建议吗?提前致谢。
eclipse-plugin - 使用 Eclipse 构建 DSL 时,增量编译的最佳方法是什么?
正如 Eclipse 文档所建议的那样,我有一个org.eclipse.core.resources.IncrementalProjectBuilder
可以编译每个源文件的文件,并且我也有一个org.eclipse.ui.editors.text.TextEditor
可以单独编辑每个源文件的文件。每个源文件都被编译到自己的编译单元中,但它可以引用其他(已经编译的)源文件的类型。
两个重要的任务是:
- 编译(以确保我们使用的类型确实存在)
- 自动完成(查找类型,以便我们查看其上存在哪些属性/方法)
为此,我想将所有已编译类型的表示形式存储在内存中(以下称为我的“类型存储”)。
我的问题有两个:
上面的任务一由构建器执行,任务二由编辑器执行。为了让他们都可以访问这种类型的商店,我应该在他们都可以访问的地方创建一个静态商店,还是 Eclipse 提供了一种更简洁的方法来处理这个问题?请注意,在需要时实例化构建器和编辑器的是 eclipse,而不是我。
打开 Eclipse 时,我不想重建整个项目,这样我就可以重新填充我的类型存储。到目前为止,我最好的解决方案是将这些数据保存在某个地方,然后从中重新填充我的商店(也许在项目打开时)。这是其他增量编译器通常这样做的方式吗?我相信 Java 的方法是使用一种特殊的解析器,可以有效地从类文件中提取这些数据。
任何见解将不胜感激。这是我的第一个 DSL。
c++ - Visual Studio C++ 中增量链接的性能低下
我有一个由许多静态库和独立 cpp 文件构建的大型二进制文件。它被配置为使用增量链接,所有优化都被禁用/Od
- 它是调试版本。
我注意到,如果我更改任何独立的 cpp 文件,那么增量链接运行速度很快 - 1 分钟。但是,如果我更改任何静态库中的任何 cpp,那么它会运行很长时间 - 10 分钟,与普通链接相同。在这种情况下,我没有从增量链接中获得任何好处。有没有可能加快速度?我用的是VS2005。
qt - 如何让 QtCreator 与 nmake 增量链接?
我曾经在 Visual Studio (2008) 中进行开发,但现在几乎完全转向使用 QtCreator 进行开发,主要是由于代码导航、重构和代码完成。我正在使用win32-msvc2008
mkspec。到目前为止,我已经设法设置了所有东西,除了一件事:
增量链接。
在我的项目文件中,我添加了以下行:
我得到一个链接器行
但是,它总是告诉我它找不到 .exe 或者它不是由上次增量构建完全构建的,即使我只更改了一个 .cpp 文件,恢复更改并保存。
我尝试过使用和不使用阴影构建,以及使用 nmake 或 jom 进行构建,这两种组合都不起作用。
有没有人设法让 QtCreator 与 nmake 逐步链接?
PS:如果我使用 Qt 插件将项目文件导入 Visual Studio,增量链接将完美运行。
visual-studio-2008 - Visual Studio 2008 中的 LNK1210
链接 Chromium 项目时收到以下错误:
VS2005也有类似的问题。不知何故,这很奇怪,因为链接器已经在做完整的链接。设置/INCREMENTAL:NO
时链接成功,但增量链接被禁用。
有没有办法可以增加 ILK 大小限制以启用增量链接?