Не удается скомпилировать при попытке использовать boost::asio::signal_set

Я использую MinGW 4.5.1 для компиляции клиентского приложения (C++, Windows XP) с использованием новейшей версии Boost 1_47. По какой-то причине, которую я не могу определить, когда я перехожу к компиляции с использованием типа boost::asio::signal_set, я получаю ошибку компиляции (boost::asio::signal_set не определяет тип), и при попытке явно включить любой из связанных заголовков signal_set я получаю жалобы на отсутствие файла не найдены (несмотря на то, что файл действительно находится там, где ожидалось). Я без проблем пробовал включать файлы на том же уровне дерева каталогов, кажется, что он зависает только в файле signal_set.hpp (хотя никаких жалоб при использовании полного заголовка asio.hpp, который включает его как включение). Я получаю такое же поведение при попытке использовать boost 1_46_1.

Может у кого-нибудь есть какие-то идеи относительно того, что происходит?


person user854256    schedule 20.07.2011    source источник
comment
Пожалуйста, опубликуйте код, который воспроизводит проблему, чтобы мы могли попробовать. У меня нет проблем с использованием Asio из boost 1.47 на моем Mac.   -  person Sam Miller    schedule 20.07.2011
comment
После некоторого расследования я понял, что неправильно указал на включение повышения с моей рабочей областью Eclipse, которая при подготовке фрагмента кода для воспроизведения обнаруженной проблемы. Я удивлен, что это не имело последствий в другом месте, но теперь все работает. Похоже, ты мне косвенно помог, Сэм, спасибо. СТС   -  person user854256    schedule 20.07.2011
comment
пожалуйста, напишите ответ на свой вопрос, чтобы другие пользователи, которые ищут эту проблему, знали решение.   -  person Sam Miller    schedule 21.07.2011


Ответы (1)


Проблема, с которой я столкнулся, заключалась в том, что я неправильно включал заголовки наддува, как я думал. Обычно я устанавливаю boost в какой-то каталог на жестком диске, скажем, C:\Boost\some_boost_version. Хотя я думал, что указываю на включение новой версии boost в C:\Boost\boost-1_47\boost, внутри дерева каталогов не было уровня для \boost, все было в C:\Boost\boost-1_47. Добавив новый каталог (созданный C:\Boost\boost-1_47\boost) и поместив в него включаемые файлы, моя проблема была решена. Кое-что, что я упустил из виду, когда перенастраивал свои сценарии сборки для сборки библиотек повышения на моей машине.

person user854256    schedule 21.07.2011