collect2: error: ld вернул 1 состояние выхода

Я хочу установить nexalign (можно скачать с здесь ) на Ubuntu 13.10. Я ранее установил его на Ubuntu 10 без каких-либо проблем. Я получил ошибку:

gcc   -O9 -Wall -Dthread -lpthread main.o mapping.o interface.o input.o sarray.o mem.o output.o pattern_searching.o pattern_searching_solid.o string_matching.o time.o misc.o bt.o mapping_output.o hash.o r_output.o mapping_solid.o pattern_searching_short.o sort_mapping.o cluster_mapping.o -o nexalign
mapping.o: In function `mapping':
mapping.c:(.text+0x21e): undefined reference to `pthread_create'
mapping.c:(.text+0x276): undefined reference to `pthread_join'
mapping.c:(.text+0x410): undefined reference to `pthread_create'
mapping.c:(.text+0x65e): undefined reference to `pthread_create'
mapping_solid.o: In function `mapping_solid':
mapping_solid.c:(.text+0x1f4): undefined reference to `pthread_create'
mapping_solid.c:(.text+0x23b): undefined reference to `pthread_join'
mapping_solid.c:(.text+0x3dc): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
make: *** [all] Error 1

Когда я меняю 5-ю строку (LD = -lpthread как LD = -l) в файле make, программа была установлена ​​без ошибок. У меня есть базовые знания в C / C ++.

Я что-то пропустил, преобразовав 5-ю строку в «LD = -l»? Или у вас есть какие-либо предложения?

Я искал «спросить портал Ubuntu», чтобы найти ответ, но я не получил полезного.

спасибо.

5
задан 5 March 2014 в 13:18

1 ответ

-lpthread является опцией определить соединение против библиотеки потока posix. Если Ваша компиляция работает, не определяя, что библиотека, она по умолчанию уже, вероятно, включена, таким образом, Вы ничего не "пропускаете".

Согласно это , Ваш исходный make-файл является, вероятно, неправильным, именно поэтому Вы получаете сообщение об ошибке.

0
ответ дан 5 March 2014 в 13:18

Другие вопросы по тегам:

Похожие вопросы: