2
votes

Visual Studio 2017 pour Dymola ne peut pas ouvrir stdio.h

J'essaie d'utiliser Visual Studio 2017 comme compilateur dans Dymola 2019. J'ai installé tous les composants dans VS2017 pour C ++ (pour autant que je puisse trouver). Mais lorsque j'essaye de tester le compilateur dans Dymola, j'obtiens un message d'erreur comme suit:

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.

J'ai également essayé avec Visual Studio 2015, mais cela a également échoué.

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. 

Je n'ai pas non plus trouvé stdio.h dans le dossier VS2017. Mais il est situé dans un dossier séparé WindowsSDK dans les fichiers programme.

Le test du compilateur devrait fonctionner (du moins d'après mon expérience passée avec dymola et VS, je ne sais pas si quelque chose a mal tourné avec les nouvelles versions de ces outils)


0 commentaires

3 Réponses :


1
votes

Comment avez-vous vérifié que vous avez tout installé pour la compilation C ++?

Pour certaines configurations de Visual Studio, vous devez compiler un fichier C / C ++ pour déclencher le téléchargement du compilateur réel (seul l'EDI est installé normalement).

(Selon la version et la configuration des administrateurs.)


3 commentaires

J'ai moi-même les droits d'administrateur, il est donc facile pour moi d'apporter des modifications à l'installation de VS. J'ai déclenché l'installation C ++ en créant un nouveau projet. Et, en fait, j'ai parcouru toute la liste et installé tout ce que je pouvais trouver dans VS qui était lié de quelque manière que ce soit à la compilation C ++.


Pour être clair: après avoir créé le projet, vous l'avez également compilé? Si tel est le cas, il semble que vous deviez contacter votre canal d'assistance habituel.


Oui, la compilation fonctionnait correctement dans VS. Il s'avère que je n'avais pas accès à regedit même si j'étais administrateur. et c'était le problème. Je l'ai activé à partir du service informatique et maintenant dymola fonctionne.



1
votes

Ok, donc il s'avère que même si j'avais les droits d'administrateur, le service informatique ne m'a pas donné la possibilité d'accéder au registre, c'est-à-dire regedit, et il a simplement été désactivé.

Donc, après l'avoir activé, je peux confirmer que maintenant Dymola fonctionne bien avec VS 2017 ainsi que 2015.

Et apparemment, dymola a besoin d'accéder à regedit pour la compilation (je ne sais pas pourquoi).


0 commentaires

1
votes

Juste pour terminer ceci car j'avais aussi le problème que j'avais les droits d'administrateur, mais pas d'accès au registre, de sorte que Dymola a jeté l'erreur du compilateur. Il y a 2 possibilités:

  1. Accédez au registre à partir du service informatique.
  2. Si cela n'est pas possible, en raison de restrictions. Eiter installe un outil qui contourne le registre ou modifie les chemins manuellement, ce que je recommanderais, car les outils ne sont pas si sérieux.

Voici la solution comment changer les chemins au moins pour VS2013. Tout d'abord, vous devez ouvrir le vcvars32.bat à partir de % ProgramFiles (x86)% \ Microsoft Visual Studio 12.0 \ VC \ bin \ dans un éditeur de texte que vous avez ouvert en tant qu'administrateur. Là, vous devez commenter les 3 premières lignes, qui effectuent l'appel de registre impossible qui définit plusieurs chemins. Ensuite, vous devez définir ces chemins manuellement dans le vcvars32.bat . Enfin, le début du vcvars32.bat devrait ressembler à ceci:

    :: @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\

Vous devez peut-être adapter légèrement certains chemins à votre configuration.

Pour plus d'informations, vous pouvez regarder ici:

L'invite de commande VS2010 donne une erreur: impossible de déterminer l'emplacement du dossier VS Common Tools


0 commentaires