Есть ли в компиляторе флаг для предварительной компиляции только IPV6 - PullRequest
2 голосов
/ 31 мая 2011

Я написал код для реализации IPv6, используя настройку флага.Флаг должен быть установлен в заголовочном файле перед процессом компиляции, если мне нужно включить часть IPv6.Есть ли какой-либо флаг, предоставляемый самим компилятором, так что мне просто нужно использовать инструкцию #ifdef COMPILER_FLAG_FOR_IPV6, чтобы включить часть кода IPv6.Если нет, то часть IPv4 компилируется.Я не хочу вручную определять флаг, а использовать встроенный флаг для IPV6.

1 Ответ

2 голосов
/ 31 мая 2011

Совместимость с IPv6 не зависит от поддержки компилятора, а зависит от ОС-заголовочных файлов.Не существует стандартного способа проверки этого как такового.(Как уже было отмечено, вы, вероятно, захотите, чтобы CMake / AutoConf / Какая-то другая система сборки обнаружила это).

Вы также можете достичь того, что вам кажется более прямым, в Linux, например, вы, вероятно, можетеdo:

#include <sys/socket.h>
#ifdef AF_INET6
....
#endif

Я не уверен, что хотел бы сделать ставку на то, насколько это портативно / надежно, но я бы предположил, что это сработает с любой реализацией sys/socket.h, и быстрый просмотрwinsock2.h, похоже, тоже имеет #define из AF_INET6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...