Russian Qt Forum
Ноябрь 23, 2024, 15:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Зависимость от CRT 8.0 при сборке под 9.0  (Прочитано 3736 раз)
Godfather
Гость
« : Июнь 02, 2008, 19:57 »

всем привет
у меня следующая проблема:

C++ / Qt 4.3.5
Visual Studio 2008

приложение использует формы, Xml, Sql
и 1 dll, собираемую в том же салюшене - zlib 1.2.3

если указываю /Mt (статическое подключение рантайма) то
exe.intermediate.manifest имеет следующий вид
Цитировать
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

если /MDd (динамическое подключение рантайма) то
Цитировать
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

вопрос - откуда зависимость от C++ 2005 (8.0 ) ??

Qt я собираю тем же 2008ым компилятором
Цитировать
configure -platform win32-msvc2005 -vcproj -qmake -process -fast -debug-and-release -plugin-sql-mysql -stl -arch windows -shared

смотрю через Dependency Walker, библиотеки Q*4.dll зависят от:
MSVCP90.DLL
MSVCR90.DLL
KERNEL32.DLL

только 9.0-зависимости
в салюшене есть Setup Project, он так же не обнаруживает ничего про 8.0

в итоге, если не ставить Visual C++ Runtime Libraries 2005, то приложение не запускается
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Июнь 02, 2008, 22:06 »

Цитировать
Qt я собираю тем же 2008ым компилятором
Цитировать
configure -platform win32-msvc2005 -vcproj -qmake -process -fast -debug-and-release -plugin-sql-mysql -stl -arch windows -shared
а может всетаки по привычке 2005'ым ?
Тогда этоб обяснило.
Записан

Юра.
Godfather
Гость
« Ответ #2 : Июнь 03, 2008, 08:13 »

для 4.4 есть QMAKESPEC спецом для 2008 http://doc.trolltech.com/4.4/supported-platforms.html
а в доках по 4.3 есть только 2005, хотя с таким конфигом компилируется и под 2008

по идее, из библиотек Qt и вытекает зависимость от 2005, но я прошелся Dependency Walker'ом по всем библам Qt (перед этим ещё раз их принудительно собрал) и везде MSVC*90.DLL

что же делать.. ещё проверю zlib, может там откуда-то 2005 взялся

ибо очень не хочется на конечной стадии разработки переходить на 4.4, по опыту с RC чревато массой глюков с UI
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.