Я разрабатываю приложение, которое будет использовать некоторые из API-интерфейсов SCTP (Stream Control Transmission Protocol), таких как sctp_bindx
, sctp_connectx
и т. Д.
Моя версия ядра 3.13.0-49-generic.
Если я пытаюсь скомпилировать свой код, я получаю
fatal error: netinet/sctp.h: no such file or directory.
Если я устанавливаю пакет lksctp-tools
, то мой код компилируется.
Могу ли я использовать API без установки какой-либо библиотеки libsctp
? Поскольку я прочитал, что SCTP поддерживается версиями кенел> 2.1
По крайней мере, для 14,04, apt-file
говорит:
[romano:~] % apt-file search netinet/sctp.h
libsctp-dev: /usr/include/netinet/sctp.h
таким образом скомпилировать любой код это #include
s файл sctp.h
необходимо установить пакет libsctp-dev
и его зависимости через
sudo apt-get install libsctp-dev
Если Вы хотите сделать это на низком уровне (ядро прямой syscall доступ и т.д.), необходимо ли, вероятно, копировать весь шаблонный код библиотеки---, почему Вы сделали бы это? Вы не делаете этого с sys_open()
и друг, Вы используете libc
обернуть их приятно.
Получите больше информации об этом (и любой) пакет с apt show libsctp-dev
.
Для установки этого нажмите Ctrl + Высокий звук + T для движения в терминал и тип:
apt-get install libsctp-dev
/sbin/init
являющийся процессом PID=1. Добавление --privileged=true
, как предложено @sonjaya sonjaya ниже решенного проблема.
– DimG
30 January 2019 в 04:36