Как решить ошибку компоновщика LIBCURL.LIB содержит недопустимую запись OMF, тип 0x21 (возможно, COFF) в C++Builder?

Я получаю сообщение об ошибке компоновщика при попытке использовать libcurl в Embarcadero C++ Builder XE:

[Ошибка ILINK32] Ошибка: «C:...\CURL-7.52.1\BUILD\WIN32\VC8\DLL RELEASE\LIBCURL.LIB» содержит недопустимую запись OMF, тип 0x21 (возможно, COFF)

Я создал библиотеку curl-7.52.1 в Visual Studio 2005.

Я могу получить libcurl.dll и libcurl.lib после сборки.

Я попробовал пример проекта в VS 2005, и я могу его выполнить.

Но вместо этого я хочу использовать libcurl в C++Builder.

Если я использую ту же библиотеку, созданную в VS 2005, в своем проекте C++Builder, это дает мне ошибку компоновщика.

Не могли бы вы мне помочь? Как я могу использовать библиотеку libcurl в своем проекте C++Builder?


person Pratik Mota    schedule 10.02.2017    source источник


Ответы (1)


Формат файла .lib (OMF) C++Builder отличается от формата MS Visual Studio (COFF). Вы должны быть в состоянии создать совместимый .lib файл из DLL, используя IMPLIB командную строку C++Builder. утилита:

implib.exe -a LIBCURL_BCB.LIB LIBCURL.DLL

Затем добавьте этот файл LIBCURL_BCB.LIB в свой проект вместо файла .lib, который вы получили при компиляции libcurl в VC++.

Переключатель -a используется для создания символов подчеркивания для функций __cdecl.

У меня на компе только C++Builder 5, и его implib.exe находится в этой папке:

C:\Program Files (x86)\Borland\CBuilder5\Bin\

person borisbn    schedule 10.02.2017
comment
Я копирую DLL, а затем запускаю указанную вами команду::::::: C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin›implib.exe LIBCURL_BCB.lib libcurl.dll . CodeGear Implib Версия 3.2.0 Copyright (c) 1991-2009 CodeGear Неустранимая ошибка LIBCURL_BCB.lib: невозможно открыть выходной файл - person Pratik Mota; 10.02.2017
comment
@PratikMota вы, вероятно, находитесь в каталоге только для чтения. Смените директорию на свой проект. - person n. 1.8e9-where's-my-share m.; 10.02.2017
comment
@н.м. Да, я взял implib в другую папку и попробовал. Он создал новую библиотеку............... НО все еще какая-то ошибка связывания... Свойство проекта --> Каталог и условие включают PAth: - C:\.....\LIBCURLDemo\curl -7.52.1\include Путь к библиотеке: - C:\....\LIBCURLDemo\curl-7.52.1\build\Win32\VC8\DLL Release Также я добавил библиотеку в проект и удалил Linked by Name Only === . OBJ ...и т.д. Как это решить? - person Pratik Mota; 10.02.2017
comment
libcurl.lib (15 КБ) Новое, созданное с использованием implib.exe, libcurl_bcb.lib ( 7 КБ), есть ли какие-либо проблемы ?? - person Pratik Mota; 10.02.2017
comment
@borisbn Вау... Очень мило... Работает. Действительно большое спасибо..!! - person Pratik Mota; 10.02.2017
comment
@н.м. Большое спасибо за ваш ответ. - person Pratik Mota; 10.02.2017