collect2: erro: ld retornou 1 status de saída

5

Eu quero instalar o nexalign (pode ser baixado de aqui ) no Ubuntu 13.10. Eu instalei anteriormente no Ubuntu 10 sem nenhum problema. O erro que recebi é:

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

Quando eu mudo a quinta linha (LD = -lpthread como LD = -l) no arquivo make o programa foi instalado sem nenhum erro. Eu tenho conhecimento básico em C / C ++.

Eu sinto falta de alguma coisa convertendo a quinta linha para "LD = -l"? Ou você tem alguma sugestão?

Eu procurei "ask ubuntu portal" para encontrar a resposta, mas não obtive uma resposta útil.

obrigado.

    
por sivmamma 05.03.2014 / 10:12

1 resposta

0

-lpthread é uma opção para especificar a vinculação à biblioteca de threads do posix. Se a sua compilação funcionar sem especificar essa biblioteca, ela provavelmente já está incluída por padrão, então você não "perde" nada.

De acordo com este , seu makefile original provavelmente está incorreto, é por isso que você recebe a mensagem de erro.

    
por noleti 13.07.2014 / 05:39