ASIO вечно недоволен... не компилит libTorrent, WinSock.h has already been included |
Здравствуйте, гость ( Вход | Регистрация )
ASIO вечно недоволен... не компилит libTorrent, WinSock.h has already been included |
Lestat |
7.10.2008, 19:08
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 12 Регистрация: 11.6.2008 Из: Москва Пользователь №: 198 Спасибо сказали: 0 раз(а) Репутация: 0 |
ASIO ругается такой вот ошибкой... очень часто
я каким-то макаром ее обходил, но теперь хочу разобраться почему она меня преследует... компилю пример работы с libTorrent код взял отсюданеужели у автора тоже была ошибка и он выложил заведомо кривой пример... что-то я сомневаюсь. Могу предположить что у меня кривой ASIO но я компилил на этих же инклудах примеры самого асио, некоторые свои исходники... все работает, хотя затык такой всегда был. обходил шаманством с инклудами... помогите, пожалуйста, определить в чем проблема! Спасибо! |
|
|
Litkevich Yuriy |
7.10.2008, 20:29
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Tonal |
7.10.2008, 20:37
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
А если честно попробовать включить WinSock.h до заголовков libTorrent-а?
|
|
|
Lestat |
7.10.2008, 21:18
Сообщение
#4
|
Студент Группа: Новичок Сообщений: 12 Регистрация: 11.6.2008 Из: Москва Пользователь №: 198 Спасибо сказали: 0 раз(а) Репутация: 0 |
Litkevich Yuriy, у меня в проекте было много заголовочных файлов и я фактически подключал их так чтобы этой ошибки не было...
ошибка я так понимаю вылетает когда уже засветился где-то выше #define WIN32 а он в windows.h есть, в файлах boost'а для работы с date-time Tonal, я такие эксперименты раньше делал... и так, и сяк, а оно не работает... это ошибка - единственное серьезное неудобство с которым я сталкивался на данный момент по всяким там функциям, классам, и т.д. примеры есть, а когда начинаю собирать в одном проекте (юзал wxWidgets, boost вместе с asio, OpenGL, Pango еще некоторая сопроводиловка), то не всегда компилится нормально У меня практически всегда ASIO начинает ругаться на WinSock.h при некоторых неосторожных изменениях в инклудах) пока можно выкрутится если вписать #define WIN32_LEAN_AND_MEAN перед включением всех файлов прямо перед
у меня даже скомпилить получилось, только теперь либы нужны самого libtorrent пытался собрать сам какую-нить libtorrent.lib, но нашел вот это опенсорсное на основе libtorrent LiberTV Вот ТУТ полезная статья. В ней можно найти ссылку на LiberTV SDK (82.7 MB) там либы буста, DirectX 9 SDK и Windows Media Player 10 SDK. Я так понимаю там собрали все что нужно для компиляции исходников. Попробую оттуда повыдирать все что нужно для компиляции libtorrent'а |
|
|
Andrew Selivanov |
8.10.2008, 10:57
Сообщение
#5
|
Участник Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6 |
Litkevich Yuriy, у меня в проекте было много заголовочных файлов и я фактически подключал их так чтобы этой ошибки не было... ошибка я так понимаю вылетает когда уже засветился где-то выше #define WIN32 а он в windows.h есть, в файлах boost'а для работы с date-time Tonal, я такие эксперименты раньше делал... и так, и сяк, а оно не работает... это ошибка - единственное серьезное неудобство с которым я сталкивался на данный момент по всяким там функциям, классам, и т.д. примеры есть, а когда начинаю собирать в одном проекте (юзал wxWidgets, boost вместе с asio, OpenGL, Pango еще некоторая сопроводиловка), то не всегда компилится нормально У меня практически всегда ASIO начинает ругаться на WinSock.h при некоторых неосторожных изменениях в инклудах) пока можно выкрутится если вписать #define WIN32_LEAN_AND_MEAN перед включением всех файлов прямо перед
у меня даже скомпилить получилось, только теперь либы нужны самого libtorrent пытался собрать сам какую-нить libtorrent.lib, но нашел вот это опенсорсное на основе libtorrent LiberTV Вот ТУТ полезная статья. В ней можно найти ссылку на LiberTV SDK (82.7 MB) там либы буста, DirectX 9 SDK и Windows Media Player 10 SDK. Я так понимаю там собрали все что нужно для компиляции исходников. Попробую оттуда повыдирать все что нужно для компиляции libtorrent'а Ну епрст, все же написано C:\boost\boost_1_35_0\boost\asio\detail\socket_types.hpp # if defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_) # error WinSock.h has already been included # endif // defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_) winsock2.h из MSVS 8.0 #ifndef _WINSOCK2API_ #define _WINSOCK2API_ #define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */ //... #endif /* _WINSOCK2API_ */ Вывод: использовать то, что просят (winsock2, и либы mswsock, ws2_32) |
|
|
Lestat |
19.10.2008, 21:33
Сообщение
#6
|
Студент Группа: Новичок Сообщений: 12 Регистрация: 11.6.2008 Из: Москва Пользователь №: 198 Спасибо сказали: 0 раз(а) Репутация: 0 |
Проблема решилась, проблем больше нет!
Скомпилилась либа, собрался проект! простейший торрент килент! качалка заработала Но гимора я охатил прилично... В исходнике, чтобы не было всяких fatal error C1189: #error : WinSock.h has already been included нужно подключить #include "libtorrent/pch.hpp" до подключения #include "libtorrent/entry.hpp" у меня покрайней мере так сработало... для проекта необходимо собрать либу libtorrent.lib... с этим я тоже намучался Выдрал проект либы из исходников опенсорсного клиента Halite Либу получил, но при компилировании проекта на ее основе были ошибки... начал менять настройки проекта либы Когда поставил поставил в настройках проекта Not Set в General->Character set и Multi-threaded Debug (/MTd) в C/C++->Code Ceneration->Runtime Library все стало работать как надо Вобще я так понял если есть ошибки при линковке проекта(не либы, а самого торрент-клиента), то возможно ошибка как раз в том что либу не так собрали... в этих настройках Я юзаю в пректе еще boost, wxWidgets, еще несколько либ и только при таких настройках компиляции либы проект соизволил собраться нормально. |
|
|
Andrew Selivanov |
21.10.2008, 9:00
Сообщение
#7
|
Участник Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6 |
Проблема решилась, проблем больше нет! Скомпилилась либа, собрался проект! простейший торрент килент! качалка заработала Но гимора я охатил прилично... В исходнике, чтобы не было всяких fatal error C1189: #error : WinSock.h has already been included нужно подключить #include "libtorrent/pch.hpp" до подключения #include "libtorrent/entry.hpp" у меня покрайней мере так сработало... для проекта необходимо собрать либу libtorrent.lib... с этим я тоже намучался Выдрал проект либы из исходников опенсорсного клиента Halite Либу получил, но при компилировании проекта на ее основе были ошибки... начал менять настройки проекта либы Когда поставил поставил в настройках проекта Not Set в General->Character set и Multi-threaded Debug (/MTd) в C/C++->Code Ceneration->Runtime Library все стало работать как надо Вобще я так понял если есть ошибки при линковке проекта(не либы, а самого торрент-клиента), то возможно ошибка как раз в том что либу не так собрали... в этих настройках Я юзаю в пректе еще boost, wxWidgets, еще несколько либ и только при таких настройках компиляции либы проект соизволил собраться нормально. Поздравления ЗЫ: намучался как то ставить видеоплеер в старый redhat... для того, чтобы его поставить надо было пересобрать glibc, собрать из исходников rpm, переставить его...,...,...,... просто сказка. Ушло две недели, как щаз помню. А результирующая бумажка с тем, как это делается, напоминает прохождение длинного квеста |
|
|
Текстовая версия | Сейчас: 10.5.2024, 0:54 |