Статическая библиотека libcurl на windows

0

Как связать эту библиотеку libcurl статически с exe? я пытался

--disable-share --enable-static, который не помогает.

Я использую MingW32

Есть ли простой способ статически связать эту библиотеку, чтобы у меня не было больше.dll с моим приложением?

  • 0
    Это для Visual Studio. Не для Мингв мой друг.
  • 2
    Используете ли вы Visual Studio или нет, не имеет большого значения. Концепция такая же.
Теги:
gcc
libcurl
static-linking

3 ответа

1

Если вы используете кодовые блоки, щелкните правой кнопкой мыши свой проект и нажмите свойства, а затем на вкладке "Определения" добавьте:

CURL_STATICLIB

при использовании командной строки:

-static -static-libgcc -static-libstdc++ -DCURL_STATICLIB -lcurl -lws2_32 -lwinmm

  • 0
    Если я использую эту команду, я получаю тонны «неопределенной ссылки» на API в libcurl.a
0

Вот как это сделать. но вы можете получить дополнительные ошибки. это нужно выяснить самостоятельно. Это просто руководство.

  1. У вас должен быть два проекта в решении Visual Studio

    • Проект libcurl (исходный код загружен из curl web, это может вам помочь)
    • ваш проект
  2. Создайте libcurl как статическую Static Library (.lib) щелкните правой кнопкой мыши libcurl project в libcurl project решений → свойства → свойства конфигурации → General-> измените configuration Type на Static Library (.lib))

  3. Затем щелкните правой кнопкой мыши ваш проект, чтобы перейти к свойствам → свойства конфигурации → Linker → general

  4. В "дополнительных библиотечных каталогах" добавьте путь к выше curl.lib.

  5. затем перейдите к свойствам → свойства конфигурации → Linker → input
  6. добавьте имя libcurl.lib в additional dependencies.
  7. затем перейдите к свойствам → свойства конфигурации → Общие
  8. Если в вашем проекте используется использование MFC или ATL, use of MFC и use of ATL для use MFC in static library и соответственно use ATL in static library.
  9. затем постройте решение.
  10. Наслаждайтесь libcurl :)
0

Вы должны использовать -static в вариантах компоновщика

  • 0
    Я попробовал эту опцию, но он не позволит мне скомпилировать, я получаю эти ошибки clns.c :(. Text + 0xad7e): неопределенная ссылка на _imp__curl_e asy_init' clns.c:(.text+0xb1d6): undefined reference to _imp__curl_e asy_cleanup' clns .c :(. text + 0xb6bb): неопределенная ссылка на _imp__curl_e asy_cleanup' clns.c:(.text+0xbc71): undefined reference to _imp__curl_e asy_cleanup' clns.c :(. text + 0xc3bc): неопределенная ссылка на __imp__cl '
  • 0
    @amaninlove, вам также нужен -lcurl и вам нужно определить путь к библиотеке curl.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню