/ usr / bin / ld: não é possível encontrar -ll

2

Eu estou tentando construir um LIBS a partir da Computação Tailandesa Laboratório de linguística da fonte.

Estou seguindo as instruções de acordo com o readme, que declara

2. Installation
---------------

2.1) In the libs base directory, type:

$ ./configure
$ make

No entanto, ld reclama de 'não pode encontrar -ll'.

if gcc -DHAVE_CONFIG_H -I. -I. -I../..  -W -Wall -I../../src/libs   -g -O2 -MT libs-predict.o -MD -MP -MF ".deps/libs-predict.Tpo" -c -o libs-predict.o libs-predict.c; \
        then mv -f ".deps/libs-predict.Tpo" ".deps/libs-predict.Po"; else rm -f ".deps/libs-predict.Tpo"; exit 1; fi
mode=link g++  -g -O2  -o libs-predict  libs-predict.o -L../../src/libs -llibs -lm -ll
/usr/bin/ld: cannot find -ll
collect2: ld returned 1 exit status
make[3]: [libs-predict] Error 1 (ignored)

Que biblioteca é essa e que pacote eu preciso instalar para tê-la?

    
por saffsd 29.07.2009 / 06:32

3 respostas

2

A biblioteca O libl.a é classicamente a biblioteca de suporte para AT & T Lex - ele fornece uma versão fictícia de yywrap() e main() e algumas outras funções de suporte. Se você está usando o Flex , então não acho qualquer biblioteca é necessária - o código é independente (contanto que você forneça sua própria versão de yywrap ; caso contrário, use -lfl ). Então, você provavelmente só precisa arranjar para remover o ' -ll ' da linha de comando.

Se isso for muito difícil, crie um arquivo garbage.c contendo:

int podunk = 0;

Compile-o para garbage.o e crie um fictício libl.a :

gcc -c garbage.c
ar r libl.a garbage.o

O vinculador deve pegar essa biblioteca fictícia, não encontrar nada relevante nela e continuar seu caminho feliz.

    
por 29.07.2009 / 07:11
1

durante a compilação de programas lex yacc ... se você receber este erro ...

Erro:

/usr/bin/ld: cannot find -ll 
collect2: error: ld returned 1 exit status

A solução para isso é:

dnf install flex bison
dnf install flex-devel bison-devel
    
por 09.04.2018 / 20:59
0

E se você executar $(which ld) (usando a substituição de comando, ou você pode usar backticks no lugar de $(…) ) em vez de apenas ld ?

Se isso ajudar, digite alias -p e veja se você tem um alias definido para o comando ld que está causando o envio da opção -ll .

    
por 29.07.2009 / 06:37