Название: InterLockedCompareExchange@12 и .NET Framework Отправлено: sergek от Сентябрь 16, 2014, 18:12 Коллеги,
два вопроса по установке приложений. Почему Qt 5.3.1 open source содержит libstdc++-6.dll от 07.03.2014, программа установленная с этой версией дает ошибку "Точка входа в процедуру InterLockedCompareExchange@12 не найдена в библиотеке DLL libstdc++-6.dll"? А в предыдущих версиях libstdc++-6.dll имеет дату 17.04.2013 и с ней программа работает. И еще один вопрос - опытным путем определил, что для работы моей программы, собранной с Qt 5.3.1 требуется в WinXP SP2 .NET Framework 3.5. Та же самая программа, собранная в 5.1 работает без проблем с .NET 3.0. Я не встречал такого требования в документации. Неужели что-нибудь пропустил? Название: Re: InterLockedCompareExchange@12 и .NET Framework Отправлено: Alex Custov от Сентябрь 16, 2014, 18:33 NET framework ни при чём, скорее всего нужен MSVC redistributable. "Точка входа в процедуру InterLockedCompareExchange@12 не найдена в библиотеке DLL libstdc++-6.dll" - это известный баг MinGW, лечится только подсовыванием правильной DLL, где этот символ есть, либо перекомпиляцией.
Название: Re: InterLockedCompareExchange@12 и .NET Framework Отправлено: sergek от Сентябрь 16, 2014, 19:43 NET framework ни при чём, скорее всего нужен MSVC redistributable. Попробовал с MVC 2012 Redistributable Package, не работает....это известный баг MinGW, лечится только подсовыванием правильной DLL, где этот символ есть, либо перекомпиляцией. Перекомпиляцией Qt?Название: Re: InterLockedCompareExchange@12 и .NET Framework Отправлено: Alex Custov от Сентябрь 16, 2014, 19:50 Перекомпиляцией Qt? Перекомпиляцией проекта. Под ту версию Qt/MinGW которая установлена на целевой машине. Либо таскать все DLL с собой, и именно те DLL, напротив которых была компиляция. Название: Re: InterLockedCompareExchange@12 и .NET Framework Отправлено: sergek от Сентябрь 17, 2014, 14:49 Либо таскать все DLL с собой, и именно те DLL, напротив которых была компиляция. Я так и делаю. Весь фокус в том, что программа не хочет работать с библиотеками, с которыми она компилировалась, и, сделанная в версии 5.3.1, прекрасно работает с библиотеками предыдущей версии, 5.1. Название: Re: InterLockedCompareExchange@12 и .NET Framework Отправлено: Alex Custov от Сентябрь 17, 2014, 15:11 Я так и делаю. Весь фокус в том, что программа не хочет работать с библиотеками, с которыми она компилировалась, и, сделанная в версии 5.3.1, прекрасно работает с библиотеками предыдущей версии, 5.1. Приложи сюда пример со всеми DLL как ты копируешь на другой компьютер, в программе достаточно одного main() безо всякой логики. Название: Re: InterLockedCompareExchange@12 и .NET Framework Отправлено: Bepec от Сентябрь 17, 2014, 15:14 А у меня такое чуйство что у тебя стоит две версии Qt. Просто пути прописаны к первой, с ней и компилируется. А длл ты поток копируешь из второй :)
Название: Re: InterLockedCompareExchange@12 и .NET Framework Отправлено: sergek от Сентябрь 19, 2014, 17:53 Приложи сюда пример со всеми DLL как ты копируешь на другой компьютер, в программе достаточно одного main() безо всякой логики. Пожалуйста: https://www.dropbox.com/s/b6pbtftrrd39cwk/UfebsGen-exe_133.rar?dl=0 (https://www.dropbox.com/s/b6pbtftrrd39cwk/UfebsGen-exe_133.rar?dl=0)Здесь либы от 5.3.1, а libstdc++-6.dll от 5.2 (17.04.2013). Положите вместо нее библиотеку от 5.3.1 (07.03.2013), и, может быть, увидите. Только .net должен быть не выше 3.0. Если будете экспериментировать с установкой/удалением .net, не забудьте перезагружаться ;) И свой каталог Qt переименуйте. А у меня такое чуйство что у тебя стоит две версии Qt. Просто пути прописаны к первой, с ней и компилируется. А длл ты поток копируешь из второй :) Нет. Всегда использую только одну версию. Название: Re: InterLockedCompareExchange@12 и .NET Framework Отправлено: Alex Custov от Сентябрь 19, 2014, 18:07 Пожалуйста: https://www.dropbox.com/s/b6pbtftrrd39cwk/UfebsGen-exe_133.rar?dl=0 (https://www.dropbox.com/s/b6pbtftrrd39cwk/UfebsGen-exe_133.rar?dl=0) Здесь либы от 5.3.1, а libstdc++-6.dll от 5.2 (17.04.2013). Положите вместо нее библиотеку от 5.3.1 (07.03.2013), и, может быть, увидите. Ссылка на этот символ присутствует в python27.dll и PythonQt.dll, что говорит о том, что они собраны более старой версией MinGW (а конкретно 4.8.0). Решением, как я и говорил, будет пересборка всего одной версией MinGW. Название: Re: InterLockedCompareExchange@12 и .NET Framework Отправлено: sergek от Сентябрь 19, 2014, 19:40 Ссылка на этот символ присутствует в python27.dll и PythonQt.dll, что говорит о том, что они собраны более старой версией MinGW (а конкретно 4.8.0). Решением, как я и говорил, будет пересборка всего одной версией MinGW. Мдаа. Ведь пересобирал, а положить забыл. Спасибо! |