55

我一直在使用C++ Builder 2010更新旧遗留项目构建的代码,以使用C++ Builder 10 Seattle进行编译。我主要不得不改变路径,很多dupIgnoreto TDuplicates::dupIgnore,重新导入一些组件,如MSXMLMSMQ等。

首先是主项目以bpl和dll的形式使用的一堆子项目,最后是主项目的代码编译。

但是...链接失败:P

[ilink32 Error] Fatal: Unable to open file 'TYPES.OBJ'

我试图查找有关潜在问题的信息,并且许多提到确保在Delphi 编译器设置下的单元范围System中提供。但这已经存在于这个项目中。还有什么可能导致这种情况?

信息。目前使用“经典”bcc32 编译器编译。

包括路径:

$(BDSINCLUDE)\windows\vcl;$(BDSINCLUDE)\dinkumware;

图书馆路径:

$(BDSLIB)\$(PLATFORM)\$(Config);$(BDSLIB)\$(PLATFORM)\Release\psdk;
4

4 回答 4

1

我认为在您需要从找到的文件中删除此字符串之后,您应该在项目的所有文件中找到字符串 TYPES.OBJ。在此之前不要忘记备份项目目录。

当我将旧项目从 BCB5 转换为 BCB 6 时,我遇到了类似的问题。当我从扩展名为“.bpr”的项目文件中删除带有“.obj”文件名的字符串时,我的问题就解决了。

Project1.bpr 项目文件中的字符串如下:

<OBJFILES value="Unit1.obj Types.obj"/>

修改后:

<OBJFILES value="Unit1.obj"/>
于 2018-06-08T18:08:49.663 回答
0

I would follow the advice given by Tim D first. Whenever I start using a newer version of a compiler 90% of of importing old projects is due to me directly including code/header/object files and creating a blank version then copying over afterwards 99% of the time fixes it.

After making sure the data was created fresh, then importing your old data over it, I would check for legacy incompatibility issues. You are on the right path with changing your "lists". I also recommend you make sure that all your code is rewritten for the new compiler in mind. This helps with both code compatibility and streamlining for running the finished project.

Lastly, I would check that all your extra data (files that aren't pure code such as header files) are still recognizable too the compiler currently being used. (Legacy can cause this to be finicky.)

于 2017-04-02T01:20:46.997 回答
0

对我来说,我包括Spin在导致错误的 Delphi 中ilink64 error fatal: unable to open file 'vcl.samples.spin.o'

所以我删除Spin并包含Vcl.Samples.Spin在 Pascal 代码中,并且链接器很满意。此错误仅在 C++ Builder 上引起,而不是在 Delphi 中。

于 2021-02-28T12:53:46.607 回答
0

看起来编译器正在获取 TYPES.OBJ 但无法打开,因为这可能由于多种因素而发生(例如 C++ 依赖于平台.. TYPES.cpp 可能在不同的操作系统中构建)您可以肯定地解决我构建 TYPES 的问题.cpp .. 还要注意这个 CPP 正在导入的库应该是可兼容的// 如果你仍然得到错误,请继续完整构建.. 或者检查 link.rsp 或使用 nm 命令来查找依赖对象并构建所有他们。

于 2018-03-16T21:45:05.533 回答