2017-09-18 1 views
0

J'essaie de compiler la version TensorFlow CMake sur Windows qui nécessite que la chaîne d'outils 64 bits ne manque pas de mémoire lors de la compilation. Cependant, même si la chaîne d'outils Visual Studio 14 2015 Win64 est activée dans l'invite de commande, la chaîne d'outils 32 bits est utilisée pour la compilation comme le montre le Gestionnaire des tâches qui affiche les processus MSBuild (32 bit) et . Par conséquent le error: c1060: compiler is out of heap space est jeté un certain point.La chaîne d'outils 32 bits est utilisée pour la compilation même si la chaîne d'outils Visual Studio 14 2015 Win64 est activée

Voici ce que j'ai fait jusqu'ici: Pour activer la chaîne d'outils 64 bits, j'ouvre VS2015 x64 Native Tools Command Prompt. Lors de la configuration de CMake, j'obtiens la sortie

-- Building for: Visual Studio 14 2015 
-- The C compiler identification is MSVC 19.0.24215.1 
-- The CXX compiler identification is MSVC 19.0.24215.1 
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe 
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works 
-- Detecting C compiler ABI info 
-- Detecting C compiler ABI info - done 
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe 
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works 
-- Detecting CXX compiler ABI info 
-- Detecting CXX compiler ABI info - done 
-- Detecting CXX compile features 
-- Detecting CXX compile features - done 
-- Found PythonLibs: C:/Users/kasper/Anaconda3/libs/python35.lib (found version "3.5.2") 
-- Configuring done 
-- Generating done 

alors CMake semble avoir choisi le compilateur 64 bits. Futher, en cours d'exécution cl dans l'invite de commande donne

Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x64 
Copyright (C) Microsoft Corporation. All rights reserved. 

J'ai aussi essayé d'exécuter "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall amd64" avant de configurer CMake mais en vain. La chaîne d'outils 32 bits est toujours utilisée pour la compilation à la fin.

Qu'est-ce qui me manque?

+0

Notez que si vous bidouillé en quelque sorte avec votre Installation de VS, CMake est capable de détecter l'emplacement de votre compilateur même à partir d'une invite 'cmd' ordinaire. Il n'y a donc aucune raison d'ouvrir l'invite VS, il suffit de spécifier quel compilateur vous voulez utiliser pour 'cmake' ou' cmake-gui'. – ComicSansMS

Répondre

4

Lors de l'exécution CMake, vous devez spécifier que vous voulez dans la version 64 bits:

cmake -G "Visual Studio 14 2015 Win64" [...] 

Sinon, dans votre cas, par défaut, il fait la même chose que

cmake -G "Visual Studio 14 2015" [...] 

et le configure en mode 32 bits.

+0

Merci pour votre contribution. Ça m'a un peu plus loin. Maintenant, je suis coincé ici: https://stackoverflow.com/questions/46302725/how-to-pass-cmake-generator-to-a-cmake-external-project –

3

De de CMake de commandline:

Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project 
files. 
Optional [arch] can be "Win64" or "ARM". 

Si vous voulez construire pour cible x64, vous devez spécifier le générateur droit CMake:

CMake -G "Visual Studio 14 2015 Win64" .... 
+0

Merci pour votre contribution! oLen était en premier malheureusement. Voir mon commentaire à sa réponse. –