Não é possível compilar o libpcap no Dell SUSE Enterprise
Pergunta
Estamos usando o Dell SUSE Enterprise.Sem escolha.
O SUSE não possui libpcap-devel ou algo semelhante nos repositórios zypper.
Baixei e instalei o libpcap do repositório GIT.libpcap requer que flex e bison sejam compilados.A versão flex 2.5.35 está no repositório, assim como o bison.
No entanto, não consigo nenhum problema que use libpcap-devel para compilar.O script autoconf falha nas tentativas de vinculação em libpcap.so:
configure:3633: $? = 1
configure:3636: checking whether we are using the GNU C++ compiler
configure:3665: g++ -c conftest.cpp >&5
configure:3672: $? = 0
configure:3689: result: yes
configure:3698: checking whether g++ accepts -g
configure:3728: g++ -c -g conftest.cpp >&5
configure:3735: $? = 0
configure:3836: result: yes
configure:3861: checking dependency style of g++
configure:3952: result: gcc3
configure:3981: checking for a BSD-compatible install
configure:4049: result: /usr/bin/install -c
configure:4067: checking for pcap_lookupdev in -lpcap
configure:4102: gcc -o conftest -g -O2 conftest.c -lpcap >&5
/usr/local/lib/libpcap.so: undefined reference to `pcap_lex'
collect2: ld returned 1 exit status
configure:4109: $? = 1
configure: failed program was:
Executando nm no arquivo, encontro:
$ nm /usr/local/lib/libpcap.so | grep pcap_lex
U pcap_lex
claro, pcap_lex é realmente um #define de yylex.
Eu não estou perdendo a cabeça aqui.Estou tentando descobrir por que nada disso é compilado corretamente no Suse.Alguém tem alguma ideia?
Solução
De alguma forma, tudo o que você fez para compilar o libpcap fez com que ele não fosse compilado corretamente.
Sem:
- o
config.log
arquivo do diretório libpcap; - o Makefile do diretório libpcap;
- a saída da compilação no diretório libpcap;
será impossível determinar o que foi e, portanto, será impossível consertar o processo para que a libpcap seja construída corretamente.Eu tenho nunca vi um problema com libpcaps construído no Linux, então não consigo determinar o que está acontecendo aqui.
(Se fornecer esta informação, estará a ajudar não só a si próprio, mas a todas as pessoas que relataram problemas semelhantes, mas que se recusaram a responder a perguntas semelhantes e, portanto, não forneceram nenhuma das informações em questão.)