Запуск приложения созданного как release, но имеется зависимость от debug dll |
Здравствуйте, гость ( Вход | Регистрация )
Запуск приложения созданного как release, но имеется зависимость от debug dll |
AD |
17.9.2008, 12:02
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Вопрос крайне путаный и сложный. Мое приложение (под Visual Studio 2005 and Qt 4.3.2, также использованы библиотеки (производства нашей фирмы) Sahara and Styx) на моей машине запускается без проблем.
Релизная версия приложения запускается почти на всех машинах. НО: есть исключения - на машине, на которой установлен MS Visual Studio 2008, оно упало. Под Microsoft Vista не пробовал. У кого какие соображения по поводу таких свистоплясок? Буду благодарен за любую помощь! |
|
|
Litkevich Yuriy |
17.9.2008, 13:01
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Цитата но имеется зависимость от debug dll а от каких конкретно?
|
|
|
AD |
17.9.2008, 13:19
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Цитата Цитата но имеется зависимость от debug dll а от каких конкретно?А тебе они что-то скажут? StyxCLM.dll, StyxDataStorage.dll, StyxDataSupport.dll, StyxDemCLM.dll, StyxSystem.dll, StyxUtils.dll! Объясню почему не созданы релизы, потому что никому они не нужны были. А для того, чтобы собрать под релиз, надо изрядно упариться - множество настроек менять, смотреть и править ошибки во многих файлах, - времени на это у меня совсем нет! |
|
|
Andrew Selivanov |
18.9.2008, 12:26
Сообщение
#4
|
Участник Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6 |
Вопрос крайне путаный и сложный. Мое приложение (под Visual Studio 2005 and Qt 4.3.2, также использованы библиотеки (производства нашей фирмы) Sahara and Styx) на моей машине запускается без проблем. Релизная версия приложения запускается почти на всех машинах. НО: есть исключения - на машине, на которой установлен MS Visual Studio 2008, оно упало. Под Microsoft Vista не пробовал. У кого какие соображения по поводу таких свистоплясок? Буду благодарен за любую помощь! Маловато информации - выясни где именно оно упало (т.е. запусти отладчик на той машине), оно вообще то инициализировалось? Теория 1: Где то в недрах твоей программы используются статические данные, инициализация которых происходит при запуске, там то у тебя все и падает, например убивается стек и пошло поехало. Теория 2: Где то в недрах твоей программы используются статические данные (объекты) и они завязаны друг на друга. Причем проблема в том, что порядок инициализации нарушен, что приводик к падениям на некоторых машинах. PS: Думаю проблема не в Студии, т.к. все, что там могло измениться из используемого тобой - так это DLL libc runtime. Можешь попробовать поставить Redist от студии в которой ты это собирал. Сообщение отредактировал Andrew Selivanov - 18.9.2008, 12:30 |
|
|
AD |
18.9.2008, 13:56
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Маловато информации - выясни где именно оно упало (т.е. запусти отладчик на той машине), оно вообще то инициализировалось? Теория 1: Где то в недрах твоей программы используются статические данные, инициализация которых происходит при запуске, там то у тебя все и падает, например убивается стек и пошло поехало. Теория 2: Где то в недрах твоей программы используются статические данные (объекты) и они завязаны друг на друга. Причем проблема в том, что порядок инициализации нарушен, что приводик к падениям на некоторых машинах. PS: Думаю проблема не в Студии, т.к. все, что там могло измениться из используемого тобой - так это DLL libc runtime. Можешь попробовать поставить Redist от студии в которой ты это собирал. Проблема в том, что если на эти машины поставить студию 2005, то почти уверен, что проблема пропадет - это я отвечаю на предложение о том, что запустить под дебаггером. А вот как съимитировать эту ошибку на своем компе, ума не приложу. Т.е. причины ошибки узнать - это хорошо, но вот как исправить!!! |
|
|
Andrew Selivanov |
18.9.2008, 15:59
Сообщение
#6
|
Участник Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6 |
Маловато информации - выясни где именно оно упало (т.е. запусти отладчик на той машине), оно вообще то инициализировалось? Теория 1: Где то в недрах твоей программы используются статические данные, инициализация которых происходит при запуске, там то у тебя все и падает, например убивается стек и пошло поехало. Теория 2: Где то в недрах твоей программы используются статические данные (объекты) и они завязаны друг на друга. Причем проблема в том, что порядок инициализации нарушен, что приводик к падениям на некоторых машинах. PS: Думаю проблема не в Студии, т.к. все, что там могло измениться из используемого тобой - так это DLL libc runtime. Можешь попробовать поставить Redist от студии в которой ты это собирал. Проблема в том, что если на эти машины поставить студию 2005, то почти уверен, что проблема пропадет - это я отвечаю на предложение о том, что запустить под дебаггером. а ты не будь почти уверен, возьми и запусти Цитата А вот как съимитировать эту ошибку на своем компе, ума не приложу. Т.е. причины ошибки узнать - это хорошо, но вот как исправить!!! Не обязательно ставить туда студию... поставь visual studio redistributable package, только посмотри вначале под какой версией ты собирал, SP1 или нет (они разные) - еще одна особенность - это работает только для release сборки Microsoft Visual C++ 2005 Redistributable Package (x86) Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) Microsoft Visual C++ 2008 Redistributable Package (x86) |
|
|
Litkevich Yuriy |
18.9.2008, 16:54
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
А вот как съимитировать эту ошибку на своем компе, ума не приложу. запусти прогу BAT'ником, в котором забей в переменную PATH только %system32% и путь к бинарям/библиотекам своей программы, этот же батник пусть и запускает твою программу. Хотя не исключено, что в %system32% есть то что нехватет на другой машине, но все же попробывать можно.
|
|
|
Tonal |
19.9.2008, 10:21
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
А ещё такие падения бывают от неинициализированных переменных и от глюков в многопоточке.
Т.к. в этих случаях идёт работа со случайными значениями, то воспроизвести такие ошибки крайне трудно. |
|
|
AD |
19.9.2008, 11:05
Сообщение
#9
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Да уж... будем чуть позже решать эту проблему. Беда в том, что в этих dll используется наша библиотека, собранная в дебаг-режиме. Пока что 80% машин удовлетворяет.
А за эти релиз-пакеты спасибо! Попробую чуть позже. |
|
|
Текстовая версия | Сейчас: 9.1.2025, 19:10 |