Отремонтировал.
Собирается теперь и в WindowsXP.
Источник проблем -- строка
в файле
include/netlink/core.h в ветке
Код: Выделить всё
#if defined(_WIN32) || defined(__WIN32__) || defined(_MSC_VER)
(вот потому в линуксе и всё нормально было).
Точнее, не она сама, а тот факт, что данная строка оказывалась до системных include-файлов и ломала
stdio.h
В самом
core.h ниже включался
string, который по цепочке доставал до
stdio.h и там заменял имя С++ - ному
snprintf на
_snprintf, в результате чего и возникал конфликт.
В
webGet.cc файл
string тоже включался после
include/netlink/socket.h, который включает
core.h и т.д.
Короче -- никогда не включайте ничего своего перед системными include-файлами.
Ну, кроме маленького h-файла с настройками для системного h-ника, как, например, файл с
предусмотренными #define-ами для отключения ненужного в windows.h для ускорения компиляции.
Потом в Makefile для win ещё добавил
Код: Выделить всё
ADD_LIBRARIES := -Wl,-lwsock32 -Wl,-lws2_32
а то оно не находило нужные вещи.
Ну и отремонтированный архив.
Cобирать в линуксе просто
make, в win командой
make WIN=1
p.s. Работоспособность виндового exe не проверял, так как XP у меня живёт в VirtualBOX-е и выхода в интернет не имеет. Сетка ей расшарена, но не та подсеть, где роутер

, до моей платы достучаться может и ладно.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.