Saya telah mencari secara online dan tidak dapat menemukan apa pun yang mirip dengan masalah saya.
Saya membuat proyek C ++ kosong dan menambahkan main.cpp dengan pengembalian dan saya tidak bisa membuatnya untuk dibangun. Ini pesan yang saya terima:
1>------ Build started: Project: Project1, Configuration: Debug Win32 ------
1>LINK : fatal error LNK1158: cannot run 'rc.exe'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Apakah ada suatu tempat di dalam VS2012 di mana saya dapat menentukan di mana menemukan eksekusi ini? Saya telah menginstal Windows 7 SDK dan saya menjalankannya di:
C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin
Saya berasal dari Code :: Blocks dan menggunakan mingw-gcc tanpa masalah, tetapi akhir-akhir ini saya membutuhkan VS untuk implementasi yang dikelola jadi saya berharap seseorang memiliki ide.
visual-studio-2012
Patrick.SE
sumber
sumber
Jawaban:
Menemukan ini di Google ... Saya berasumsi bahwa dalam kasus Anda, Anda akan menyalin
rc.exe
danrcdll.dll
kevisual studio 2012\vc\bin
atau di mana pun Anda menginstalnya:Bagian 2: FIX LINK:
fatal error LNK1158: cannot run ‘rc.exe’
Tambahkan ini ke variabel lingkungan PATH Anda:
Salin file-file ini:
Dari
Untuk
Atau saya juga menemukan ini:
Microsoft meninggalkan beberapa hal dari paket MSVT mereka. Karena tidak ada yang tahu apakah mereka ditinggalkan secara tidak sengaja atau karena alasan lisensi, tidak ada orang dengan MSVC yang terlalu tertarik untuk memberikannya. Beberapa pencarian Google menghasilkan beberapa sumber rumit. Untungnya, Microsoft akhirnya sadar dan memecahkan masalah ini dan banyak lagi.
http://msdn.microsoft.com/vstudio/express/support/faq/default.aspx#pricing
http://msdn.microsoft.com/vstudio/express/support/install/
Sejumlah besar file MSVT yang hilang ada di sana tetapi file SDK yang hilang tidak.
dan ini:
Saya memiliki masalah yang sama yang saya pecahkan dengan melakukan ini:
Sekarang saya dapat membangun dan menautkan file sumber daya tanpa kesalahan.
sumber
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64
dan menjalankan perintah:copy "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\rc.exe"
dancopy "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\rcdll.dll"
untuk memperbaikinya di Visual Studio 2015Kami mengalami masalah ini dengan CMake / Visual Studio 2015 builds kami setelah juga menginstal VS2017 pada mesin. Solusi yang benar dalam kasus kami adalah untuk menentukan versi Window Kit (8.1) untuk Visual Studio Command Prompt - jika tidak Anda mendapatkan Windows 10 Kit secara default yang tidak termasuk rc.exe dalam direktori bin.
mis. Mulai Menu-> Visual Studio 2015-> VS2015 x64 Native Tools Command Prompt
Perhatikan opsi 8.1 di bagian akhir
sumber
call C:\\(....)\vcvarsall.bat" amd64 8.1
danstart cmake-gui
, bekerja seperti pesonaDari apa yang saya temukan, jika Anda memiliki OS windows 7, melakukan langkah-langkah berikut akan memperbaiki masalah:
1) buka C: \ Program Files (x86) \ Microsoft SDKs Windows \ v7.1A \ Bin
2) kemudian salin RC.exe dan RcDll dari file ini
3) buka C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ bin dan tempelkan dua file yang telah Anda salin ke dalamnya.
Saya memiliki masalah yang sama, dan solusi yang diposting di atas tidak berfungsi. Solusi saya berasal darinya, dan itu bekerja untuk saya, jika yang di atas tidak berhasil, Anda bisa mencobanya.
sumber
rc.exe
Kesalahan ini dapat terjadi jika kompiler Visual C ++ dan Windows 10 SDK versi tidak sesuai dengan tahun Visual Studio yang sama. Secara umum, solusinya adalah memastikan Anda memiliki pada sistem Anda, dan menggunakan dalam kompilasi, VC ++ dan Windows SDK untuk tahun studio visual yang Anda gunakan.Misalnya, jika Anda memiliki Visual Studio 2017 atau 2019, dan Anda menginstal Build Tools 2015 tanpa memilih untuk menginstal Windows SDK 2015 sendiri (instalasi default tidak menginstalnya!), Dan mencoba menggunakannya untuk dikompilasi, Anda mungkin mengalami masalah ini.
Dalam kasus saya, saya sudah memiliki Visual Studio 2017. Ketika saya mencoba menggunakan Build Tools 2015 untuk mengkompilasi pustaka python (atau mungkin program apa pun), kesalahan 'rc.exe' yang sama terjadi. Saya membaca bahwa kompiler VS2015 14.0 C ++ dapat kesalahan jika mencoba menggunakan Windows 10 SDK dari Visual Studio 2017.
Saya uninstall Build Alat 2015, dan diinstal ulang, kali ini sebagai kustom instalasi, memilih untuk menginstal kedua C visual yang ++ dan Windows 10 komponen SDK. Ini memperbaiki masalah.
UPDATE: Saya baru saja melihat Build Tools 2015 lagi, dan ternyata tidak ada pilihan instalasi khusus lagi. Jika demikian, menginstal Visual Studio 2015 dengan komponen C ++ dan Windows SDK juga akan berfungsi.
sumber
Dalam kasus saya, saya memiliki kesalahan mix and match antara proyek yang dibuat di VS2015 dan VS2017. Dalam file .vcxproj saya, ada bagian ini disebut PropertyGroup Label = "Globals">. Saya memiliki bagian untuk TargetPlatformVersion = 10.0.15063.0. Ketika saya menghapus TargetPlatformVersion, itu memecahkan masalah.
Maaf saya tidak bisa menyalin dan menempelkan blok di sini, tetapi format coding stackoverflows tidak mengizinkan itu.
sumber
Saya menggunakan Windows 7 x64 dan Visual Studio 2017 . Saya mendapatkan kesalahan ini ketika mencoba menyusun skrip cython. Begitulah cara saya memecahkan: Saya menyalin dan menempelkan rc.exe dan rcdll.dll dari:
untuk
sumber
C:\Program Files (x86)\Windows Kits\8.1\bin\x64
untukC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
.C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64
keC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64
untuk memperbaiki Visual Studio tidak dapat membangun karena kesalahan rc.exeBerikut ini adalah kasus saya yang hampir serupa:
Saya memiliki proyek kerja VC2010 di bawah Win7 32bit. Saya melakukan instalasi VC2013 di bawah Win8.1 64bit. Setelah berhasil mengubah proyek saya dari VC2010 ke VC2013, selama kompilasi pertama kenaikan kesalahan berikut:
Selesai membuat kode
LINK: kesalahan fatal LNK1158: tidak dapat menjalankan 'rc.exe'
Solusi 1:
Hapus seluruh baris "<ExecutablePath Condition =" ... "> ... </ExecutablePath>" dalam elemen "<PropertyGroup>" di file NameOfYourSolution.vcxproj di notepad sebelum menjalankan VC2013
Solusi 2:
Salin hanya dua file: rc.exe dan rcdll.dll dari "c: \ Program Files (x86) \ Windows Kits \ 8.1 \ bin \ x86 \" hingga "c: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ bin \" dan kompilasi akan menjadi berhasil !!
catatan:
a) Tidak perlu menyentuh PATH atau variabel lingkungan Windows atau VC lainnya.
b) "Platform Toolset" (Halaman Properti Proyek -> Properti Konfigurasi -> Umum) akan secara otomatis diatur ke "Visual Studio 2013 (v120)" (tidak mengubahnya menjadi "Visual Studio 2010" untuk dapat terus mengembangkan proyek Anda di bawah konsep VC2013)
sumber
Dalam kasus saya kesalahannya adalah karena pengaturan yang buruk di vcxproj. Vcxproj berasal dari pihak ketiga, jadi saya tidak yakin bagaimana itu bisa terjadi di negara itu.
Khususnya, untuk salah satu platform / profil kombo, folder platform hilang dari folder bin SDK Windows:
benar, dimana
salah. Mungkin perlu menggulir ke ujung kotak kode untuk melihat perbedaannya.
Perhatikan juga, bahwa untuk beberapa alasan aneh, bin $ x (WindowsSdkDir); TIDAK bekerja untuk saya. Mencoba mencari tahu mengapa, ketika rc.exe pasti ada di folder itu, tapi saya menyerah.
Menurut pendapat saya, solusi dari poster sebelumnya yang melibatkan menyalin rc.exe di semua tempat salah, karena proyek Anda tidak akan berfungsi pada mesin orang lain. Jika Anda memperbaiki jalur dalam proyek dengan benar, itu harus bekerja pada mesin apa pun dengan instalasi Windows SDK yang benar.
sumber
Saya menggunakan Windows 10 x64 dan Visual Studio 2017. Saya menyalin dan menempelkan rc.exe dan rcdll.dll dari:
untuk
ini bekerja dengan: (qt creator 5.7.1)
sumber
Ini mungkin agak ketinggalan jaman. Tetapi jika menyalin rc.exe dan exdll.dll tidak berfungsi, ada kemungkinan windows sdk tidak diinstal dengan benar bahkan jika folder windows sdk ada. Anda dapat memperbarui SDK untuk win 8 di halaman berikut: http://msdn.microsoft.com/en-US/windows/hardware/hh852363 Setelah menginstal ulang SDK, masalah akan diselesaikan. Pastikan juga bahwa platform toolset diatur dengan benar.
sumber
Saya mengalami masalah ini baru-baru ini. Saya sudah menginstal VS 2015 dan VS 2017, Windows kits 8.1 dan 10 diinstal.
Command prompt dari VS 2017 berfungsi seperti yang diharapkan, rc.exe terlihat. Dalam VS 2015 ini tidak benar. Sebenarnya, skrip vcvarsall.bat dari VS 2015 memang menambahkan path ke Windows 10 kit ke variabel PATH, tetapi menambahkan path yang sedikit salah. Itu menambah path ke
sedangkan jalur yang sebenarnya adalah
Tampaknya memperbarui kit Windows 10 (atau menginstal VS 2017) menyebabkan masalah ini.
Jadi solusinya sederhana: buat saja tautan simbolik di folder "C: \ Program Files (x86) \ Windows Kits \ 10 \ bin" yang menunjuk ke folder terkait di folder yang mendasarinya, misalnya tautan simbolik "x86" untuk folder "10.0 .17763.0 \ x86 "," x64 "untuk" 10.0.17763.0 \ x64 "dll.
sumber
Saya memiliki masalah yang sama pada VS 2013 dan dapat memperbaikinya dengan mengubah
Platform Toolset
.Anda dapat menemukannya di pengaturan proyek, umum.
Misalnya beralih
Platform Toolset
ke VS 2010 akan menyebabkan VS menggunakan SDK Windows \ v7.0A.Anda dapat memeriksa jalur SDK mana yang digunakan dengan menambahkan ini ke acara prebuild Anda:
sumber
Saya menggunakan Windows 7 dengan VS 2013 (Pembaruan 3) dan Edisi Komposer Intel Parallel Studio XE untuk Fortran Windows (Pembaruan 5). Di luar kotak saya memiliki masalah yang sama.
Setelah saya memperbaiki masalah rc.exe yang hilang, saya mengalami masalah lain. Tautan tidak ada di kernel32.lib.
Saya memperbaiki kedua masalah dengan memperbarui Intel Composer Options (TOOLS-> Options ...-> Intel Composer XE-> Visual Fortran-> Compiler).
Untuk tab Win32 saya menambahkan:
Executables: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ bin \ x86; (sesaat sebelum $ (PATH))
Perpustakaan: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Lib \ win8 \ um \ x86;(pada akhirnya)
Untuk tab x64 saya menambahkan:
Dapat dijalankan: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ bin \ x64; (sesaat sebelum $ (PATH))
Perpustakaan: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Lib \ win8 \ um \ x64;(pada akhirnya)
Memperbarui...
Saya juga kehilangan beberapa file header SDK (winver.h dan winapifamily.h). Saya menambahkan berikut ini ke ALAT yang sama-> Pilihan ... area.
Untuk tab win32 dan x64
Termasuk: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Termasuk \ um; C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Include \ shared;
sumber
Saya baru saja menemukan satu (dari total 3) proyek dalam solusi VS2010 (SDK7.1) saya (proyek dihubungkan dalam rantai ketergantungan linear berurutan), memiliki file .rc dalam file proyek yang kosong. Menghapus file .rc kosong (dari proyek, tanpa menghapusnya) menyelesaikan masalah "kesalahan fatal LNK1158: ... cvtres.exe".
Pembaruan: Salinan berikut memperbaiki masalah:
Ini akan memungkinkan WinSDK7.1, melalui MSBuild, untuk dapat mengkompilasi file .rc ke dalam executable.
sumber
Ini bahkan lebih mudah daripada itu dengan Visual Studio 2017. Ikuti instruksi ini: https://docs.microsoft.com/en-us/visualstudio/install/modify-visual-studio untuk dimodifikasi menggunakan Microsoft Visual Studio Installer.
Setelah masuk ke dalam Microsoft Visual Studio Installer, klik modifikasi di bawah paket Visual Studio yang Anda instal, pastikan pengembangan Desktop dengan C ++ dicentang, dan dukungan MFC dan ATl (x86 dan x64), di bawah ringkasan.
sumber
Ini dapat disebabkan oleh vcxproj yang berasal dari versi Visual Studio sebelumnya ATAU mengubah Platform Toolset di Configuration Properties -> General.
Jika demikian, kemungkinan Solusi:
1) Buka Properti Konfigurasi -> Direktori VC ++
2) Pilih drop down untuk Direktori yang Dapat Dieksekusi
3) Pilih "Mewarisi dari induk atau Default Proyek"
sumber
Tambahkan ke jendela variabel lingkungan Anda sdk 8.1 jalur
kemudian buka Visual studio x64 Native tools, command prompt dan masuk
sumber
Jika Anda benar-benar perlu menggunakan SDK Windows 10 dengan Visual Studio 2015, Anda harus mengunduh versi yang lebih lama di sdk-arsip . Versi SDK yang lebih baru mengubah tempat executable rc dan MSBuild dari Visual Studio 2015 pembaruan 3 (versi terbaru) tidak dapat menemukannya. Setidaknya versi 10.0.14393.795 dari SDK Windows masih kompatibel dengan Visual Studio 2015.
sumber
Mungkin file proyek disentuh oleh VS2017. Kemudian ketika Anda menautkan proyek pada 2015 "LINK: kesalahan fatal LNK1158: tidak dapat menjalankan 'rc.exe'" dapat mengerem pembangunan.
Dalam vcxproj cobalah untuk:
1) ganti:
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
dengan:<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
2) hapus:
<VCProjectVersion>15.0</VCProjectVersion>
3) ganti:
<PlatformToolset>v141</PlatformToolset>
dengan:<PlatformToolset>v140</PlatformToolset>
sumber
Saya mendapat kesalahan tautan OP tentang
rc.exe
ketika mencoba mengeksekusipip install
di dalambash
tugas dalam pipa Azure DevOps yang saya gunakan untuk membangun paket Python dari sumber dengan ekstensi C ++. Saya dapat mengatasinya dengan menambahkan path kerc.exe
dalambash
tugas sebelum meneleponpip install
, seperti:Itu ada di dalam Azure
job
yang digunakanvmImage: 'windows-2019'
untuk agennya; yaitu, Windows Server 2019 dengan Visual Studio 2019.sumber
Saya bisa membuatnya bekerja untuk saya juga dengan cara ini di windows
Anda dapat dengan mudah mengatur variabel lingkungan Anda menggunakan
sumber
Dalam kasus saya, saya menginstal Windows SDK 10586 melalui Visual Studio 2015 -> Ubah , kemudian jalur berikut diinstal.
sumber
Untuk Visual Studio Community 2019, menyalin file dalam jawaban di atas (
rc.exe rcdll.dll
) untukC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\bin\Hostx86\x86
melakukan trik untuk saya.sumber
Saya menggunakan Windows 10 Pro x64, VS 19 ..
Ketika mencoba menginstal mod_wsgi untuk apache di cmd.
Ini adalah kesalahan yang saya dapatkan dari command prompt saya.
Saya harus menyalin rc.exe & rcdll.dll dari
dan tambahkan ke
hasil dari cmd
Semoga ini bisa membantu seseorang.
sumber