gcc
e g++
podem ser seletivos sobre a ordem dos argumentos do link. Em geral, você deve especificar os argumentos da biblioteca ( -l
) após os objetos locais. Tente isso:
g++ -O3 netmon.c -o netmon -lrt
Estou tentando compilar o programa cuja fonte é aqui . De acordo com suas instruções, estou compilando usando o comando g++ -O3 -lrt netmon.cpp -o netmon
. Eu recebo esta saída:
netmon.cpp:(.text.startup+0xb3): undefined reference to 'clock_gettime'
collect2: ld returned 1 exit status
Isso é estranho, já que li que a biblioteca rt fornece essa função. O que está acontecendo?
gcc
e g++
podem ser seletivos sobre a ordem dos argumentos do link. Em geral, você deve especificar os argumentos da biblioteca ( -l
) após os objetos locais. Tente isso:
g++ -O3 netmon.c -o netmon -lrt
Por fim, usei gcc
e funcionou:
gcc -o netmon netmon.cpp -lrt
Adicione -lrt após o arquivo de origem, exemplo:
g++ -O3 -o netmon netmon.cpp -lrt
Aqui é uma outra discussão sobre o mesmo problema.