Как мне собрать и связать libCurl в проекте VS - PullRequest
4 голосов
/ 29 августа 2011

Я пытаюсь использовать cURL в проекте C ++, над которым я работаю в VS2010.

Я скачал последний источник cURL и строю решение, включенное в архив.Когда я собираю этот проект, единственная выходная библиотека выглядит как «libcurld_imp.lib».Я ожидал "libcul.lib".В любом случае я указал VS на каталог include, в котором находятся заголовки, и добавил вышеупомянутую lib к зависимостям моего компоновщика.Наконец, я добавляю путь к папке этого "libcurld_imp.lib" в ссылки поиска дополнительных библиотек.

Я не могу построить свой проект из-за следующей ошибки компоновщика:

ошибка LNK1104: невозможнооткрыть файл 'libcurld_imp.lib'

Этот файл существует в папке, которую я добавил в путь поиска дополнительных библиотек компоновщика.Что мне не хватает?Спасибо

обновление

ОК. Итак, удалось получить файл libcurl.lib, отредактировав проект libcurl.Настройки сборки по умолчанию были установлены для вывода DLL.Я изменил это как статическую библиотеку.Теперь, когда у меня есть libcurl.lib, я получаю следующие ошибки компоновки:

Ошибка 3, ошибка LNK2019: неразрешенный внешний символ _ imp _curl_easy_setopt, указанный в функции _main Ошибка 2, ошибка LNK2019: неразрешенный внешний символ_ imp _curl_easy_perform, на который ссылается функция _main

Кто-нибудь знает, как связать эту чертову штуку?

Другое обновление

ДокументацияВ комплект поставки исходного файла входит файл «build.windows».В инструкциях говорится, что для сборки библиотеки используется следующая команда:

nmake / f makefile.vc mode =

Я сделал это, используя «static» в качестве моего режима и «VC = 10» в качествемой вариантЭто создает библиотеку, но она называется libcurl_a.lib.Ссылка на эту библиотеку дает те же ошибки :( Спасибо

Ответы [ 2 ]

0 голосов
/ 30 августа 2011

суффикс _ imp в libcurld_imp.lib скорее всего означает Библиотека импорта .Вы создаете библиотеку DLL, и этот файл является библиотекой, которую вам нужно связать с вашим exe-файлом, чтобы неявно вызывать библиотеку DLL.

Решение должно содержать другие конфигурации, которые позволят вам создать статическую библиотеку.

0 голосов
/ 29 августа 2011

Вы должны оба добиться успеха. Попробуйте это предложение (это для vs2008, но должно работать):

http://curl.haxx.se/mail/lib-2009-05/0097.html

...