Я пытаюсь скомпилировать программу, источником которой является здесь . Согласно его инструкциям, я собираю с помощью команды g++ -O3 -lrt netmon.cpp -o netmon
. Я получаю такой вывод:
netmon.cpp:(.text.startup+0xb3): undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
Это странно, так как я прочитал , что библиотека rt предоставляет эту функцию. Что происходит?
В конце концов я использовал gcc
вместо этого, и это сработало:
gcc -o netmon netmon.cpp -lrt
gcc
и g++
могут быть требовательны к порядку аргументов ссылки. В общем, вы должны указывать аргументы библиотеки (-l
) после локальных объектов. Попробуйте вместо этого:
g++ -O3 netmon.c -o netmon -lrt
Добавьте -lrt после исходного файла, например:
g++ -O3 -o netmon netmon.cpp -lrt
Здесь другое обсуждение той же проблемы.