Не удается получить ссылку на libcurl. (Dev-C ++)

Это источник огромного беспокойства. Кажется, я не могу заставить его что-либо делать. Я думаю о том, чтобы просто уничтожить весь этот проект. Почему не работает компоновщик?

Сижу и смотрю столько разных ссылок, но не понимаю, как это разрешить. Я знаю, что у меня правильно установлена ​​библиотека, но я не могу связать ее. У меня есть libcurl.dll в файле System32. Тем не менее, я все еще не знаю, что делать. Я схожу с ума, пытаясь заставить его работать. У меня нет файлов в Параметры проекта> Каталоги> Каталоги библиотеки, Параметры проекта> Каталоги> Включить каталоги или Параметры проекта> Каталоги> Каталоги ресурсов. В Project Options> Parameters> Linker:

"../Program Files (x86)/Dev-Cpp/MinGW64/lib/libcurl.a"

Итак, я не знаю, что еще делать. Я сижу здесь около недели, пытаясь разобраться самостоятельно. Наверное, мне следовало раньше обратиться за помощью. X.x Может быть, мне не хватает файлов для libcurl, но я сомневаюсь в этом, потому что я скачал весь файл. Я не знаю, может ли это быть мой брандмауэр Norton, блокирующий его. Как мне разрешить разрешения, если это так? Я понятия не имею, в чем проблема. Может кто-нибудь пролить свет на это. Я буквально посмотрел на каждое решение, которое кто-то может здесь предложить

Мой MakeFile:

# Project: Project1
# Makefile created by Dev-C++ 5.11

CPP      = g++.exe
CC       = gcc.exe
WINDRES  = windres.exe
OBJ      = Project.o
LINKOBJ  = Project.o
LIBS     = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc "../Program Files (x86)/Dev-Cpp/MinGW64/lib/libcurl.a"
INCS     = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include"
CXXINCS  = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++"
BIN      = Project1.exe
CXXFLAGS = $(CXXINCS) 
CFLAGS   = $(INCS) 
RM       = rm.exe -f

.PHONY: all all-before all-after clean clean-custom

all: all-before $(BIN) all-after

clean: clean-custom
    ${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
    $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)

Project.o: Project.cpp
    $(CPP) -c Project.cpp -o Project.o $(CXXFLAGS)

Исходный код:

#include <curl/curl.h>
#include <iostream>

int main( void )
{
    CURL *curl;
    CURLcode res;

    curl = curl_easy_init();
    if(curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);
    }
    return 0;
}

Ошибки, которые продолжают появляться:

g++.exe Project.o -o Project1.exe -L"C:/Program Files (x86)/Dev-
Cpp/MinGW64/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-
mingw32/lib" -static-libgcc "../Program Files (x86)/Dev-
Cpp/MinGW64/lib/libcurl.a"
Project.o:Project.cpp:(.text+0x16): undefined reference to `__imp_curl_easy_init'
Project.o:Project.cpp:(.text+0x41): undefined reference to `__imp_curl_easy_setopt'
Project.o:Project.cpp:(.text+0x5c): undefined reference to `__imp_curl_easy_setopt'
Project.o:Project.cpp:(.text+0x6c): undefined reference to `__imp_curl_easy_perform'
Project.o:Project.cpp:(.text+0x83): undefined reference to `__imp_curl_easy_strerror'
Project.o:Project.cpp:(.text+0xb5): undefined reference to `__imp_curl_easy_cleanup'
collect2.exe: error: ld returned 1 exit status
C:\Projects\Makefile.win:25: recipe for target 'Project1.exe' failed
mingw32-make.exe: *** [Project1.exe] Error 1

person RAndre    schedule 08.06.2017    source источник
comment
Не по теме: Примечание для будущих вопросов и ответов: теги <code> ничего не делают. Отступ в четыре пробела (или ctrl + k) - это волшебство для форматирования кода.   -  person user4581301    schedule 08.06.2017
comment
По теме: в командной строке вашего компилятора отсутствует -l (свяжите следующую библиотеку) перед "../Program Files (x86)/Dev- Cpp/MinGW64/lib/libcurl.a"   -  person user4581301    schedule 08.06.2017
comment
Вы добавили языковые теги для двух разных языков: C и C ++. Пожалуйста, используйте теги только для используемого языка, который кажется C ++.   -  person Gerhardh    schedule 08.06.2017
comment
Этот вопрос кажется дубликатом вашего и кажется указать несоответствие в командной строке компиляции, что нужно добавить -DCURL_STATICLIB во флаги препроцессора   -  person Petesh    schedule 08.06.2017
comment
Спасибо всем за отзывы, но по большей части у меня все заработало, думаю, я не связал файл licurldll.a. Я только связал файл libcurl.a x.x, какая трагедия, что такая простая вещь меня удержала. Но теперь у меня другая ошибка. Мне не хватает libcrypto.dll и idk, где он находится. Его не было в моем пакете libcurl ...   -  person RAndre    schedule 09.06.2017


Ответы (1)


Это может сработать лучше, так как

-L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib" -lcurl

Аргумент -L добавляет каталог к ​​пути поиска библиотеки, а аргумент -l указывает, какую библиотеку искать.

person StephenG    schedule 08.06.2017
comment
Думаю, я не связывал файл liburldll.a, это единственное, что мне оставалось, чтобы сделать это, но я не могу запустить программу. Теперь он выдает сбой. Мне не хватает файла libcrypto.dll, но пакет bar не прилагался к нему. Идк, что делать. как мне продолжить? - person RAndre; 09.06.2017
comment
Здесь есть двоичные файлы (ссылки с веб-сайта OpenSSL) - indy.fulgan.com/SSL - libcrypto должен быть в тех. Просто распакуйте в тот же каталог, что и EXE. - person StephenG; 10.06.2017