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

7

Depois de executar o seguinte comando:

g++ lex.yy.c -lfl

Eu recebo o seguinte erro:

/usr/bin/ld: cannot find -lfl

Como posso resolver isso?

    
por NPK 05.05.2012 / 09:37

2 respostas

8

lex.yy.c é o nome do arquivo de saída padrão para lex , o pré-processador do analisador léxico para C (e C ++). O linker ( ld ) está procurando por um arquivo chamado libfl.so (se estiver vinculando dinamicamente; seria libfl.a se estivesse vinculando estaticamente). Esta é a biblioteca de tempo de execução requerida pelos lexers gerados pelo Flex , uma implementação de lex.

Se você gerou lex.yy.c com flex , verifique se o Flex está instalado corretamente. Além de ter o executável flex em seu caminho, você precisa ter libfl.so e libfl.a (e libfl_pic.a se existir) no caminho de pesquisa da biblioteca (normalmente /usr/lib ou /usr/local/lib , dependendo do se o Flex veio de um pacote do sistema ou não). Se você tiver o Flex em um local não padrão, especifique o caminho de pesquisa da biblioteca com -L :

~/software/flex/bin/flex mylexer.l
g++ lex.yy.c -L ~/software/flex/lib -lfl
    
por 06.05.2012 / 02:18
3

Instalar o pacote flex-devel.x86_64 na minha distribuição do SciOs funcionou para mim.

    
por 10.06.2015 / 10:57

Tags