在 32 位 C++ 生成器应用程序上找不到入口点

Entry point not found on 32 bit C++ builder app

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

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

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

The procedure entry point _wcscpy could not be located in dynamic link library myAppName.exe

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

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

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

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

Tangentially - 使用新的 Twine 编译选项来加快构建时间。

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

要解决它,您可以 disable incremental linking in Project Options > Building > C++ Linker. You may also want to file a bug report,但请注意可能需要链接集(目标文件集加上这些 .il* 文件)才能修复它。

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