У меня есть программа, которую используют Libevent библиотекикак скрытые динамическое связывание статики связывания
при компиляции программы, компиляции команд, как:
gcc -o myprogram mysource.c mysource.h -levent
поэтому динамическое связывание.
сейчас я хочу запустить эту программу на компьютере, где нет libevent, Мне нужна статическая ссылка, чтобы моя программа могла быть запущена на этом компьютере, Есть ли какие-нибудь простые шаги?
Я попытался -static
, но я получил следующее сообщение об ошибке:
[[email protected] relay]# gcc -o relay -static mysource.c mysource.h -levent -lpcap
/usr/bin/ld: cannot find -lpcap
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
почему?
, если у меня есть несколько разделяемой библиотеке, как -lpcap, -levent, и я только хочу статически связывать libevent, но динамически связывать libpcap, возможно ли это или нет? благодаря! – misteryes
Затем не указывайте опцию '-static', но передайте' libevent.a' в компоновщик (как в первой команде) и добавьте '-lpcap'. – Inspired
Я пробовал 'gcc -o relay -static mysource.c mysource.h /usr/local/lib/libevent.a -lpcap', но у меня были ошибки: например' /home/wgong/Downloads/package/libevent-1.4. 14b-stable/event.c: 150: неопределенная ссылка на clock_gettime'. Зачем? – misteryes