Visual Studio 2017 для Dymola не может открыть stdio.h - PullRequest
2 голосов
/ 30 апреля 2019

Я пытаюсь использовать Visual Studio 2017 в качестве компилятора в Dymola 2019. Я установил все компоненты в VS2017 для C ++ (насколько я мог найти).Но когда я пытаюсь протестировать компилятор в Dymola, я получаю сообщение об ошибке:

Compiling and linking the model (Visual C++). 

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.9.11
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x86'
"Testing 32-bit compilation" 
dsmodel.c
dsmodel.c(1): fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory

Error generating Dymosim. 

Я также пытался с Visual Studio 2015, но он также не удался.

Compiling and linking the model (Visual C++). 

ERROR: Cannot determine the location of the VS Common Tools folder.
"Testing 32-bit compilation" 
'cl' is not recognized as an internal or external command,
operable program or batch file.

Error generating Dymosim.

Я также не смог найти stdio.h в папке VS2017 в любом месте.Но он находится в отдельной папке WindowsSDK в программных файлах.

Тест компилятора должен работать (по крайней мере, из моего прошлого опыта работы с dymola и VS, не уверен, что что-то напутало с более новыми версиями этих инструментов)

Ответы [ 3 ]

1 голос
/ 06 мая 2019

Хорошо, получается, что, хотя у меня были права администратора, отдел информационных технологий фактически не давал мне возможность получить доступ к реестру, то есть к regedit, и он был просто отключен.

Итак, после его включения я могу подтвердить, что теперь Dymola отлично работает с VS 2017, а также с 2015 годом.

И, очевидно, dymola должен иметь доступ к regedit для компиляции (не знаю, почему).

1 голос
/ 16 июля 2019

Просто чтобы завершить это, у меня также была проблема с правами администратора, но без доступа к реестру, так что Dymola выдал ошибку компилятора. Есть 2 варианта:

  1. Получить доступ к реестру из ИТ.
  2. Если это невозможно, из-за ограничений. Eiter установите инструмент, который обходит реестр или изменяет пути вручную, что я бы порекомендовал, так как инструменты не так серьезны.

Вот решение, как изменить пути хотя бы для VS2013. Прежде всего, вам нужно открыть vcvars32.bat из %ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\bin\ в текстовом редакторе, который вы открыли как администратор. Там вам нужно закомментировать первые 3 строки, которые выполняют невозможный вызов реестра, который устанавливает несколько путей. После этого вам нужно установить эти пути вручную в vcvars32.bat. Наконец, начало vcvars32.bat должно выглядеть так:

    :: @call :GetVSCommonToolsDir
    :: @if "%VS120COMNTOOLS%"=="" goto error_no_VS120COMNTOOLSDIR

    :: @call "%VS120COMNTOOLS%VCVarsQueryRegistry.bat" 32bit No64bit

    @SET VSINSTALLDIR=%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\
    @SET VCINSTALLDIR=%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\
    @SET FrameworkDir32=c:\Windows\Microsoft.NET\Framework\
    @SET FrameworkVersion32=v4.0.30319
    @SET Framework40Version=v4.0
    @SET WindowsSdkDir=%ProgramFiles(x86)%\Windows Kits\8.1\
    @SET ExtensionSdkDir=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.1\ExtensionsSDKs\
    @SET WindowsSDK_ExecutablePath_x86=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\
    @SET WindowsSDK_ExecutablePath_x64=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\

Возможно, вам нужно немного адаптировать некоторые пути для вашей конфигурации.

Для получения дополнительной информации вы можете посмотреть здесь:

В командной строке VS2010 выдается ошибка: Не удается определить местоположение папки VS Common Tools

1 голос
/ 02 мая 2019

Как вы убедились, что вы установили все для C ++ - компиляции?

Для некоторых конфигураций Visual Studio вам необходимо скомпилировать файл C / C ++, чтобы инициировать загрузку фактического компилятора (только IDEустановлен нормально).

(В зависимости от версии и конфигурации администраторов.)

...