Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Отсутствует библиотека libpthread  (Прочитано 5622 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ekr0Zis

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Отсутствует библиотека libpthread
« : 21 Марта 2012, 22:36:48 »
Изучаю потоки. Взял небольшой примерчик отсюда http://citforum.univ.kiev.ua/programming/unix/threads/ и попытался скомпилировать командой
gcc threads.c -D_REENTERANT -I/usr/include/nptl -L/usr/lib/nptl –lpthread -o threadsпосле чего получил ошибку компиляции
Цитировать
gcc thread1.c -D_REENTERANT -I/usr/include/nptl -L/usr/lib/nptl –lpthread -o thread1
gcc: ошибка: –lpthread: Нет такого файла или каталога
Порылся в интернете на эту тему, пока не нашел как установить эту библиотеку. Подскажите, пожалуйста, решение.

P.s. Ubuntu 12.04 :)

Оффлайн MEXAHOTABOP

  • Активист
  • *
  • Сообщений: 902
    • Просмотр профиля
Re: Отсутствует библиотека libpthread
« Ответ #1 : 22 Марта 2012, 01:19:13 »
там написано libpthread значит надо вводить -pthread без l
http://fonline.ru/ заходите

Оффлайн Ekr0Zis

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Отсутствует библиотека libpthread
« Ответ #2 : 22 Марта 2012, 05:16:16 »
Тот же результат
Цитировать
gcc thread1.c -D_REENTERANT -I/usr/include/nptl -L/usr/lib/nptl –pthread -o thread1
gcc: ошибка: –pthread: Нет такого файла или каталога

Пользователь решил продолжить мысль 22 Марта 2012, 05:33:54:
Так, ну с компиляцией практически разобрался. Вот таким образом у меня всё компилируется:
gcc thread1.c -D_REENTRANT -I/usr/include/nptl -L/usr/lib/nptl -lpthread -o thread1
Остается ещё один момент. Путей /usr/include/nptl и /usr/lib/nptl у меня не существует.
« Последнее редактирование: 22 Марта 2012, 05:33:54 от Ekr0Zis »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Отсутствует библиотека libpthread
« Ответ #3 : 22 Марта 2012, 06:40:48 »
1) Поищи руководство посвежее
2) убери -D_REENTRANT -I/usr/include/nptl -L/usr/lib/nptl -lpthread
3) добавь ключик -pthread

ничего ставить не надо. всё входит в комплект sudo apt-get install build-essential. ты ведь его поставил, да?


Пользователь решил продолжить мысль 22 Марта 2012, 06:44:10:
там написано libpthread значит надо вводить -pthread без l
спорное утверждение. как научишься плавать воды нальём.
ключ -lpthread заставляет компилятор искать библиотеку libpthread
а ключ -pthread заставляет включить поддержку потоков и цеплять он будет заранее известную ему библиотеку которая реализует API pthread
и не факт что эта библиотека будет называться pthread еще может быть какая-нибудь дикая приписка из архитектуры, версии и еще бог знает чего.
« Последнее редактирование: 22 Марта 2012, 06:45:33 от Yurror »

Оффлайн Ekr0Zis

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Отсутствует библиотека libpthread
« Ответ #4 : 22 Марта 2012, 16:05:33 »
Yurror, благодарю за ответ :)

всё входит в комплект sudo apt-get install build-essential. ты ведь его поставил, да?
Да, стоит, конечно.

1) Поищи руководство посвежее
Может есть какие рекомендации?

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Отсутствует библиотека libpthread
« Ответ #5 : 22 Марта 2012, 20:26:48 »
Подскажу.
У. Стивенс. UNIX. Взаимодействие процессов.

вот еще например https://computing.llnl.gov/tutorials/pthreads/#Compiling

Оффлайн sminder

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Отсутствует библиотека libpthread
« Ответ #6 : 05 Августа 2012, 00:08:21 »
У меня была точно такая же проблема. Решил проблему так:
- НЕ указывал пути к несуществующим каталогам (-I/usr/include/nptl -L/usr/lib/nptl)
- указал путь к библиотеке pthread (-lpthread)
- указал ключ _REENTERANT (-D_REENTERANT)

Итого:
 - строка компиляции: gcc -D_REENTERANT ...
 - строка линкера: g++ -o"my_project_name"  ./main.o   -lpthread

При такой конфигурации все заработало.

 

Страница сгенерирована за 0.061 секунд. Запросов: 25.