Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключить boost/asio.hpp 
:(
    Опции темы
polin11
Дата 3.12.2019, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 6.6.2015

Репутация: нет
Всего: нет



ОС 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?    

PM MAIL   Вверх
mabrarov
Дата 3.12.2019, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 12.1.2011
Где: Казань

Репутация: 8
Всего: 9



Версия Boost?

Мой опыт - всегда определять WIN32_LEAN_AND_MEAN на уровне сриптов сборки / проекта для С/C++-кода под Windows. Например, глобально для всех модулей CMake-проекта или вот так (в каждый модуль CMake-проекта) - asio_samples/cmake/internal_utils.cmake и asio_samples/examples/ma_echo_server/CMakeLists.txt
Код

function(ma_config_public_compile_definitions result)
    set(compile_definitions )
    # Additional preprocessor definitions for Windows target
    if(WIN32)
        list(APPEND compile_definitions
            WIN32
            WIN32_LEAN_AND_MEAN
            WINVER=0x0501
            _WIN32_WINNT=0x0501
            _WIN32_WINDOWS=0x0501
            _WIN32_IE=0x0600
            _UNICODE
            UNICODE
            _WINSOCK_DEPRECATED_NO_WARNINGS)
    endif()
    # If using Intel C++ Compiler with Visual Studio
    if(MSVC AND (${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel"))
        # If Intel C++ Compiler 16.0 and Visual Studio 2015+
        if((CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL "16") AND ((MSVC_VERSION EQUAL 1900) OR (MSVC_VERSION GREATER 1900)))
            # Apply fix decribed at https://software.intel.com/en-us/articles/limits1120-error-identifier-builtin-nanf-is-undefined
            list(APPEND compile_definitions
                "__builtin_huge_val()=HUGE_VAL"
                "__builtin_huge_valf()=HUGE_VALF"
                "__builtin_nan=nan"
                "__builtin_nanf=nanf"
                "__builtin_nans=nan"
                "__builtin_nansf=nanf")
        endif()
    endif()
    set(${result} "${compile_definitions}" PARENT_SCOPE)
endfunction()
...
project(ma_echo_server)
...
ma_config_public_compile_definitions(cxx_public_compile_definitions)
ma_config_private_compile_options(cxx_private_compile_options)
...
add_executable(${PROJECT_NAME}
    ${cxx_headers}
    ${cxx_sources})
...
target_compile_definitions(${PROJECT_NAME}
    PUBLIC
    ${cxx_public_compile_definitions}
    PRIVATE
    ${cxx_private_compile_definitions})


Это сообщение отредактировал(а) mabrarov - 3.12.2019, 13:47
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1116 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.