【发布时间】:2015-12-28 11:50:58
【问题描述】:
我一直在更新使用 C++ Builder 2010 构建的旧遗留项目的代码,以使用 C++ Builder 10 Seattle 进行编译。我主要不得不改变路径,很多 dupIgnore 到 TDuplicates::dupIgnore,重新导入一些组件,如 MSXML 和 MSMQ 等。
首先是主项目以bpl和dll的形式使用的一堆子项目,最后是主项目的代码编译。
但是...链接失败:P
[ilink32 Error] Fatal: Unable to open file 'TYPES.OBJ'
我试图查找有关潜在问题的信息,并且许多人提到确保在 Delphi 编译器 设置下的 Unit Scope 中提供System。但这已经存在于这个项目中。还有什么可能导致这种情况?
有关信息。目前使用“经典”bcc32 编译器编译。
包含路径:
$(BDSINCLUDE)\windows\vcl;$(BDSINCLUDE)\dinkumware;
库路径:
$(BDSLIB)\$(PLATFORM)\$(Config);$(BDSLIB)\$(PLATFORM)\Release\psdk;
【问题讨论】:
-
您可以尝试通过删除或评论来刷新包含 (.h) 和编译指示 (.cpp) 列表。当您保存时,它们会再次自动生成。编译exe后确实会出现链接器错误,对吧?
-
我不确定我理解您所说的“列表”是什么意思?我猜你只是指正常的包含和编译指示指令?如果这就是您的意思,它们在很多文件中都有很多。当您包含来自各地的文件时,ide 怎么知道要“重新创建”哪些文件?
-
很抱歉描述不准确。当您将组件放在表单上时,会自动添加一些 include 和 pragma 指令。当我将一个较旧的应用程序移植到 XE2 时,我遇到了这个问题,因为一些包含指令发生了变化。
-
在你的项目文件中提到的 types.obj 文件在哪里?
-
当从一个版本的开发环境转换到另一个版本时,删除项目文件(到某个安全的地方以防你想调用它)并让环境创建一个新的有时会清理一些可能导致链接问题的问题;如果您还没有尝试过。
标签: c++builder vcl c++builder-10-seattle