Я скачал бесплатный компонент Delphi для работы с BZip2-архивами: http://www.torry.net/vcl/compress/other/BZip21.05.zip (Более опытный модуль AbBzip2.pas, компонент Аббревиатура http://sourceforge.net/projects/tpabbrevia/files/) - они очень похожи.
Компоненты работают хорошо.
Проблема:
Вижу, что версия * .obj файлов библиотеки BZip2 в компонентах - старая - 1.0.5 от 10 декабря 2007 года. Решил обновить 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.
Скопируйте новый * .obj вместо старых блоковort.obj, huffman .., сжать .., распаковать .., bzlib .. в компонент папки для Delphi.
Запустите Delphi, пытаясь перекомпилировать компоненты.
Получите ошибку «[Ошибка dcc32] AbBzip2.pas (215): E2065 Неудовлетворенное прямое или внешнее объявление: 'BZ2_hbMakeCodeLengths'» и другие подобные.
или для bzip2.bas - [Ошибка dcc32] BZip2.pas (171): E2065 Неудовлетворенное прямое или внешнее объявление: '_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 файлы.
cl
, а не сbcc32
, доставит вам много боли. Даже когда вы разрешите ссылки, у вас наверняка возникнут другие проблемы. Почему вы хотите это сделать? - person David Heffernan   schedule 06.08.2013