Я пытаюсь использовать библиотеку (http://code.google.com/p/qxmpp/), но я не могу найти имя в библиотеку, чтобы связать ее. Я хочу понять, как вы можете узнать имя библиотеки для использования в параметрах связывания.проблема привязки к linux (не могу найти имя соответствующей библиотеки)
ответ
Похоже, что это только исходный архив - в него не включены никакие двоичные файлы. Вы построили библиотеку из нее? Где это сделал процесс сборки? /usr/lib
или /usr/local/lib
будут обычными подозреваемыми, но прочитайте сборку и установку документации в пакете.
Я установил ее через apt-get на ubuntu, и я нашел файл .a библиотеки «/usr/lib/libqxmpp.a», но ссылка на libqxmpp не работает – Ayoub
Опубликовать компилировать и использовать ссылку, которую вы используете. Вы помещаете '-lqxmpp' в командной строке? – QuantumMechanic
-lqxmpp работал, спасибо. это правило, чтобы назвать библиотеку с префиксом l? – Ayoub
Учитывая, что имя библиотеки libqxmpp.a
и (как вы упоминаете в комментариях), что это в обычном Lib каталога (/usr/lib
), вы можете легко вывести собственные параметры:
gcc
и другие компиляторы переключатель -l
, который находит библиотеку на основе имени, которое вы ему даете. По умолчанию он будет искать пути, указанные GCC во время сборки (обычно /lib
и /usr/lib
), а также любые другие данные, присвоенные /etc/ld.so.conf
. Если добавить переключатель -lX
, он перед именемlib
к имени и по умолчанию добавить.so
и искать любой файл, который выглядит как libX.so
в любом из Lib каталогов он знает.
Работа в обратном направлении, мы можем сделать вывод, что применение gcc
с -lqxmpp
будет искать файл с именем libqxmpp.so
(на самом деле, это выглядит несколько других имен, тоже.) Как мы получаем его искать .a
файл? Эти ar
зубки (man ar
) являются статические библиотеки, поэтому пройти переключатель -static
непосредственно перед библиотекой:
gcc -o progname your.o program.o files.o -static -lqxmpp
(Если вам необходимо связаться с другими библиотеками, вам может понадобиться добавить -Wl,-dynamic
для них, если вы не «т хочет, чтобы они статически или статический ЛИЭС не доступен)
в качестве альтернативы, вы можете это сделать, если вы знаете полный путь:.
gcc -o progname your.o program.o files.o /usr/lib/libqxmpp.a
... И он работает точно так же.
- 1. Как найти имя библиотеки через имя библиотеки?
- 2. Qt5 Linux не может найти библиотеки Qt
- 3. Как найти имя библиотеки glx?
- 4. Статическая привязка библиотеки к Linux
- 5. Я не могу найти библиотеки VLC
- 6. Не могу найти имя 'HammerManager'
- 7. Как я могу найти библиотеки отображения на встроенном Linux
- 8. проблема привязки к фильтруемому dataview
- 9. Проблема привязки к методу FormView
- 10. Проблема привязки к GridView HiddenField
- 11. JAssimp - Не могу найти зависимые библиотеки
- 12. Не удается найти общие библиотеки в Boost (Linux Mint)
- 13. найти имя пользователя в системе Linux вызова
- 14. Собственные библиотеки Linux не найдены
- 15. Отладка встроенной библиотеки привязки
- 16. Как найти имя библиотеки .so-файла?
- 17. linux dlopen не может найти символ статической библиотеки
- 18. Как я могу декодировать имя библиотеки boost?
- 19. Найти «имя» библиотеки (-L -l switch)
- 20. Python 2.7/Linux: ошибка типа привязки библиотеки сокетов
- 21. Linux - найти путь к g ++ lib
- 22. Не могу найти файлы
- 23. ошибка TS2304: Не могу найти имя «Promise»
- 24. Я не могу найти имя функции
- 25. Yii2- получить из соответствующей таблицы имя, чтобы добавить к Sluggable
- 26. cgo cross-compile не удается найти библиотеки
- 27. Найти имя linux distro из java
- 28. Как найти полное доменное имя в Linux?
- 29. Как получить имя модели соответствующей таблицы db
- 30. css позиционирование проблема, не могу найти разницы
В документации библиотеки вам не сообщается? –
В документации ничего не говорится о компиляции – Ayoub