2009-06-01 9 views
1

Я пытаюсь скомпилировать программу, которую я написал на C++ для задания, которое использует pthreads. Я использую Eclipse в Linux, и у меня не было проблем с компиляцией после добавления «-lpthread» в аргументы компилятора (в g ++, gcc и компоновщик). Однако, когда я собирался запускать и отлаживать, Eclipse дал мне окно с сообщением об ошибке «Launch failed. Binary not found».pthreads компилируется, но двоичный файл не создается

Я попытался вручную скомпилировать его с помощью gcc и g ++ с суффиксами -pthread и -lpthread, а в результате он похож - «gcc: -pthread: Нет такого файла или каталога».

Не уверен, что неправильно, потому что он скомпилирован без проблем, просто не производит exe. Я считаю, что мне, возможно, нужно что-то придумать.

все, что я должен был сделать?

ответ

7

Как вы компилируете? Это должно работать нормально:

gcc -o foo foo.c -lpthread

+0

GCC -pthread ./*.cpp -o Ex2.exe г ++ -pthread ./*.cpp -o Ex2.exe GCC -lpthread ./*.cpp -o Ex2.exe г ++ -lpthread ./ * .cpp -o Ex2.exe не которого произведение. – Nefzen

+2

@Nefzen - не используйте две тире перед pthread, это всего лишь одна тире. –

+1

Вам нужно только один оператор pthread и -lpthread в конце достаточно. – ismail

3

g++ -pthread -ggdb -Wall -pedantic -o myexe *.cpp -lpthread должен работать.

+0

теперь он дает мне «неопределенную ссылку на' void »Запуск (void *) '" ошибка, хотя все еще нет ошибки в Eclipse, и все же она не создает двоичный файл , – Nefzen

+1

Это означает, что компоновщик не может найти расширение шаблона для функции Run(). –

+0

Да, я переместил шаблон в заголовок, должен был подобрать его раньше. Ну, он работает, но я получаю исключение, которое он не ловит, возможно, в другом потоке: \ – Nefzen

Смежные вопросы