Поскольку вы не знаете, что -c
(скомпилировать объектный файл) и -o
(указать вывод file) делать, я бы посоветовал начать с простой исполняемой компиляции. Разберитесь, что такое объектные файлы и как они собираются.
Продолжить со статическими библиотеками. Помните, что статические библиотеки - это всего лишь несколько объектных файлов, заархивированных вместе. Как они указываются компилятору и как компилятор их находит.
Тогда, наконец, попробуйте динамические. Поймите, что они связаны во время выполнения. Это нужно указать, где они находятся. Что они скомпилированы и связаны другим способом (вы уже видели -fPIC
?). Что они могут зависеть друг от друга. Это могущественные звери, которые могут легко вас укусить :)
А простой способ создания статических и динамических библиотек? Забудьте о написании их вручную и используйте cmake. Если вы хотите углубиться, запустите make с VERBOSE = 1
, посмотрите аргументы компилятора и изучите.
Как описано на справочной странице tcpdump , вы можете комбинировать фильтры с ключевыми словами and
, or
и not
. Вы можете использовать круглые скобки для группировки (обратите внимание, что для того, чтобы ваша оболочка правильно анализировала командную строку, вам, вероятно, понадобятся кавычки):
tcpdump -l -I -i en0 -e -s 256 'type mgt and (subtype deauth or subtype disassoc)'