【发布时间】:2013-08-06 08:22:31
【问题描述】:
我下载了一个免费的 Delphi 组件,用于处理 BZip2-archives: http://www.torry.net/vcl/compress/other/BZip21.05.zip (比较有经验的单元 AbBzip2.pas 组件缩写 http://sourceforge.net/projects/tpabbrevia/files/) - 它们非常相似。
组件运行良好。
问题:
我看到组件中的版本 *.obj 文件 BZip2 库 - 旧版本 - 2007 年 12 月 10 日的 1.0.5。决定将 obj 文件更新为新文件。
我去下载最新版本的BZip2 - 1.0.6 - http://www.bzip.org/downloads.html
将源 BZip2 存档解压到文件夹 c:\BZip2Src
运行“打开命令行VS2012 x86 Native Tools”(%comspec%/k""C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat""x86)
在控制台中,我转到 c:\BZip2Src (Cd /d c:\BZip2Src)
按照 makefile.msc (#usage: nmake.exe -f makefile.msc) 中的说明编译项目并获取新的 *.obj 文件。一路走来,得到一个工作程序bzip2.exe。
在 Delphi 的文件夹组件中复制新的 *.obj,而不是旧的 blocksort.obj、huffman..、compress..、decompress..、bzlib..。
运行 Delphi,尝试重新编译组件。
得到错误“[dcc32 Error] AbBzip2.pas (215): E2065 Unsatisfied forward or external declaration: 'BZ2_hbMakeCodeLengths'”等类似错误。
或者对于 bzip2.bas - [dcc32 Error] BZip2.pas(171): E2065 Unsatisfied forward or external declaration: '_BZ2_hbMakeCodeLengths'
...
{$L huffman.obj}
{$L compress.obj}
{$L decompress.obj}
{$L bzlib.obj}
{ $L crctable.obj}
{ $L randtable.obj}
{$IFDEF LFS}
uses
Windows;
{$ENDIF}
procedure _BZ2_hbMakeCodeLengths; external; // **ERROR LINE**
procedure _BZ2_blockSort; external; // if i replace on "BZ2_blockSort" (without "_"), i get error "[dcc32 Error] BZip2.pas(710): E2065 Unsatisfied forward or external declaration: 'bz_internal_error'"
procedure _BZ2_hbCreateDecodeTables; external;
...
如果不对 C++ 命令行进行任何修改,我就不能指出所有选项编译器吗?
不适用于 C++,帮助正确编译 *.obj 文件。
【问题讨论】:
-
简单的答案是您应该使用旧的 .obj 文件。试图让它与使用
cl而不是bcc32编译的 .obj 文件一起工作,这会给你带来很多痛苦。即使您解决了参考文献,您也可能会遇到其他问题。你为什么要这样做? -
1.我想要一个有更正的新版本。 2. 我想学习如何用 C++ 制作和附加 obj。 3、前期工作(新版本zlib2没有太大区别)
-
我编译了一个VS。 makefile、nmake.exe 或 cl.exe。现在我尝试了 BCC32 - 其他错误:[dcc32 Error] BZip2.pas (711): E2065 Unsatisfied forward or external declaration: '__streams' .. '_exit' ... '_fgetc' and ect
-
好的,我得到旧版本 bzip2 (1.0.5) archive.ubuntu.com/ubuntu/pool/main/b/bzip2/…,但错误未修复:(
-
阅读我的回答。最新的 Abbrevia 附带 1.0.6。而且你必须以正确的方式编译,正如 Abbrevia 的文档中所解释的那样。
标签: visual-studio delphi delphi-xe4