+ Responder ao Tópico



  1. #1

    Padrão erro compilação

    Pessoal estou tendo o seguinte erro de compilação. Não sou programador e apenas executei os comandos básico: ./configure e make ( onde esta acontecendo os erros ). Não faço idéia do que seria esse erro, ja procurei em fóruns mas nada.
    Obrigado a todos.

    make[1]: Entering directory `/home/cesar/tmp/sshguard-1.3'
    make[1]: Leaving directory `/home/cesar/tmp/sshguard-1.3'
    make all-recursive
    make[1]: Entering directory `/home/cesar/tmp/sshguard-1.3/src'
    make[2]: Entering directory `/home/cesar/tmp/sshguard-1.3'
    make[2]: Leaving directory `/home/cesar/tmp/sshguard-1.3'
    Making all in fwalls
    make[2]: Entering directory `/home/cesar/tmp/sshguard-1.3/src/fwalls'
    make[3]: Entering directory `/home/cesar/tmp/sshguard-1.3'
    make[3]: Leaving directory `/home/cesar/tmp/sshguard-1.3'
    make[2]: Nada a ser feito para `all'.
    make[2]: Leaving directory `/home/cesar/tmp/sshguard-1.3/src/fwalls'
    make[2]: Entering directory `/home/cesar/tmp/sshguard-1.3/src'
    make[3]: Entering directory `/home/cesar/tmp/sshguard-1.3'
    make[3]: Leaving directory `/home/cesar/tmp/sshguard-1.3'
    gcc -I. -O2 -g -O2 -o sshguard attack_parser.o attack_scanner.o sshguard.o sshguard_whitelist.o sshguard_log.o sshguard_procauth.o simclist.o fwalls/libfwall.a
    sshguard.o(.text+0x2b0): In function `main':
    /home/cesar/tmp/sshguard-1.3/src/sshguard.c:178: undefined reference to `pthread_create'
    sshguard.o(.text+0x5f8): In function `pardonBlocked':
    /home/cesar/tmp/sshguard-1.3/src/sshguard.c:292: undefined reference to `pthread_testcancel'
    sshguard.o(.text+0x69f):/home/cesar/tmp/sshguard-1.3/src/sshguard.c:304: undefined reference to `pthread_testcancel'
    collect2: ld returned 1 exit status
    make[2]: ** [sshguard] Erro 1
    make[2]: Leaving directory `/home/cesar/tmp/sshguard-1.3/src'
    make[1]: ** [all-recursive] Erro 1
    make[1]: Leaving directory `/home/cesar/tmp/sshguard-1.3/src'
    make: ** [all] Erro 2

  2. #2

    Padrão

    Seguinte cara... Pra compilar programas com threads é necessário o link -lpthread no comando gcc.
    (...)
    make[3]: Leaving directory `/home/cesar/tmp/sshguard-1.3'
    gcc -I. -O2 -g -O2 -o sshguard attack_parser.o attack_scanner.o sshguard.o sshguard_whitelist.o sshguard_log.o sshguard_procauth.o simclist.o fwalls/libfwall.a
    sshguard.o(.text+0x2b0): In function `main':
    (...)

    Você pode ver que durante a compilação ele não mostra o -lpthread. Isso pode ser por 3 motivos:

    1. Bug no pacote de instalação;
    2. A biblioteca pthread não foi encontrada;
    3. Não foi utilizado o argumento correto no ./configure e/ou make.

    Caso haja algum bug no pacote de instalação procura no site dessa aplicação algum patch ou coisa parecida. Ou tenta editar o MAKEFILE e adicionar o link -lpthread.

    Tenta descobrir qual o nome do pacote que contem a biblioteca pthread pra sua distro e instala. Muito provavelmente você vai precisar dos aqruivos -dev (desenvolvimento).

    Dá uma olhada se o ./configure dele aceita algum argumento. Ou se dá pra passar algum parâmetro pro make...

    Bem, é isso ai...
    Qualquer coisa posta ai...