2015-10-25 4 views
0

Хорошо, поэтому я запускаю Eclipse Mars.1 (с компилятором MinGW) на ОС Windows 8.1, и я пытаюсь включить использование потоков POSIX. Я загрузил pthreads win32 из: https://www.sourceware.org/pthreads-win32, так как в Windows нет библиотеки pthread, включенной в качестве linux. После того, как я скачал файл .zip я уже распакованы файлы, как это:Как добавить потоки posix в eclipse на окнах (MinGW)

  1. pthreadGC2.dll в C: \ MinGW \ Bin
  2. pthread.h, sched.h, semaphore.h в C: \ MinGW \ включают
  3. libpthreadGC2.a в C: \ MinGW \ Lib

Перейти к Eclipse, я уже прямо нажал проект -> свойства -> C/C++ Build -> настройки -> MinGW C компоновщик, теперь здесь возникает проблема, я понятия не имею, что мне следует добавить в раздел «Библиотеки/Разное». Eclipse распознает #include <pthread.h> (его не красный цвет - подчеркивая его) и функции pthread.h, но как только я попытаюсь его построить, он говорит следующее:

15:10:11 **** Инкрементный Сборка конфигурации Отладка для проект ASD **** Информация: Внутренний строитель используется для сборки gcc -o ASD.exe qweqwe.o -lpthread c:/mingw/bin /../ lib/gcc/mingw32/4.8.1/.. /../../../mingw32/bin/ld.exe: не может найти -lpthread collect2.exe: ошибка: л.д. возвращается 1 выход статус

15:10:11 построить завершенности (взял 122ms)

Я не могу понять, что я делаю неправильно, я попытался изменить имя библиотеки (на вкладке настроек компоновщика) на pthreadGC2, но если я сделаю это, Eclipse просто подчеркивает pthread_create и говорит, что это неопределенная ссылка на _imp_pthread_create.

Если кто-то попытался и преуспел в этом, пожалуйста, поделитесь своей мудростью. Заранее спасибо!

+0

Я не знаю eclipse, так что просто еще один намек: с помощью 'gcc' вы не должны просто * link * libpthread (с' -lpthread'), но вместо этого используйте специальный параметр '-pthread', который * также * ссылки libpthread. Конечно, это не поможет, пока libpthread не найден компоновщиком, так что это на самом деле просто намек на потом. –

+0

Если я компилирую с 'gcc', и я думаю, что mingw основан на gcc. то требуемые параметры будут следующими: '-L \ MinGW \ lib -lpthreadGC2', или поскольку pthread является« специальным »параметром, тогда:' -pthread' – user3629249

+0

Я уже пробовал каждую чертову комбинацию, я понятия не имею, почему это не работает. Есть ли какой-либо компилятор, подходящий для eclipse, который имеет встроенный pthread? –

ответ

2

Is there any compiler suitable for eclipse that has pthread integrated in itself?

Да. Получите GCC (для Windows) от mingw-w64 или от TDM-GCC. Затем в Eclipse-CDT просто добавьте -pthread (не -lpthread) в Разное ->Флаги компоновщика. Как говорит @FelixPalmen, -pthread - это вариант компоновщика, который заботится о привязке pthread. Никакие другие настройки не нужны. По умолчанию включены и пути библиотеки.

0

Или вы можете просто использовать установщик MinGW для его загрузки.

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