The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Multithreaded приложение"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Multithreaded приложение"
Сообщение от drone Искать по авторуВ закладки(ok) on 26-Окт-04, 12:18  (MSK)
Привет, all.
FreeBSD 5.2.1.
Есть аткая проблема. Надо скомпилировать приложение
с потоками (threads).
Если я просто пишу в командной строке:

router# g++ multithread.cpp

, то получаю:

.../var/tmp/ccZ9Wqo2.o(.text+0x48): undefined reference to 'pthread_create'

Если пишу

router# g++ multithread.cpp -libpthread

, то получаю

/usr/bin/ld: cannot find -libpthread

Почему так?
Заранее спасибо.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Multithreaded приложение"
Сообщение от Pablo Искать по авторуВ закладки on 26-Окт-04, 12:47  (MSK)
>
>Если пишу
>
>router# g++ multithread.cpp -libpthread
>
>, то получаю
>
>/usr/bin/ld: cannot find -libpthread
>
>Почему так?
>Заранее спасибо.

Попробуй так
router# g++ multithread.cpp -lpthread

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Multithreaded приложение"
Сообщение от drone Искать по авторуВ закладки(ok) on 26-Окт-04, 16:59  (MSK)
>>
>>Если пишу
>>
>>router# g++ multithread.cpp -libpthread
>>
>>, то получаю
>>
>>/usr/bin/ld: cannot find -libpthread
>>
>>Почему так?
>>Заранее спасибо.
>
>Попробуй так
>router# g++ multithread.cpp -lpthread


Та же хня.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Multithreaded приложение"
Сообщение от temny emailИскать по авторуВ закладки(ok) on 26-Окт-04, 17:38  (MSK)
bash-3.00$ uname -r
5.2.1-RELEASE-p3
bash-3.00$ cc serv.c
/var/tmp//ccXqNWjT.o: In function `main':
/var/tmp//ccXqNWjT.o(.text+0x1140): undefined reference to `pthread_create'
bash-3.00$ cc serv.c -lc_r
done
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Multithreaded приложение"
Сообщение от Soldier Искать по авторуВ закладки(??) on 26-Окт-04, 17:54  (MSK)
>Попробуй так
>router# g++ multithread.cpp -lpthread

В БСД вроде надо так:

g++ multithread.cpp -pthread

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Multithreaded приложение"
Сообщение от drone Искать по авторуВ закладки(ok) on 26-Окт-04, 18:51  (MSK)
>>Попробуй так
>>router# g++ multithread.cpp -lpthread
>
>В БСД вроде надо так:
>
>g++ multithread.cpp -pthread


Чувак, спасибо тебе большое!
Работает.
Но откуда ты это узнал- в мане я этого не нашел.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Multithreaded приложение"
Сообщение от Soldier Искать по авторуВ закладки(??) on 26-Окт-04, 21:45  (MSK)
>>>Попробуй так
>>>router# g++ multithread.cpp -lpthread
>>
>>В БСД вроде надо так:
>>
>>g++ multithread.cpp -pthread
>
>
>Чувак, спасибо тебе большое!
>Работает.
>Но откуда ты это узнал- в мане я этого не нашел.

Просто тусуюсь здесь уже давно :) Проскальзывала как-то подобная тема,
тоже давали всякие советы, пока другой чувак не просветил, что  под Линукс
нужно компилить с опцией -lpthread или -pthread, а под BSD  только с
-pthread

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Multithreaded приложение"
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 28-Окт-04, 20:04  (MSK)
>>>Попробуй так
>>>router# g++ multithread.cpp -lpthread
>>
>>В БСД вроде надо так:
>>
>>g++ multithread.cpp -pthread
>
>
>Чувак, спасибо тебе большое!
>Работает.
>Но откуда ты это узнал- в мане я этого не нашел.

Наверное твои маны хреновые, вот выдержка из man gcc:
-pthread
Adds support  for  multithreading  with  the  pthreads library. This option sets flags for both the preprocessor and linker.

Ручное подключение libpthread.so это чисто линуксовая фича, на всяких макосях, аиксах и иже с ними мультитрединг всегда был заботой компилятора а не юзера.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Multithreaded приложение"
Сообщение от chip emailИскать по авторуВ закладки(??) on 27-Окт-04, 10:38  (MSK)
>>Попробуй так
>>router# g++ multithread.cpp -lpthread
>
>В БСД вроде надо так:
>
>g++ multithread.cpp -pthread

насколько я понимаю, начиная с 5.3 будет все "вполне стандартно" gXX *.c -lpthread

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Multithreaded приложение"
Сообщение от drone Искать по авторуВ закладки(ok) on 27-Окт-04, 13:43  (MSK)
Мужики, подскажите, почему не распечатывается "Tread!" ?

#include stdio.h
#include pthread.h

void *start_routine(void* a){
printf("Thread!\n");
}

int main(){
printf("Starting...\n");

pthread_create(NULL, NULL, start_routine, NULL);

return 0;
}
............
pthread_create возвращает 22

Компилю:
router# g++ multithread.cpp -pthread

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Multithreaded приложение"
Сообщение от kir Искать по авторуВ закладки(??) on 27-Окт-04, 14:52  (MSK)
>Мужики, подскажите, почему не распечатывается "Tread!" ?
>

#include <stdio.h>
#include <pthread.h>

>
pthread_t pthread_main;

>void *start_routine(void* a){
> printf("Thread!\n");
>}
>
>int main(){
> printf("Starting...\n");
>
> pthread_create(NULL, NULL, start_routine, NULL);
>
  pthread_join(thread_main, NULL);

> return 0;
>}
>............
>pthread_create возвращает 22
>
уже не возращает

>Компилю:
>router# g++ multithread.cpp -pthread


  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Multithreaded приложение"
Сообщение от Pablo Искать по авторуВ закладки on 27-Окт-04, 14:54  (MSK)
>Мужики, подскажите, почему не распечатывается "Tread!" ?
>
>#include stdio.h
>#include pthread.h
>
>void *start_routine(void* a){
> printf("Thread!\n");
>}
>
>int main(){
> printf("Starting...\n");
>
> pthread_create(NULL, NULL, start_routine, NULL);
>
> return 0;
>}
>............
>pthread_create возвращает 22
>
>Компилю:
>router# g++ multithread.cpp -pthread

А если чуть изменить main

int main(){
        pthread_t thread;

        printf("Starting...\n");

        pthread_create(&thread, NULL, start_routine, NULL);

        pthread_join(thread, NULL);

        return 0;
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Multithreaded приложение"
Сообщение от Pablo Искать по авторуВ закладки on 27-Окт-04, 14:56  (MSK)
>>Мужики, подскажите, почему не распечатывается "Tread!" ?

>
>А если чуть изменить main
>
>int main(){
>        pthread_t thread;
>
>        printf("Starting...\n");
>
>        pthread_create(&thread, NULL, start_routine, NULL);
>
>
>        pthread_join(thread, NULL);
>
>        return 0;
>}

Опоздал :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Multithreaded приложение"
Сообщение от drone Искать по авторуВ закладки(ok) on 27-Окт-04, 15:15  (MSK)
Всем большой спасиб :)
Все заработало. Проста привык прогать под Win. Там все проще.
Кому интересно:

#include <stdio.h>
#include <pthread.h>
#include <unistd.h>

void *start_routine(void* a){
printf("Thread!\n");
pthread_exit(NULL);
}

int main(){
printf("Starting...\n");
pthread_t e_th;
if(pthread_create(&e_th, NULL, start_routine, NULL)!=0)
perror("pthread_create");

sleep(5);
return 0;
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру