Ошибка при включении boost.asio на Cygwin 64 - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь использовать boost.asio в своем проекте C ++, используя Cygwin 64-bit. Однако даже такая простая программа:

// compiled by: g++ -g -std=c++11 -D_XOPEN_SOURCE=500 -c -o build/server.o src/server.cpp

#include <boost/asio.hpp>

int main(int argc, const char** argv) {
    return 0;
}

Вызывает большой поток сообщений об ошибках. GCC жалуется, что не может найти такие символы, как EAI_SERVICE, getaddrinfo или host_name. Полный журнал ошибок можно найти здесь: https://pastebin.com/RwpX3bx3

В этот вопрос здесь , предлагается добавить -D_XOPEN_SOURCE=500 в командную строку. Но, как вы видите, я компилирую его с -D_XOPEN_SOURCE=500, и он не работает. Я также пытался удалить и переустановить libboost-devel через установщик Cygwin, но это также не сработало.

(РЕДАКТИРОВАТЬ: Нет, без -D_XOPEN_SOURCE=500 он тоже не работает. Без него вы получите: https://pastebin.com/AExBa2pL)

Что здесь не так?

1 Ответ

0 голосов
/ 18 января 2019

Проблема в -std=c++11, который ограничивает область действия функций. Компиляция работает без каких-либо ограничений.

$ g++ -c server.cpp -o server.o
$ ls -s server.o
164 server.o
...