Qt + wchar_t + VS2005 |
Здравствуйте, гость ( Вход | Регистрация )
Qt + wchar_t + VS2005 |
Flex Ferrum |
28.11.2007, 3:10
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 26.11.2007 Пользователь №: 26 Спасибо сказали: 0 раз(а) Репутация: 0 |
Суть в следующем. В отличии от предыдущих версий компиляторов, в VC 8.0 интерпретацию типа wchar_t как синонима unsigned short надо включать опцией /Zc:wchar_t-. Т. е. по умолчанию wchar_t интерпретируется этим компилятором как самостоятельный тип. Несложно убедиться, что при сборке Qt эта опция явно указывается. В ряде случаев (наверное даже, в большинстве) это не вызывает особых проблем, но ровно до тех пор, пока Qt не используется в связке с другими библиотеками, как то, например, boost и stl. boost обычно компилируется без этой опции (и это правильно, на мой взгляд), STL (если используется штатная), то полностью зависит от настроек проекта. Так вот, очевидно, что в ряде случаев, совместное использование этих библиотек, собранных с опциями по умолчанию, невозможно, т. к. одни и те же объявления типов (std::wstring, например) начинают интерпретироваться по-разному, и приложение элементарно не линкуется. Я вышел из этой ситуации пересобрав Qt без указанной опции. Понятно, что сборка получилась, гм, несколько нестандартная. Так вот, собственно, вопрос - есть ли другие варианты выхода из такой ситуации?
Сообщение отредактировал Flex Ferrum - 28.11.2007, 3:11 |
|
|
ViGOur |
28.11.2007, 10:31
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Вот что написано у тролей по поводу использования stl:
Цитата If you want to use stl in a non Qt sentence, then you don't need to enable this option, but it would be wise to do CONFIG+=stl in your .profile as this turns it on in the compiler if necessary. Visual C++ needs stl to be turned on in your .pro file for example, otherwise it will issue a lot of warnings that mention the -GX option.
|
|
|
Текстовая версия | Сейчас: 23.12.2024, 5:39 |