Ошибка связывания C++ Libcurl

Я пытаюсь запустить следующую команду g++

gcc client.cc -o client -I$(CURRENTPATH)/curl-7.38.0/include/ -L$(CURRENTPATH)/lib/libcurl.so -lcurl

но получить эту ошибку:

/usr/bin/ld: cannot find -lcurl collect2: ld returned 1 exit status

libcurl.so находится в ./lib. Я пробовал с libcurl.so, lib/libcurl.so.4 и lib/libcurl.so.4.3.0, но всегда получаю одну и ту же ошибку.

У меня нет доступа к /usr

Я также установил свой LD_LIBRARY_PATH, чтобы включить ./lib (полный путь)

Любые идеи?

Насколько я понимаю, -L указывает нетрадиционные пути к библиотекам, а LD_LIBRARY_PATH определяет, где их будет искать компилятор.


person user1018513    schedule 14.09.2014    source источник
comment
Разве у вас не должен быть путь к каталогу после -L?   -  person Pavel Šimerda    schedule 15.09.2014
comment
Также не могли бы вы указать в своем вопросе, почему вы используете пользовательский каталог, а не системную установку libcurl?   -  person Pavel Šimerda    schedule 15.09.2014
comment
Плюс примечание к LD_LIBRARY_PATH, это для динамического компоновщика, т.е. оно используется при запуске исполняемого файла, а не при его сборке. Кроме того, я бы порекомендовал вам использовать хотя бы минималистичный make-файл, устанавливающий CFLAGS и LDFLAGS и ничего больше, позволяющий вам рунировать make client.   -  person Pavel Šimerda    schedule 15.09.2014
comment
Используйте g++, а не gcc для компиляции или компоновки кода C++.   -  person Basile Starynkevitch    schedule 15.09.2014


Ответы (1)


-L принимает путь, а не конкретную библиотеку

person user1018513    schedule 14.09.2014