1

使用 BCB5 命令行工具编译 makefile 时,链接器给了我这个错误:

 [exec]  D:\PROGRA~1\Borland\CBUILD~1\Bin\..\BIN\ilink32 @MAKE0000.@@@
 [exec] Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
 [exec] Fatal: Unable to open file 'CONSTS.OBJ'
 [exec] ** error 2 ** deleting lib\paslib.lib

我检查了所有编译的文件,没有一个使用或制作这个文件。make 文件没有提到它。Borland 程序文件中没有它。据搜索可以告诉我,它甚至不在我的机器上。当然,可以预见的是,在 IDE 中编译时没有问题。这个链接器在做什么?

使用 make 标志 -B 和 -fproject.bpr 调用项目

4

3 回答 3

2

我怀疑源代码中包含的其中一个标头中有这样一行:

#pragma link "consts"

预处理 .cpp 文件,您应该能够找到它的来源。

还有其他可能性,但我认为这是最有可能的一种。

于 2009-05-08T22:34:51.457 回答
0

C:\Program Files\Borland\CBuilder5\Lib\Obj 文件夹中有 consts.dcu 吗?

我不确切知道你的错误是什么,但也许它与这个文件有关,这显然是一个预编译的 delphi 单元。

于 2009-01-29T21:17:05.933 回答
0

我以前没有遇到过这个特定的错误——但如果怀疑来自 BCB 的奇怪错误,我的第一个调用端口总是检查文件的行尾。它真的非常想要 CRLF 行结尾。有些东西似乎只适用于 LF 文件,直到文件中间出现一些奇怪的、看似不可能的错误。

也许这不是你的问题,但它当然值得一看。

您可以尝试的另一件事是从 SysInternals安装Process Monitor 。这将使您了解它正在寻找哪个文件以及它在哪里寻找它。可能是它正在寻找 consts.dcu (Delphi 编译单元 - 几乎是目标代码)并且由于某处设置错误的路径而在错误的地方寻找。

于 2009-02-08T11:34:41.017 回答