Cygwin "не может найти -lreadline" - PullRequest
       13

Cygwin "не может найти -lreadline"

0 голосов
/ 11 февраля 2019

У меня проблема с созданием Makefile в C ++.Мне нужно связать библиотеку readline с моим кодом, но я продолжаю получать эту ошибку.

/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lreadline collect2: error: ld returned 1 exit status make: *** [Makefile:5: tokenizer] Error 1

У меня сейчас есть папка readline, которую я скачал ссайт библиотеки GNU Readline в папке cygwin64 / usr / include.

В моем коде tokenizer.cpp у меня также есть #include <readline/readline.h>, но ранее я продолжал получать сообщение об ошибке, которое было исправлено путем помещения моей папки readline в каталог, в котором она находится сейчас, поэтому я предположил, что это былправильное место, чтобы положить его, пока эта ошибка не возникла.

В моем каталоге cygwin / usr у меня нет каталога lib, поэтому я не уверен, что перемещение или копирование моей папки readline в другой каталог решит проблему.Кроме того, я не совсем уверен, что еще может быть не так, кроме самого моего Makefile

CC=gcc

tokenizer : tokenizer.cpp
    $(CC) -o $@ -g $< -lreadline.c

Любая помощь или предложения будут с благодарностью!

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Используйте cygcheck, чтобы найти пакет, содержащий правильную библиотеку импорта (для общих * заканчивающуюся dll.a)

$ cygcheck -p usr/lib/libreadline.dll.a
Found 3 matches for usr/lib/libreadline.dll.a
...
libreadline-devel-7.0.3-3 - libreadline-devel: GNU readline and history libraries (development)

Используйте установку для установки libreadline-devel

enter image description here

0 голосов
/ 11 февраля 2019

Чтобы облегчить жизнь Cygwin, используйте apt-cyg , чтобы загрузить необходимые libreadline зависимости:

apt-cyg install libreadline7 libreadline-devel mingw64-i686-readline mingw64-x86_64-readline
...