【问题标题】:Entry point not found on 32 bit C++ builder app在 32 位 C++ 构建器应用程序上找不到入口点
【发布时间】:2021-01-12 19:14:51
【问题描述】:

我有一个使用 C++Builder 10.4.1 编写的 VCL 项目。

到目前为止,该项目有 52 个模块 (cpp/h),并且还在继续增长。该项目不使用除内置包或 DLL 之外的任何包或 DLL。

对于 32 位版本,当我进行重新构建时,它运行得很好,但如果我更改某些内容并进行制作,我会收到错误消息:

在动态链接库 myAppName.exe 中找不到过程入口点 _wcscpy

我还发现,如果我在重新制作应用程序之前删除myAppName.ils,则不会发生这种情况。

所以,我要么完全重新构建,这需要很长时间,要么我必须记住删除愚蠢的.ils 文件,这很烦人。

有没有人对此有更好、更持久的解决方案?

顺便说一下,64位编译没有这个问题。

【问题讨论】:

  • "...,否则我必须记得删除愚蠢的 .ils 文件,这很烦人" - 您可以使用 Pre-build event script 自动执行此操作。
  • 关闭增量链接

标签: c++builder vcl c++builder-10.4-sydney


【解决方案1】:

.ils 文件是用于keep state when incremental linking 的文件之一。通过删除 .ils 文件解决的错误可能表明增量链接器中存在错误。

要解决它,您可以在项目选项 > 构建 > C++ 链接器中disable incremental linking。您可能还想file a bug report,但请注意链接集(一组目标文件加上这些 .il* 文件)可能需要修复它。

正如 Paul 所说,您还应该使用 TwineCompile 来减少构建时间 - 这样即使您进行完整构建,它也应该更快。如果您的更新订阅处于活动状态,它是免费的。 Info here 包括展示如何使用它的视频。设置时间不到一分钟。

【讨论】:

  • 事实证明,自柏林 10.1 以来,RSP-16423 已经存在一个错误报告,但 Embarcadero 声称他们已在 10.2.2 中修复它。不知何故,错误又回来了。我又举报了RSP-32175。请为它投票。
【解决方案2】:

切向 - 使用新的 Twine Compile 选项来加快构建时间。

【讨论】:

  • 我很高兴能够做到这一点,即使我们确实有有效订阅,但当我尝试安装它时,我收到错误消息“RADStudio.json”未找到。
  • 我直接从另一个答案复制:(stackoverflow.com/a/64448776/8106387) --- > 解决方案应该是:docwiki.embarcadero.com/RADStudio/Sydney/en/Release_Notes > > 如果您使用离线安装程序,RAD Studio 将无法访问GetIt > > 包管理器,直到您手动切换到“在线模式”。为此,我们 > > 建议使用 GetItCmd.exe 工具:GetItCmd.exe -c=useonline
猜你喜欢
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 2018-04-06
  • 1970-01-01
  • 2012-01-15
相关资源
最近更新 更多