|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
ОС W10 QtCreator(СМake) компилятор Clang подключаю заголовочный файл #include <boost/asio.hpp> падают ошибки при компиляции типа: C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\shared\ws2def.h:235: ошибка: redefinition of 'sockaddr' typedef struct sockaddr { C:\.conan\kzey4w\1\include\boost\asio\detail\socket_types.hpp:24: ошибка: WinSock.h has already been included # error WinSock.h has already been included Для исправления проблемы предлагают добавить #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN #endif дефайн WIN32_LEAN_AND_MEAN означает, что будут отброшены большинство редко используемых функций, макросов и типов Windows. Вопрос: кто-нибудь знает, как подключить boost/asio.hpp не используя #define WIN32_LEAN_AND_MEAN? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 12:12 |
|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
polin11, У тебя Windows.h нигде явно/неявно не подключается? Дело в том, что он подключает библиотеку WinSock первой версии. А Boost::Asio подключает WinSock второй версии. Попробуй так: Код: plaintext 1. 2. 3. 4.
Мне помогало с Asio. Попробуй перенести #include <boost/asio.hpp> чуть повыше в списке подключений. Там довольно легко проблему найти. Но это только мой похожий случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 12:47 |
|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
polin11, Кстати, а чем тебе не нравится WIN32_LEAN_AND_MEAN? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 12:53 |
|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
WIN32_LEAN_AND_MEAN исключает API, такие как криптография, DDE, RPC, Shell и Windows Sockets. Напрягает, что может где-то что-то отвалиться ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 13:00 |
|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
petrav polin11, У тебя Windows.h нигде явно/неявно не подключается? Подключается, я убрал - ничего не изменилось ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 13:07 |
|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
polin11, Вот два работающих варианта: Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2.
Могу посоветовать второй вариант. Потому что Windows.h раз в несколько лет компиляцию ломает своими безумными макросами. Лучше в самый низ. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 13:13 |
|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
polin11 petrav polin11, У тебя Windows.h нигде явно/неявно не подключается? Подключается, я убрал - ничего не изменилось Значит где-то ещё есть подключение Windows.h - в других хидерах. Или явно подключается WinSock.h. У тебя конфликт с файлом WinSock.h - нужно исключить его подключение. Правда у меня компилятор Студии, но симптомы вроде такие же. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 13:31 |
|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
polin11Напрягает, что может где-то что-то отвалиться Отвалится - подключишь нужные заголовки явно вместо братской могилы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 13:56 |
|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
polin11 WIN32_LEAN_AND_MEAN исключает API, такие как криптография, DDE, RPC, Shell и Windows Sockets. Напрягает, что может где-то что-то отвалиться Ааа... Просто так т.е. Тогда лучше всё же WIN32_LEAN_AND_MEAN опрелить, но не перед asio.hpp, а перед windows.h. Перед всеми подключениями windows.h в проекте. А лучше создать свой заголовочник для подключения windows.h, а лучше вообще его не подключать. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2019, 14:14 |
|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
polin11 WIN32_LEAN_AND_MEAN исключает API, такие как криптография, DDE, RPC, Shell и Windows Sockets. Напрягает, что может где-то что-то отвалиться Не отвалится. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 11:43 |
|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
polin11 Вопрос: кто-нибудь знает, как подключить boost/asio.hpp не используя #define WIN32_LEAN_AND_MEAN? Конечно. В одном исходнике используешь boost asio и определяешь WIN32_LEAN_AND_MEAN, в другом исходнике НЕ используешь boost asio и НЕ определяешь WIN32_LEAN_AND_MEAN, и можешь там использовать те самые редкоиспользуемые вещи из WinAPI ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 11:45 |
|
Подключить boost/asio.hpp
|
|||
---|---|---|---|
#18+
petrav polin11 WIN32_LEAN_AND_MEAN исключает API, такие как криптография, DDE, RPC, Shell и Windows Sockets. Напрягает, что может где-то что-то отвалиться Ааа... Просто так т.е. Тогда лучше всё же WIN32_LEAN_AND_MEAN опрелить, но не перед asio.hpp, а перед windows.h. Перед всеми подключениями windows.h в проекте. А лучше создать свой заголовочник для подключения windows.h, а лучше вообще его не подключать. :) Это всё равно, где этот макрос определить, его только windows.h и использует. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2019, 11:46 |
|
|
start [/forum/topic.php?fid=57&msg=39898499&tid=2017505]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
4ms |
others: | 13ms |
total: | 135ms |
0 / 0 |