Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.59
mat_for_c
127 / 122 / 26
Регистрация: 26.04.2013
Сообщений: 625
Завершенные тесты: 2
#1

Не найдена зависимая сборка - C++

24.07.2014, 11:59. Просмотров 2522. Ответов 3
Метки нет (Все метки)

Нашел статью, в которой говорится, что OpenMP от VS2005 работает лучше, нежели от VS2010. Собрал проект согласно инструкции; запустил, потестил и согласился с ней. Вот только одно но: собранный экзешник на голой винде не запускается, в журнале событий пишет следующее:

Ошибка при создании контекста активации для "C:\Users\____\Desktop\4 branch\new.exe". Не найдена зависимая сборка "Microsoft.VC80.OpenMP,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762""

Эти параметры прописывались в своем <OpenMP.h>

Как тогда правильно собрать проект?

P.S. И еще мне не понятно из той статьи следующее:
"Это необходимо для корректной подгрузки манифеста в исполняемых и .dll-файлах. Не забудьте, что даже если OpenMP используется в подгружаемых .dll-файлах, манифест нужно прописать и для исполняемого файла!"

Что этим хотели сказать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2014, 11:59     Не найдена зависимая сборка
Посмотрите здесь:

C++ Не найдена ссылка
Точка входа не найдена C++
C++ Ошибка "Перегруженная функция-член не найдена"
точка входа в процедуру не найдена в библиотеке dll C++
Машинно-зависимая оптимизация C++
Точка входа в процедуру __gxx_personality_v0 не найдена C++
Сборка проекта C++
C++ Не найдена или не выполнена сборка
Сборка /MT C++
C++ MinGW. Точка входа в процедуру __gxx_personality_v0 не найдена в библиотеке DLL /brut.exe
C++ Ошибка: "Точка входа в процедуру gxx_personality_sj0 не найдена" при запуске приложения
Точка входа в процедуру InterlockedCompareExchange64 не найдена в библиотеке DLL KERNEL32.DLL C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
Эксперт С++
14887 / 6705 / 1059
Регистрация: 02.05.2013
Сообщений: 10,995
Завершенные тесты: 1
24.07.2014, 20:49     Не найдена зависимая сборка #2
Цитата Сообщение от mat_for_c Посмотреть сообщение
Ошибка при создании контекста активации для "C:\Users\____\Desktop\4 branch\new.exe". Не найдена зависимая сборка "Microsoft.VC80.OpenMP,processorArchitecture="x86",publicKey Token="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762 ""
Нужно распостранять библиотеки Visual C++ Runtime и OpenMP вместе с программой.
Лежат они примерно по такому пути:
C:\Program Files\Microsoft Visual Studio 8.0\VC\redist\x86\Microsoft.VC80.CRT и
Microsoft.VC80.OPENMP (если программа 64-битная, тогда вместо x86 надо брать из x64).

В папке с exe нужно создать две папки с такими же именами - Microsoft.VC80.CRT и
Microsoft.VC80.OPENMP и положить в них соответствующее содержимое.

Так должно работать.
Да, все dll-ки должны быть в точности тех же версий, которые использовались
для сборки проекта, иначе ничего не выйдет.

Цитата Сообщение от mat_for_c Посмотреть сообщение
P.S. И еще мне не понятно из той статьи следующее:
"Это необходимо для корректной подгрузки манифеста в исполняемых и .dll-файлах. Не забудьте, что даже если OpenMP используется в подгружаемых .dll-файлах, манифест нужно прописать и для исполняемого файла!"
Что этим хотели сказать?
Просто напоминание, что для корректного запуска программы нужен манифест.

Цитата Сообщение от mat_for_c Посмотреть сообщение
Нашел статью, в которой говорится, что OpenMP от VS2005 работает лучше, нежели от VS2010.
Ох уж этот Хабр !
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
24.07.2014, 21:15     Не найдена зависимая сборка #3
Цитата Сообщение от Убежденный Посмотреть сообщение
Просто напоминание, что для корректного запуска программы нужен манифест.
Нет, без этих прагм в манифесте приложения, собранного 2010 студией, не будет ссылки на рантайм 2005 и грузиться он не будет, нужно будет включать манифест 2005 студии руками:

http://msdn.microsoft.com/ru-ru/libr...=vs.80%29.aspx
mat_for_c
127 / 122 / 26
Регистрация: 26.04.2013
Сообщений: 625
Завершенные тесты: 2
25.07.2014, 09:19  [ТС]     Не найдена зависимая сборка #4
Цитата Сообщение от Убежденный Посмотреть сообщение
Microsoft.VC80.CRT
Я все же в 10-й студии делал, там с параметром /MT обошлось. А вот библиотеку vcomp.dll пришлось достать из указанного пути + файл манифеста этой библиотеки Microsoft.VC80.OpenMP.manifest (для этого пришлось поставить VS2005 на виртуальную машину), положил эти 2 файла вместе с прогой, запустил на голой 7-ке, результат: ошибка. В журнале событий было написано, что версия dll не совпадает... В <OpenMP.h> изменил
Цитата Сообщение от mat_for_c Посмотреть сообщение
version="8.0.50727.762 "
на 8.0.50727.42 и заработало.

Цитата Сообщение от Убежденный Посмотреть сообщение
Ох уж этот Хабр !
а что в нем такого? к тому же данная проблема OpenMP обсуждалась на stackoverflow
Yandex
Объявления
25.07.2014, 09:19     Не найдена зависимая сборка
Ответ Создать тему
Опции темы

Текущее время: 16:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru