Ошибка в boost/config
От: andy99rus Россия  
Дата: 20.11.09 12:27
Оценка:
При попытке использования некоторой компилируемой библиотеки из состава boost (filesystem) натолкнулся на интересную проверку в файле auto_link.hpp:
#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
#  pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
#  pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
#  error "Incompatible build options"
#endif


RTC в MSVC НЕ требуют обязательного использования "debug runtime", но прекрасно работают и с "release runtime". Основное требование — НЕ использование оптимизации (для VS8.0, для остальных студий также неизменно):

If you compile your program at the command line using any of the /RTC compiler options, any pragma optimize instructions in your code will silently fail. This is because run-time error checks are not valid in a release (optimized) build.

You should use /RTC for development builds; /RTC should not be used for a retail build. /RTC cannot be used with compiler optimizations (/O Options (Optimize Code)). A program image built with /RTC will be slightly larger and slightly slower than an image built with /Od (up to 5 percent slower than an /Od build).


Но при попытке совместного использования RTC и оптимизации компилятор и так выдаст ошибку несовместимых опций, так что доп. проверка является лишней:

1>Compiling...
1>cl : Command line error D8016 : '/O2' and '/RTC1' command-line options are incompatible
1>opactaminod — 1 error(s), 0 warning(s)


Теперь вопрос... хотя скорее просьба
Может кто-нибудь из уважаемых участников сообщества RSDN уже состоит в мэйл-листе (или принимает участие в разработке boost) и может сообщить ответственным за config (Beman Dawes, Vesa Karvonen, John Maddock) об этой ошибке. К сожалению мои познания английского языка не позволяют мне внятно сформулировать суть проблемы

Заранее спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.