奇怪的C ++ Builder链接器错误DATA.BIND.OBJECTSCOPE.OBJ

时间:2015-03-11 15:04:57

标签: linker-errors c++builder c++builder-xe7

所以我重新编译了一个完美的工作项目,我突然得到的是这个链接器错误:

[ilink32 Error] Fatal: Unable to open file 'DATA.BIND.OBJECTSCOPE.OBJ'

该项目是启用了VCL的C ++控制台应用程序,我不知道DATA.BIND.OBJECTSCOPE.OBJ来自哪里。

这些是我正在使用的标题。

#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <vector>
#include <vcl.h>
#include <System.hpp>
#include <System.IOUtils.hpp>
#include <System.Zip.hpp>
#include <System.Classes.hpp>
#include <System.IniFiles.hpp>

我试图完成光盘清理,删除所有临时文件等...没有变化...... 这个项目昨天编制得很好。

4 个答案:

答案 0 :(得分:2)

我在Embarcadero bug追踪器上找到了这个解决方案:

将followind添加到您的某个源文件

#if defined(_WIN32) && !defined(_WIN64)

#pragma link "Data.Bind.ObjectScope.obj"

#endif

此处提供了原始解决方案。 https://plus.google.com/103589122222763968447/posts/gSwPfUZLPEH

答案 1 :(得分:1)

根据我的经验,这是在项目使用的库或控件决定它需要DATA.BIND.OBJECTSCOPE时引起的(例如,由于Delphi代码中的uses子句或#pragma link在C ++ Builder代码中。)

一个快速但不完美的优雅修复:

  • 确定哪个.lib文件包含此.obj文件。 (您可以通过转到RAD Studio的库目录以及您正在使用的任何第三方库并使用.obj文件名进行grepping来执行此操作,或者TLIB命令可以列出.obj .lib中的文件。)
  • 在文本编辑器中修改.cbproj文件,将该库添加到LinkPackageStaticsAllPackageLibs部分。

根据您的项目设置(无论您是否使用运行时包,无论是静态还是动态链接),您都可以在项目选项,包和项目选项,包下进行操作。 ,运行时包和编辑包列表,而不是直接编辑.cbproj

答案 2 :(得分:1)

如果有人偶然发现这个令人沮丧的问题,我将在此处添加。

我有这个确切的问题。当我在使用C ++ Builder的Embarcadero RAD Studio项目中包含REST.Client.hpp时发生了这种情况。浪费了几个小时之后,我最终将REST Client组件拖放到GUI设计器表单上。繁荣。作品。是this site引导我进入正确的轨道。

它表示当您将组件放置在表单上时,#pragma链接条目会自动包含在源文件中。

答案 3 :(得分:0)

添加到答案中,因为上述答案均未解决我的项目,具有相同的链接器错误。

包括Vcl.Bind.Consts.hpp标头,即

#include "Vcl.Bind.Consts.hpp"

解决了该问题。