none
Проблема запуска на другом компьютере exe-файла, созданного в Intel Fortran с использованием Visual Studio

    Общие обсуждения

  • Добрый день.

    На компьютере установлены Visual Studio 2015 и Intel Fortran  (при этом установлены библиотеки Microsoft Visual C++ Redistributable (x86 и x64) 2010-2012-2013-2015 ).  Полученный exe-файл должен запускаться на другом компьютере, на котором не установлены Visual Studio 2015 и Intel Fortran.

    Для выполнения это exe-файла нужны библиотеки следующих версий:

    Microsoft Visual C++ Redistributable (x86 и x64) 2010  - 10.0.40219

    Microsoft Visual C++ Redistributable (x86 и x64) 2012  -  11.0.60610

    Microsoft Visual C++ Redistributable (x86 и x64) 2013  -  12.0.21005

    Microsoft Visual C++ Redistributable (x86 и x64) 2015  -  14.0.24210

    Подскажите, пожалуйста, откуда их можно скачать (загрузки с сайта Microsoft предлагают последние версии этих библиотек).

    Спасибо.

    17 марта 2017 г. 13:59

Все ответы

  • Не знаком с тонкостями разработки на Фортране в VS, но не пытаетесь ли Вы запустить на "другом" компьютере версию Debug Вашего приложения? Распространяемые пакеты к этому не готовы. Им нужен Release.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    17 марта 2017 г. 15:53
  • Добрый День.

    Поиск не пробовали использовать?

    Microsoft Visual C++ Redistributable (x86 и x64) 2010  - 10.0.40219

    Microsoft Visual C++ Redistributable (x86 и x64) 2012  -  11.0.60610

    Microsoft Visual C++ Redistributable (x86 и x64) 2013  -  12.0.21005

    Microsoft Visual C++ Redistributable (x86 и x64) 2015  -  14.0.24210


    Я не волшебник, я только учусь MCP, MCTS, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение". Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий. Блог IT Инженера, Twitter.

    17 марта 2017 г. 16:28
    Модератор
  • Добрый день.

    Поиск пробовали. Но предлагаются , н.п. для Redist 2015 несколько версий, но только не та, которая нужна. Та же ситуация с Redist  2013 и 2012.

    Нужые версии для Redist 2012 и 2013 удалось установить с дистрибутива Visual Studio 2015.  Для Redist 2015 в дистрибутиве Visual Studio имеется более раняя версия.

    Где-то надо добыть именно Microsoft Visual C++ Redistributable (x86 и x64) 2015  -  14.0.24210

    20 марта 2017 г. 12:50
  • Добрый день.

    Спасибо за подсказку "версия Release". Теперь при запуске приложения не нужны библиотеки Visual Studio (н.п. VCRUNTIME140D.dll).

    Ситуация изменилась. Но проблема осталась.

    1. Удалось установить нужные версии для Redist 2012 и 2013 (из дистрибутива Visual Studio 2015). А вот для Redist 2015 в комплекте этого дистрибутива есть более ранняя версия. С сайта Microsoft удалось скачать версию 14.0.24212 (а нужна 14.0.24210, доступны более ранние).      2. В результате при запуске exe-файла появляется ошибка "Ошибка при запуске приложения (0x0000007b)."      3. На форуме Intel рассматривается похожая проблема и везде говориться, что библиотеки Redist  должны быть одинаковых версий на компьютере, где приложение разрабатывалось, и на компьютере, где приложение запускается.   4. Хотелось бы для чистоты добыть нужную версию Redist 2015 (14.0.24212).  Или есть еще какая-то причина ошибки 0x0000007b.

    20 марта 2017 г. 13:20
  • а вариант механически перенести необходимые файлы с машины разработчика на целевую машину, и подсунуть их в каталог с программой, вы не рассматривали?
    20 марта 2017 г. 13:51
  • Так делать не хотелось бы, но как вариант попробовать можно было бы , чтобы убедиться что проблема действительно в версии библиотеки.

    Пытаюсь найти где находятся Microsoft Visual C++ Redistributable (x86 и x64) 2015.

    Если знаете, подскажите, пожалуйста.

    20 марта 2017 г. 13:57
  • а вариант механически перенести необходимые файлы с машины разработчика на целевую машину, и подсунуть их в каталог с программой, вы не рассматривали?

    Скорее всего, так не сработает. Распространяемые пакеты регистрируются в подсистеме Windows SxS именно для того, чтобы одновременно "существовать" в нескольких версиях. И подкладывание проблемы не решит.

    У меня возник вопрос: а не является ли "другой" системой Windows XP? С тех времен формат exe-файла, формируемого компилятором Visual C++, несколько изменился. Именно поэтому студия предлагает отдельный набор "сборочных" инструментов для XP. В фортране есть что-то подобное?


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    20 марта 2017 г. 15:15
  • "Пытаюсь найти где находятся Microsoft Visual C++ Redistributable (x86 и x64) 2015"

    Program Files\Microsoft Visual Studio 14.0\VC\Redist\

    msvcr140.dll - библиотека выполнения си. Must have, я полагаю.

    msvcp140.dll, mfc140.dll, mfc140u.dll, mfcm140.dll, mfcm140u.dll - по ситуации

    "Скорее всего, так не сработает. Распространяемые пакеты регистрируются в подсистеме Windows SxS именно для того, чтобы одновременно "существовать" в нескольких версиях. И подкладывание проблемы не решит."
    Может быть, но попробовать стоит. Статья Determining Which DLLs to Redistribute как бы намекает, что подкладывание и установка пакетов являются равноценными способами.

    Добавлено: а вы пробовали установить подходящий вашей версии пакет отсюда?


    • Изменено VadimTagil 20 марта 2017 г. 16:30 дополнение
    20 марта 2017 г. 16:05
  • В таких случаях следует использовать специальные утилиты чтоб выяснить что именно надо приложению. Например можно использовать бесплатный Dependency Walker или dumpbin.exe из состава VS.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    20 марта 2017 г. 16:09
  • В таких случаях следует использовать специальные утилиты чтоб выяснить что именно надо приложению. Например можно использовать бесплатный Dependency Walker или dumpbin.exe из состава VS.

    Ни то, ни другое версию не покажет, т.к. такая информация не сохраняется в таблице импорта двоичного модуля.

    Может быть "поиграть" с манифестом приложения, если, конечно, его формирует компилятор Фортрана. Полная версия библиотек С++ может быть указана в нем.


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    21 марта 2017 г. 19:12
  • Почти во всех таких модулях версия есть в имени. Но версия я думаю не важна, главное узнать какого модуля нет, а потом уже можно выяснить с чем он поставляется.

    This posting is provided "AS IS" with no warranties, and confers no rights.

    22 марта 2017 г. 1:57