关于LTCG(link-time code generation)的lib
·
LTCG(Link-Time Code Generation,链接时代码生成)的 Library 是指在使用 LTCG 优化技术时编译生成的静态库(.lib)或动态库(.dll)。这类库与常规库的主要区别在于它们包含了中间代码(如 LLVM IR 或 MSVC 的 COMDAT 记录),而非直接的目标代码,以便在链接阶段进行全局优化。
辨别方式
打开Developer Command Prompt for VS,通过link -dump -disasm xxx.lib 指令,若是非LTCG的编译的lib,输出类似:
Microsoft (R) COFF/PE Dumper Version 14.00.23026.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file Base.lib
File Type: LIBRARY
Summary
BA .debug$S
14 .idata$2
14 .idata$3
4 .idata$4
4 .idata$5
A .idata$6
若是LTCG编译的库:
Microsoft (R) COFF/PE Dumper Version 14.00.23026.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file json_vc71_libmt.lib
File Type: LIBRARY
可能出现的问题
在构建项目时,若编译器没启动LTCG、链接器未启动CG,则会报如下类似错误:fatal error C1900: “P1”(第“20150812”版)和“P2”(第“20130802”版)之间 Il。
解决方式
启动LTCG和CG
更多推荐

所有评论(0)