Я заметил, что некоторые встроенные среды не поддерживают заголовок Netinet/in.h в проектах C/C ++. Как правило, у них есть какой-то другой заголовок, который определяет структуру sockaddr_in на своем месте (например, в случае компиляции с системой сборки ESP-IDF, они указывают LWIP/Sockets.h как местоположение их Sockaddr_in struct и имеет много подобных применений). Похоже, что это часть библиотеки POSIX, поэтому я предполагаю, что решающим фактором является то, составлена ли система для опор POSIX или, по крайней мере, эта часть. Я не уверен, как определить, собираюсь ли я для системы, соответствующей этой части Posix. < /P>
это гарантировано Unix? Должен ли я проверить, собираюсь ли я компилироваться для UNIX, и если да, то как лучше всего это сделать? Беглый поиск сообщил бы мне, что некоторые (или, возможно, большинство ) дистрибуции Linux, и, таким образом, некоторые дистрибутивы Unix, не являются Posix-Conformant, но у моего Ubuntu есть заголовок Netinet/in.h , так что дает?
Подробнее здесь: https://stackoverflow.com/questions/797 ... h-in-cmake