1

编译 C++ Builder 10.4 项目时,我收到以下链接器错误:

[ilink32 错误] 错误:从 C:\USERS\PUBLIC\DOCUMENTS\EMBARCADERO\STUDIO\21.0\DCP\SCREEN2VIDEO.LIB|Screen2Video 引用的无法解析的外部 'std::locale::id::id(unsigned int)'

当“与动态 RTL 链接”和“与运行时包链接”关闭时,会发生此链接器错误。与动态 RTL 链接时,不会出现链接器错误,但我想静态链接。

SCREEN2VIDEO.LIB 来自包含导入的 ActiveX 控件的包。

4

2 回答 2

1

这里也有同样的问题,不过使用 C++ Builder 11。原来是优化器的问题。尝试禁用所有优化。还可以查看 Embarcadero 的相关错误报告之一: https ://quality.embarcadero.com/browse/RSP-29221

编辑:我做了更多的实验,发现了有问题的编译器标志。使用 -O2 或更高版本时隐式添加的是-finline-functions 。因此,作为一种解决方法,您可以将-fno-inline-functions添加到 C++ 编译器 > 高级 > 附加选项中,以使其工作,至少不会对性能产生太大影响。

我还将此信息添加到上述错误报告中。

于 2021-10-11T11:56:34.537 回答
1

在关闭动态 RTL 的情况下重新编译所有依赖包(包括 screen2video.bpl)。这修复了链接器错误。

于 2021-08-05T12:50:50.547 回答