Windows 7 x64 / VS2012 üzerinde derleme gerektiren düğüm modülleri yüklenemiyor


192

Derleme gerektiren modüllerden hiçbirini kuramıyorum. Tüm bunlar aşağıdaki hatayla başarısız olur:

MSBUILD : error MSB3411: Could not load the Visual C++ component "VCBuild.exe". ...

Çevrem:

  • Windows 7 Enterprise x64, sürüm 6.1.7601
  • düğüm x86 0.8.16
  • npm 1.2.0
  • düğüm-gyp 0.8.2
  • Visual Studio 2012 ve çok sayıda paket

İlgili ortam değişkenleri:

Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShel l\v1.0;C:\Program Files\TortoiseGit\bin;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;c:\tools;c:\tools\node

DAHİL, LIB, LIBPATH vb. Yok.

Sorunu kısa bir araştırma yaptım ve aşağıdaki kurulumla manuel derlemenin (doğrudan VCBuild.exe ve msbuild.exe çağrılması) manuel olarak klonlanmış git için başarılı olduğunu anladım: //github.com/einaros/ws.git:

SET Configuration=Release
SET PATH=%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcpackages
SET PATH=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin;%PATH%
SET PATH=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Common7\IDE;%PATH%
SET PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
SET PATH=%SystemRoot%\system32;%PATH%

SET INCLUDE=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\include
SET INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%

SET LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Lib
SET LIB=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\lib;%LIB%

SET MSBUILD="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe"

VCBuild.exe C:\Tools\node\ws\build\bufferutil.vcproj "Release|Win32" /useenv
VCBuild.exe C:\Tools\node\ws\build\validation.vcproj "Release|Win32" /useenv
%MSBUILD% build/binding.sln /verbosity:diagnostic /nologo /p:Configuration=Release;Platform=Win32

Düğüm-gyp'i aynı değişkenlerle çağırmayı denedim ve başarısız oldu:

C:\!> git clone https://github.com/einaros/ws.git
C:\!> cd ws
C:\!\ws>node-gyp configure
...
C:\!\ws>node-gyp build
gyp info it worked if it ends with ok
gyp info using node-gyp@0.8.2
gyp info using node@0.8.16 | win32 | ia32
gyp info spawn C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
gyp info spawn args [ 'build/binding.sln',
gyp info spawn args   '/clp:Verbosity=minimal',
gyp info spawn args   '/nologo',
gyp info spawn args   '/p:Configuration=Release;Platform=Win32' ]
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
C:\Users\User\.node-gyp\0.8.16\deps\uv\include\uv.h(55): fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory [C:\!\
ws\build\binding.sln]
C:\Users\User\.node-gyp\0.8.16\deps\uv\include\uv.h(55): fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory [C:\!\
ws\build\binding.sln]
gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (c:\Tools\node\node_modules\node-gyp\lib\build.js:255:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:99:17)
gyp ERR! stack     at Process._handle.onexit (child_process.js:678:10)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "c:\\Tools\\node\\\\node.exe" "c:\\Tools\\node\\node_modules\\node-gyp\\bin\\node-gyp.js" "build"
gyp ERR! cwd C:\!\ws
gyp ERR! node -v v0.8.16
gyp ERR! node-gyp -v v0.8.2
gyp ERR! not ok

Belki bu konuda bazı fikirleriniz olacak?

Teşekkürler.


vcvarsall.batOrtamınızı manuel olarak kurmak yerine çalışmayı denediniz mi?
JohnnyHK

Başarı yok. Hala "MSB3411: Visual V ++ bileşeni" VCBuild.exe "yüklenemedi.
Alex Netkachov

BTW, "C: \ Program Files \ Microsoft SDKs \ Windows \ v6.1 \ Bin \ SetEnv.Cmd" ile daha iyi sonuçlar elde ediyorum: önemli hata C1083: include dosyası açılamıyor: 'stdint.h': Böyle bir dosya veya dizin yok
Alex Netkachov

2
Sonunda yüklemek için bcrypt aldım ki win7 64 bit ortam üzerine bina gerektiriyor, sıralamak için boyunda bir ağrı oldu. Durumumla bcrypt ve node-gyp için talimatları takip ettim. Benim için kattığı Microsoft Windows 7 SDK ve .Net 4 çerçevesini kuruyordu. Kurulduktan sonra (ve kabuğumu yeniden başlattım) bcrypt için kurulum yoluyla her şeyi derleyebileceğimi buldum. SDK'yı yükleyip yüklemediğinizi merak ediyordum. Listenizde bahsetmediğiniz gibi soruyorum.
Metalskin

1
Bu 2015-11-19 yayınlanmıştır ve IT WORKS! (Bu iş parçacığında pek çok iyi öneri ama sevinç yok) github.com/nodejs/node-gyp/issues/629#issuecomment-158163655 Yordam VS2012'yi değil, Build Tools 2015'i yükler.
dkloke

Yanıtlar:


148

Deneyin - global olarak ayarlayacaktır:

npm config set msvs_version 2012 --global

1
Mükemmel! Tüm sorunlarımı düzelttim!
hansmei

2
Mükemmel, npm bağırsak derinliklerine çağırdı komut dosyaları bir dizi çalışırken hata alıyordum. Senaryoları değiştirmek istemedim, bu yüzden bu benim için en iyi
Alastair

2
Bu önerilen cevap olmalı, Windows 10'da bir cazibe gibi çalıştı
William

2
Çalışmıyor. error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.
Yeşil

VS2017 yüklü bir Windows 10 bilgisayarında - 2015 VC oluşturma araçlarını da yüklemek için VS2017 kurulumunu kullandım. torazaburo'nun düzeltmesi işe yaradı :) aslında catalint'in cevabı daha iyi görünüyor ama denemedim ....
Sean

143

VS2010 yüklemesi olmadan ve yalnızca 2012 yapmak için msvs_version bayrağını ayarlayın:

node-gyp rebuild --msvs_version=2012

npm install <module> --msvs_version=2012

@Jacob yorumu başına

npm install --msvs_version=2013 2013 sürümüne sahipseniz


3
İkinci komutun parametresinde de iki tire olması gerektiğine inanmama rağmen - bunun için iki tire koydum ve işe yaradı. Bu benim npm yükleme hataları geçmiş beni aldı - teşekkürler!
Dullroar

1
@Dullroar superuser.com/questions/372203/… 1 çizgi omuz silkme
Alex

Bunun için teşekkürler; npm installKomut benim için çalışma var. Bir çizgi de benim için çalıştı.
Seiyria

Bu --msvs sürümü = 2012
RaduM

Bu Windows 7 x64 kurulumumla inanılmaz çalıştı! Microsoft (dicks olduğu için) teşekkürler!
Blairg23

60

Güncelleme v3: https://www.npmjs.com/package/windows-build-tools

npm install --global windows-build-tools

Microsoft tarafından ücretsiz olarak sağlanan Visual C ++ Build Tools 2015'i indirir ve yükler. Bu araçlar, popüler yerel modülleri derlemek için gereklidir. Ayrıca, makinenizi ve npm'yi uygun şekilde yapılandırarak Python 2.7'yi kuracaktır.

Güncelleme v2:

node-gyp, benioku dosyalarını Windows için NASIL YAPILACAK içerecek şekilde güncelledi

Orijinal:

Tüm görsel stüdyoya gerek yok, sadece oluşturma araçlarını indirebilirsiniz

Microsoft Derleme Araçları 2013: http://www.microsoft.com/en-us/download/details.aspx?id=40760

2013 sürümünü kullanmak üzere genel bayrağı ayarlamak için cmd'yi çalıştırın:

npm config set msvs_version 2013 --global

Bundan sonra her şey normale dönecek ve npm kurulum / düğüm-gyp yeniden oluşturmanız işe yarayacak


Oluşturma Araçları Platform Araçlarını içermez ... ne yazık ki Visual Studio'yu kurmanın bir yolu yok gibi görünüyor :( ayrıca Windows'ta node- gyp
Michael K.

node-gyp'ten yeni benioku içerecek şekilde güncellenmiş cevap, teşekkürler @MichaelK.
catalint

2
Ben VS2015 yüklü ve bu komutu koştum npm config set msvs_version 2015 --globalolarak iyi çalışıyor
JRulle

Benzer şekilde, Microsoft Build Tools 2015'i yükleme ve çalıştırma npm config set msvs_version 2015 --global işleri
Jon Onstott

1
NPM (Düğüm Paketi Yöneticisi) DID kullanarak yukarıda belirtildiği gibi 'windows-build-tools' uygulamasını çalıştırmak benim için çalışıyor, ancak yalnızca Microsoft PowerShell üzerinden çalıştırırken . Bu, 10 yıldan fazla bir süredir Microsoft tarafından sağlanan bir Windows yardımcı programıdır. Oluşturma Araçlarını çalıştırmak için gereken Yönetici haklarına sahiptir. PowerShell'i bulun, sağ tıklayın ve Yönetici olarak çalıştırın. Yönetici olarak standart CMD istemini çalıştırmanın da işe yarayabileceğini, ancak PowerShell ile başarılı olduğumu unutmayın . Ek takım ve UNIX benzeri komut desteği, neden daha büyük bir çözüm olarak çalıştırılsa da, neden çalıştığının bir parçası olabilir.
Michael M

41

sadece --msvs_version = 2012'yi ekleyin

node-gyp rebuild --msvs_version=2012

veya

node-gyp configure --msvs_version=2012
node-gyp build 

Yukarıdaki ile aynı cevap.
Blairg23

1
Önce cevap verdim, tarihe bakın :)
msulhas

21

Node.js için bir paket yüklemeye çalışırken aynı sorunu yaşadım. Bazı kapsamlı googeling sonra bu yolu buldum: https://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup

Ben bu adımları izlemişti zaman "npm install" herhangi bir sorun olmadan kullanabilirsiniz.


TEŞEKKÜRLER!!! MASSIVE KUDOS ps Ayrıca yolunuza Python eklemeniz gerekir: stackoverflow.com/questions/4621255/…
sidonaldson

Zaten Visual Studio yüklüyse, en çok oy alan cevaplar işe yarayabilir, ancak hiç sahip değilseniz bu cevaba ihtiyacınız vardır. Teşekkürler!
JD Smith

Bu izlenecek yol şimdiye kadarki en iyisi. Bununla birlikte, tüm bu base64 sorunu tamamen gereksiz ve sinir bozucu!
Benedikt

Oh evet, ihtiyacım olan buydu. En iyi yürüyüş yoluyla buldum ve işe yarıyor!
Corin

Visual Studio 2008, 2010 ve 2012 olan iş bilgisayarımda iyi inşa Node Couchbase SDK kullanarak bir Node.js projem var. Visual Studio herhangi bir kopyası olmadan "hobiler" için yüklemeyi sınamak istedim. Tüm Microsoft geliştirme araçlarını ve SDK'ları ev bilgisayarımdan kaldırdım ve çeşitli "Express" seçeneklerini denedim. Yalnızca TooTallNate tarafından belgelenen bu adımları izledikten sonra, Windows için Couchbase ikili dosyalarını oluşturabildim, bu adım NW.js (eski düğüm-webkit) kullanarak bir "masaüstü" uygulaması olarak işlemek için yeniden bağlanma adımı da dahil: 'nw-gyp rebuild - -hedef = 0.12.0 '
Rick Rutt

13

@Felixrieseberg sayesinde , sadece windows-build-tools npm paketini kurmanız yeterlidir ve gitmekte fayda var.

npm install --global --production windows-build-tools

Visual Studio'yu yüklemenize gerek yoktur.

Microsoft Build Tools kurmanıza gerek yoktur.

Repodan:

Kurulumdan sonra, npm, Microsoft tarafından ücretsiz olarak sağlanan Visual C ++ Build Tools 2015'i indirip yükleyen bu modülü otomatik olarak yürütür. Bu araçlar, popüler yerel modülleri derlemek için gereklidir. Ayrıca, makinenizi ve npm'yi uygun şekilde yapılandırarak Python 2.7'yi kuracaktır.

Windows Vista / 7, .NET Framework 4.5.1 gerektirir (Şu anda bu paket tarafından otomatik olarak yüklenmemektedir)

Her iki yükleme de çakışmasızdır, yani mevcut Visual Studio, C ++ Derleme Araçları veya Python yüklemeleriyle uğraşmazlar.


1
Kesinlikle haklısın. VS, npm ve gyp sürümlerini saatlerce treid ediyorum, ancak .NET 4.5.1 (tam olarak) olmadan derlemenin kesinlikle bir yolu yok. Bu ayrıca, önceden paketlenmiş .NET ile birlikte geldikleri için neden çoğu VS-Kurulumuyla çalışacağını açıklar.
Xan-Kun Clark-Davis

12

Windows 8'de, benim için çalıştı:

npm install -g node-gyp -msvs_version=2012

sonra

npm install -g restify

1
Ben sanmıyorum restify , paket OP soru ile ilgisi restify aynı sorundan etkilenen birkaç paket sadece bir tanesidir.
adelriosantiago

5

DAYS gün kazdıktan sonra, IRC'deki bir kişi,

Windows 7.1 SDK Command Prompt

Kısayol (C: \ Windows \ System32 \ cmd.exe / E: ON / V: ON / T: 0E / K "C: \ Program Dosyaları \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ SetEnv.cmd" ). Ben yeni 7.1 SDK (Windows 8.1 üzerinde bile) sahip ZORUNLU çünkü yeni olanlar bu noktada düğüm iki kat daha eski olmasına rağmen düğüm-gyp istediği vcbuild.exe yerine msbuild.exe kullanın: /

Bu istemde bir kez, derleyici x86 bağlamı almak için aşağıdaki çalıştırmak zorunda çünkü derleyici mimarisi hakkında başka türlü hata olarak atıyordu:

setenv.cmd /Release /x86

Daha sonra işleri yeniden derlemek için düğüm-gyp kullanmaya çalışan npm komutlarını başarıyla çalıştırabildim.


4

Aynı isuee vardı ve yukarıdaki tüm sihir yaptım, benim için sihir yapan tek şey https://github.com/atom/atom/issues/2435

"Yapı komut dosyası tarafından çalıştırıldığında --msvs_version = 2013 düğümü-gyp'ye geçirilmediğinden. GYP_MSVS_VERSION = 2013 env değişkenini ayarlayın ve sonra çalışması gerekir."

Bang! işe yaradı


3

Windows'da Bu bana yardımcı oldu: (kredi gidiyor) https://github.com/TooTallNate/node-gyp/wiki/Updating-npm%27s-bundled-node-gyp MINGW32'yi denedim, ancak başarılı olamadım.

üzerinde cmd.exe

$ cd "C:\Program Files\nodejs\node_modules\npm"
$ npm install -g node-gyp@latest

1
bu sizin için başarısız olduysa, PYTHON = c: \ Python27 \ python.exe ortam değişkeniniz var mı ve stackoverflow.com/a/15937635/2873481
Vladimir Vukanac

npm install -g düğüm-gyp @ en son?
Alexander Mills

2

Windows 8 64-bit için, zmq ve protobuf'u yüklerken aşağıdakiler benim için çalıştı: Visual Studio 2012'yi yükleyin Komut satırına:

SET VisualStudioVersion=11.0
npm install zmq
npm install protobuf

Visual Studio 2012 ayrıca 'VS2012 için Geliştirici Komut İstemi' ile birlikte gelir, böylece env PATH değişkeninizi özelleştirmek zorunda değilsiniz
strider

1

Çözüm .net framework 3.5 ile sunucu 2008 için Microsoft Windows sdk yüklemek indirmek olduğunu düşünüyorum

veya Visual Studio 2008'i yükleyin .

Sorun windows builds-gyp vcbuid.exe dosyasını yürütür ve bazı nedenlerden dolayı bulamaz.

Teşekkürler



2
VCBuild'i bulamamasının nedeni, codeproject.com/Articles/562386/…
UnPlan2ned

Cevabımı aşağıda görebilirsiniz. vcbuild.exe gereklidir, ancak birçok ortam değişkeni ayarlanmalıdır ve node-gyp projesi bunları belgelemez.
rainabba


0

Ayrıca nodejs zmq derlemek için bir sürü sorun vardı.

Vcbuild.exe ile ilgili sorun için PATH ekleyin

Diğer problemler için sadece derleme yapabildim Windows 7.1 SDK Command Prompt

(Menü Programları -> Microsoft Windows SDK v7.1 -> Windows 7.1 SDK Komut İstemi)

Ve istemden:

npm install zmq

İşe yarıyor :)


0

Uzun bir mücadeleden sonra düğüm mimarimi x86'ya çevirdim ve bir cazibe gibi çalıştı.


1
x86'ya nasıl geçtiğiniz hakkında daha fazla ayrıntı verebilir misiniz?
Arman Ortega

0

cmd olarak ur sürümüne bağlı olarak Visual Studio yolunu

Visual Studio 2010 (VS10): SET VS90COMNTOOLS=%VS100COMNTOOLS%

Visual Studio 2012 (VS11): SET VS90COMNTOOLS=%VS110COMNTOOLS%

Visual Studio 2013 (VS12): SET VS90COMNTOOLS=%VS120COMNTOOLS%

Node-master'da ( git'ten indirilen orijinal düğüm modülü) vcbuild.bat dosyasını çalıştırın yönetici ayrıcalıklarıyla . vcbild.bat, windows ile ilgili bağımlılıklar üretecek ve klasör adı ekleyecektir Node-master klasöründe yayın

Çalıştırıldıktan sonra dosyaları oluşturmak zaman alacaktır.

Sonra dizinde .gyp dosyası olan komut kullanın

node-gyp rebuild --msvs_version=2012 --nodedir="Dive Name:\path to node-master\node-master"

bu tüm bağımlılıkları inşa edecektir.


0

Bu öğretici ile Windows 8 ve Windows 10 pro bu sorunu çözdü. Bu sorunu birçok farklı çözümle çözmek için birçok kez deniyorum, ancak sadece benim için bununla çalıştım: http://www.serverpals.com/blog/building-using-node-gyp-with-visual-studio-express -2015-on-windows-10-pro-x64 Bu öğretici gibi düğüm sürümünü kontrol etmek için nodist kullanmadığımı fark ettim, NVM kullanıyorum ve iyi çalıştı, nodist ile bu öğreticiyi test etmiyorum. 5.2.0 düğümü kullandım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.