Visual Studio ไม่สามารถสร้างได้เนื่องจาก rc.exe


130

ฉันค้นหาทางออนไลน์แล้วไม่พบสิ่งที่คล้ายกับปัญหาของฉัน

ฉันสร้างโปรเจ็กต์ C ++ เปล่าและเพิ่ม main.cpp ด้วยผลตอบแทนและฉันไม่สามารถสร้างมันได้ นี่คือข้อความที่ฉันได้รับ:

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 ==========

มีที่ไหนใน VS2012 ที่ฉันสามารถระบุได้ว่าจะหาไฟล์ปฏิบัติการนี้ได้ที่ไหน? ฉันได้ติดตั้ง Windows 7 SDK แล้วและมีไฟล์ปฏิบัติการนี้ที่:

C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin

ฉันมาจาก Code :: Blocks และใช้ mingw-gcc โดยไม่มีปัญหาใด ๆ แต่เมื่อเร็ว ๆ นี้ฉันต้องการ VS สำหรับการใช้งานที่มีการจัดการดังนั้นฉันหวังว่าใครบางคนจะมีความคิด


FYI - เสียใน Visual Studio 2013 Professional ด้วย :(
gbjbaanb

แต่ดูเหมือนว่าปัญหาคือเส้นทางไปยัง Windows SDK dir (หรือ Windows Kits อะไรก็ตามที่พวกเขาเรียกพวกเขาในสัปดาห์นี้) $ (WindowsSdkDir) var ไม่ได้ตั้งค่าเป็นไดเร็กทอรี WindowsKits ถูกตั้งค่าเป็น WindowsSDK dir แทนซึ่งมีเนื้อหา 'น้อยที่สุด'
gbjbaanb

3
ทางออกที่ดีสำหรับปัญหา VS2015 ที่คล้ายกันซึ่งเกิดจาก VS2017: stackoverflow.com/a/45319119/508431
Isaiah Norton

1
อย่าลืมอ่านCRITICAL QA stackoverflow.com/questions/43847542
Fattie

คำตอบ:


243

พบสิ่งนี้ใน Google ... ฉันคิดว่าในกรณีของคุณคุณจะคัดลอกrc.exeและrcdll.dllถึงvisual studio 2012\vc\binที่ใดก็ตามที่คุณติดตั้ง:

ส่วนที่ 2: แก้ไขลิงค์: fatal error LNK1158: cannot run ‘rc.exe’

เพิ่มสิ่งนี้ให้กับตัวแปรสภาพแวดล้อม PATH ของคุณ:

C: \ Program Files (x86) \ Windows Kits \ 8.0 \ bin \ x86

คัดลอกไฟล์เหล่านี้:

rc.exe
rcdll.dll

จาก

C: \ Program Files (x86) \ Windows Kits \ 8.0 \ bin \ x86

ถึง

C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ VC \ bin

หรือฉันพบสิ่งนี้:
Microsoft ทิ้งบางสิ่งออกจากแพ็คเกจ MSVT เนื่องจากไม่มีใครรู้ว่าพวกเขาถูกทิ้งโดยไม่ได้ตั้งใจหรือด้วยเหตุผลด้านใบอนุญาตจึงไม่มีใครที่มี MSVC สนใจที่จะให้พวกเขามากเกินไป การค้นหาของ Google สองสามรายการทำให้เกิดแหล่งที่มาที่ยุ่งยาก โชคดีที่ในที่สุด Microsoft ก็สามารถแก้ไขปัญหานี้และอื่น ๆ อีกมากมาย

http://msdn.microsoft.com/vstudio/express/support/faq/default.aspx#pricing

http://msdn.microsoft.com/vstudio/express/support/install/

มีไฟล์ MSVT จำนวนมากที่หายไป แต่ไม่มีไฟล์ SDK ที่หายไป

และสิ่งนี้:
ฉันมีปัญหาเดียวกันซึ่งฉันแก้ไขได้โดยทำสิ่งนี้:

  1. การติดตั้ง Microsoft .Net Framework 2.0
  2. การเพิ่มเส้นทางของไฟล์. NET Framework (สำหรับฉัน "C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727") ไปยังการตั้งค่าคอมไพเลอร์ส่วนกลาง> โปรแกรม> เส้นทางเพิ่มเติมภายใน Code :: Blocks

ตอนนี้ฉันสามารถสร้างและเชื่อมโยงไฟล์ทรัพยากรได้โดยไม่มีข้อผิดพลาด


6
ขอบคุณมันเป็นวิธีง่ายๆในการคัดลอกไฟล์ปฏิบัติการ rc จากถัง SDK ไปยังถัง VS
Patrick.SE

คำตอบส่วนใหญ่คือคำพูด ... ดังนั้นเพื่อชี้แจงว่า "ฉันมีปัญหาเดียวกันซึ่งฉันแก้ไขได้ด้วยการทำสิ่งนี้:" ไม่ใช่ฉัน แต่มีบางอย่างที่ฉันพบโพสต์
Kat Cox

1
คำถาม: เหตุใดคุณจึงใช้ไฟล์ x86 rc.exe และ rcdll.dll แทนเวอร์ชัน x64
Carl

1
ฉันเพิ่งคัดลอกและวางคำตอบที่ฉันพบ ... แต่คุณจะใช้ x86 ในการติดตั้ง 32 บิต (ซึ่งคุณอาจมีแม้ในระบบ 64 บิต) และคุณจะใช้ x64 ในการติดตั้ง 64 บิต ... เดาสิ ขึ้นอยู่กับเวอร์ชันของไฟล์ที่ระบุว่าคุณควรมี
Kat Cox

2
ฉันอยู่ที่C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64และรันคำสั่ง: copy "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\rc.exe"และcopy "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\rcdll.dll"เพื่อแก้ไขสิ่งนี้ใน Visual Studio 2015
Jari Turkia

61

เราพบปัญหานี้ด้วยการสร้าง CMake / Visual Studio 2015 ของเราหลังจากติดตั้ง VS2017 บนเครื่อง วิธีแก้ปัญหาที่ถูกต้องในกรณีของเราคือการระบุเวอร์ชัน Window Kit (8.1) ไปยัง Visual Studio Command Prompt มิฉะนั้นคุณจะได้รับ Windows 10 Kit โดยค่าเริ่มต้นซึ่งไม่มี rc.exe ในไดเรกทอรี bin

เช่น Start Menu-> Visual Studio 2015-> VS2015 x64 Native Tools Command Prompt

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 8.1

หมายเหตุตัวเลือก 8.1 ในตอนท้าย


5
ฉันคิดว่านี่เป็นวิธีที่ถูกต้องในการแก้ปัญหานี้
jagttt

2
แม้ว่าฉันจะอยู่ในสถานการณ์เดียวกัน (ติดตั้ง Win10 พร้อม VS2015 และ VS2017 ด้วย) แต่ก็ไม่ได้ผลสำหรับฉัน สิ่งเดียวที่แก้ไขให้ฉันคือการเพิ่ม "C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.1A \ Bin" (SDK เวอร์ชันสุดท้ายที่มี rc.exe) ด้วยตนเองใน PATH!
Scylardor

@Scylardor - เส้นทางที่คุณใช้สำหรับ 7.1 SDK คุณได้ติดตั้ง 8.1 SDK ภายใต้ C: \ Program Files (x86) \ Microsoft SDKs \ Windows หรือไม่ อาจเป็นไปได้ที่จะใช้คำสั่งเดียวกันกับ 7.1 ต่อท้ายในกรณีของคุณหรือคุณอาจต้องติดตั้ง 8.1 SDK
MattAU

ฉันสร้างไฟล์แบตช์ด้วยcall C:\\(....)\vcvarsall.bat" amd64 8.1และใช้start cmake-guiงานได้อย่างมีเสน่ห์
Marius

ขอขอบคุณที่มีการตั้งค่าเดียวกันแน่นอน (ด้านข้าง VS) และนี่คือมากสะอาดกว่าการคัดลอกไฟล์รอบ!
E. Moffat

32

จากสิ่งที่ฉันพบหากคุณมีระบบปฏิบัติการ windows 7 การทำตามขั้นตอนต่อไปนี้จะแก้ไขปัญหาได้:

1) ไปที่ C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.1A \ Bin

2) จากนั้นคัดลอก RC.exe และ RcDll จากไฟล์นี้

3) ไปที่ C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ bin และวางไฟล์สองไฟล์ที่คุณคัดลอกลงไป

ฉันมีปัญหาเดียวกันและวิธีแก้ปัญหาที่โพสต์ไว้ข้างต้นใช้งานไม่ได้ วิธีแก้ปัญหาของฉันได้มาจากมันและมันใช้ได้ผลสำหรับฉันหากวิธีข้างต้นไม่ได้ผลคุณสามารถลองวิธีนี้ได้


4
น่างงงวยสิ่งนี้ใช้ได้ผลสำหรับฉันเช่นกันคัดลอกจาก v7.1A \ Bin ไปยัง Microsoft Visual Studio 14.0 \ VC \ bin
escapeecharacter

สิ่งนี้ใช้ไม่ได้สำหรับฉันบน Windows Server 2012 ที่ติดตั้ง VS 2017 ควบคู่ไปกับ VS 2015
iLikeDirt

18

นี้ rc.exeข้อผิดพลาดอาจเกิดขึ้นได้หากคอมไพเลอร์ Visual C ++ และเวอร์ชัน Windows 10 SDK ไม่ตรงกับปี Visual Studio เดียวกัน โดยทั่วไปวิธีแก้ปัญหาคือตรวจสอบให้แน่ใจว่าคุณมีในระบบของคุณและกำลังใช้ในการคอมไพล์ VC ++ และ Windows SDK สำหรับปีสตูดิโอภาพที่คุณใช้อยู่

ตัวอย่างเช่นหากคุณมี Visual Studio 2017 หรือ 2019 และคุณติดตั้ง Build Tools 2015 โดยไม่ได้เลือกที่จะติดตั้ง Windows SDK 2015 ของตัวเอง (การติดตั้งเริ่มต้นไม่ได้ติดตั้ง!) และกำลังพยายามใช้เพื่อรวบรวมคุณอาจพบ ปัญหานี้.

ในกรณีของฉันฉันมี Visual Studio 2017 อยู่แล้วเมื่อฉันพยายามใช้ Build Tools 2015 เพื่อรวบรวมไลบรารี python (หรืออาจเป็นโปรแกรมใด ๆ ) ข้อผิดพลาด 'rc.exe' เดียวกันนี้เกิดขึ้น ฉันอ่านว่าคอมไพเลอร์ VS2015 14.0 C ++ อาจผิดพลาดได้หากพยายามใช้ Windows 10 SDK จาก Visual Studio 2017

ผมถอนการติดตั้งเครื่องมือสร้างในปี 2015 และติดตั้งใหม่นั้นขณะนี้เป็นที่กำหนดเองการติดตั้งการเลือกที่จะติดตั้งทั้ง C ++ ภาพและ Windows 10 ส่วนประกอบ SDK สิ่งนี้ช่วยแก้ปัญหาได้

UPDATE: ฉันเพิ่งดู Build Tools 2015 อีกครั้งและดูเหมือนว่าจะไม่มีตัวเลือกการติดตั้งแบบกำหนดเองอีกต่อไป ในกรณีนี้การติดตั้ง Visual Studio 2015 ที่มีส่วนประกอบ C ++ และ Windows SDK ก็ควรใช้งานได้เช่นกัน


2
ขอบคุณมากนี่เป็นวิธีแก้ปัญหาที่เหมาะสม หมายเหตุ: ฉันพยายามเพิ่ม SDK ผ่านคำสั่ง "Modify" ของโปรแกรมติดตั้ง แต่มันติดขัด ต้องรีบูตถอนการติดตั้งจากนั้นติดตั้งตั้งแต่เริ่มต้น
ยีราฟสีม่วง

ใครช่วยชี้แจงความหมายของ "... ติดตั้งใหม่ [Build Tools 2015] คราวนี้เป็นการติดตั้งแบบกำหนดเองโดยเลือกที่จะติดตั้งคอมโพเนนต์ Visual C ++ และ Windows 10 SDK" ติดตั้งจากที่ไหน เป็นแบบสแตนด์อโลนจาก Microsoft?
estebro

@estebro หากคุณ Google "Build Tools 2015" และคลิกลิงก์แรกคุณจะเข้าสู่หน้าดาวน์โหลดของ Microsoft สำหรับแพ็คเกจแบบสแตนด์อโลนนี้ ดาวน์โหลดและติดตั้งแพคเกจอย่างไรก็ตามอย่าปล่อยให้แพคเกจติดตั้งตามค่าเริ่มต้นหากคุณกำลังมีปัญหา rc.exe INSTEAD เลือกสำหรับการติดตั้งแบบกำหนดเองและตรวจสอบให้แน่ใจว่าได้เปิดใช้งานการติดตั้ง Windows SDK (ไม่ใช่ค่าเริ่มต้น)
OrangeSherbet

1
นี่คือคำตอบที่แท้จริงและถูกต้องตามแนวคิด อื่น ๆ ทั้งหมดเป็นแฮ็กที่อาจใช้งานไม่ได้ ไม่มีใครทำเพื่อฉัน
iLikeDirt

1
OMFG นี้! ขอบคุณสำหรับคำอธิบายที่ชัดเจน ฉันพบปัญหาเดียวกันและคนที่ตำหนิการติดตั้งนั้นเป็นปลาเฮอริ่งสีแดง ฉันติดตั้งใหม่ห้าครั้งเพื่อดูผลลัพธ์เดียวกัน
Ananth

11

ในกรณีของฉันฉันมีข้อผิดพลาดในการผสมและจับคู่ระหว่างโครงการที่สร้างใน VS2015 และ VS2017 ในไฟล์. vcxproj ของฉันมีส่วนนี้เรียกว่า PropertyGroup Label = "Globals"> ฉันมีส่วนสำหรับ TargetPlatformVersion = 10.0.15063.0 เมื่อฉันลบ TargetPlatformVersion นั่นจะช่วยแก้ปัญหาได้

ขออภัยฉันไม่สามารถคัดลอกและวางบล็อกที่นี่ได้ แต่รูปแบบการเข้ารหัส stackoverflows ไม่อนุญาตให้ทำเช่นนั้น


นี้คงที่ ขอบคุณ.
My1

7

ฉันบน Windows 7 x64 และVisual Studio 2017 ฉันได้รับข้อผิดพลาดนี้ขณะพยายามรวบรวมสคริปต์ Cython นั่นคือวิธีที่ฉันแก้ไข: ฉันคัดลอกและวางrc.exeและrcdll.dllจาก:

C:\Program Files (x86)\Windows Kits\8.1\bin\x86

ถึง

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64

3
คำแนะนำเหล่านี้ใช้สำหรับ 32 บิต สำหรับ 64 บิตพยายามที่จะC:\Program Files (x86)\Windows Kits\8.1\bin\x64 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
Contango

สำหรับเราที่ใช้ Cython สิ่งนี้ได้ผล: เราคัดลอกสิ่งที่C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64ต้องทำC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64เพื่อแก้ไข Visual Studio ไม่สามารถสร้างได้เนื่องจากข้อผิดพลาด rc.exe
Brandon

4

นี่คือกรณีที่เกือบจะคล้ายกันของ
ฉัน: ฉันมีโครงการทำงาน VC2010 ภายใต้ Win7 32 บิต ฉันทำการติดตั้ง VC2013 ใหม่ทั้งหมดภายใต้ Win8.1 64 บิตหลังจากประสบความสำเร็จในการแปลงโครงการของฉันจาก VC2010 เป็น VC2013 ในระหว่างการคอมไพล์ครั้งที่ 1 ข้อผิดพลาดที่เพิ่มขึ้นต่อไปนี้:
สร้างรหัสเสร็จแล้ว
LINK: ข้อผิดพลาดร้ายแรง LNK1158: ไม่สามารถเรียกใช้ 'rc.exe' a) มันคือ ไม่จำเป็นต้องสัมผัส PATH หรือตัวแปรสภาพแวดล้อม Windows หรือ VC อื่น ๆ b)“ ชุดเครื่องมือแพลตฟอร์ม” (หน้าคุณสมบัติโครงการ -> คุณสมบัติการกำหนดค่า -> ทั่วไป) จะตั้งค่าเป็น“ Visual Studio 2013 (v120)” โดยอัตโนมัติ (ไม่เปลี่ยนเป็น“ Visual Studio 2010” เพื่อให้สามารถพัฒนาโครงการของคุณต่อไปได้ ภายใต้แนวคิด VC2013)

โซลูชันที่ 1:
ลบ ทั้งบรรทัด“ <ExecutablePath Condition =” ... ”> ... </ExecutablePath>” ในองค์ประกอบ“ <PropertyGroup>” ในไฟล์ NameOfYourSolution.vcxproj ใน notepad ก่อนที่จะเรียกใช้ VC2013
โซลูชันที่ 2:
คัดลอกเพียงสองไฟล์: rc.exe และ rcdll.dll จาก“ c: \ Program Files (x86) \ Windows Kits \ 8.1 \ bin \ x86 \” เป็น“ c: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ bin \” และการคอมไพล์จะเป็น ที่ประสบความสำเร็จ !!
บันทึก:


4

ในกรณีของฉันข้อผิดพลาดเกิดจากการตั้งค่าที่ไม่ดีใน vcxproj vcxproj มาจากบุคคลที่สามดังนั้นฉันไม่แน่ใจว่ามันอยู่ในสถานะนั้นได้อย่างไร

โดยเฉพาะอย่างยิ่งสำหรับคอมโบแพลตฟอร์ม / โปรไฟล์อย่างใดอย่างหนึ่งโฟลเดอร์แพลตฟอร์มหายไปจากโฟลเดอร์ถังขยะ Windows SDK:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 <ExecutablePath>$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.0 Tools;$(WindowsSdkDir)bin\x86;

ถูกต้องที่ไหน

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 <ExecutablePath>$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSdkDir)bin\NETFX 4.0 Tools;$(WindowsSdkDir)bin;

ไม่ถูกต้อง อาจต้องเลื่อนไปที่ส่วนท้ายของกล่องรหัสเพื่อดูความแตกต่าง

โปรดทราบว่าด้วยเหตุผลแปลก ๆ $ (WindowsSdkDir) bin \ x64; ไม่ได้ผลสำหรับฉัน พยายามหาสาเหตุว่าทำไมในเมื่อ rc.exe มีอยู่ในโฟลเดอร์นั้นอย่างแน่นอน แต่ฉันยอมแพ้

ในความคิดของฉันการแก้ปัญหาจากโปสเตอร์ก่อนหน้านี้ที่เกี่ยวข้องกับการคัดลอก rc.exe ไปทั่วนั้นไม่ถูกต้องเนื่องจากโครงการของคุณจะไม่ทำงานบนเครื่องของใครก็ตาม หากคุณแก้ไขเส้นทางในโครงการอย่างถูกต้องควรใช้กับเครื่องใดก็ได้ที่มีการติดตั้ง Windows SDK ที่ถูกต้อง


4

ฉันใช้ Windows 10 x64 และ Visual Studio 2017 ฉันคัดลอกและวาง rc.exe และ rcdll.dll จาก:

C:\Program Files (x86)\Windows Kits\8.1\bin\x86

ถึง

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64

ใช้งานได้กับ: (ผู้สร้าง qt 5.7.1)


3

สิ่งนี้อาจจะล้าสมัยเล็กน้อย แต่ถ้าการคัดลอก rc.exe และ exdll.dll ไม่ได้ผลมีโอกาสที่ windows sdk จะไม่ได้รับการติดตั้งอย่างถูกต้องแม้ว่าจะมีโฟลเดอร์ sdk ของ windows อยู่ก็ตาม คุณสามารถอัปเดต sdk สำหรับ win 8 ได้ในหน้าต่อไปนี้: http://msdn.microsoft.com/en-US/windows/hardware/hh852363 หลังจากติดตั้ง sdk ใหม่แล้วปัญหาจะได้รับการแก้ไข ตรวจสอบให้แน่ใจว่าชุดเครื่องมือแพลตฟอร์มได้รับการตั้งค่าอย่างถูกต้อง


3

ฉันพบปัญหานี้เมื่อไม่นานมานี้ ฉันติดตั้งทั้ง VS 2015 และ VS 2017 ติดตั้งชุด Windows 8.1 และ 10 แล้ว

พรอมต์คำสั่งจาก VS 2017 ทำงานตามที่คาดไว้ rc.exe จะมองเห็นได้ ใน VS 2015 สิ่งนี้ไม่เป็นความจริง อันที่จริงสคริปต์ vcvarsall.bat จาก VS 2015 เพิ่มเส้นทางไปยังชุด Windows 10 ไปยังตัวแปร PATH แต่เพิ่มเส้นทางที่ผิดเล็กน้อย มันเพิ่มเส้นทางไป

"C:\Program Files (x86)\Windows Kits\10\bin\x86"

ในขณะที่เส้นทางจริงคือ

"C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86"

ดูเหมือนว่าการอัปเดตชุด Windows 10 (หรือติดตั้ง VS 2017) ทำให้เกิดปัญหานี้

ดังนั้นวิธีแก้ปัญหาก็ง่ายเพียงสร้างลิงก์สัญลักษณ์ในโฟลเดอร์ "C: \ Program Files (x86) \ Windows Kits \ 10 \ bin" ที่ชี้ไปยังโฟลเดอร์ที่เกี่ยวข้องในโฟลเดอร์ที่อยู่ด้านล่างเช่นลิงก์สัญลักษณ์ "x86" สำหรับโฟลเดอร์ "10.0 .17763.0 \ x86 "," x64 "สำหรับ" 10.0.17763.0 \ x64 "เป็นต้น


2

ฉันมีปัญหาเดียวกันใน VS 2013 และสามารถแก้ไขได้โดยเปลี่ยนไฟล์Platform Toolset.

คุณสามารถค้นหาได้ในการตั้งค่าโครงการทั่วไป

เช่นการเปลี่ยนPlatform Toolsetไปใช้ VS 2010 จะทำให้ VS ใช้ Windows \ v7.0A SDK

คุณสามารถตรวจสอบว่าเส้นทาง SDK ใดถูกใช้โดยการเพิ่มสิ่งนี้ในเหตุการณ์ที่สร้างไว้ล่วงหน้าของคุณ:

echo using SDK $(WindowsSdkDir)

แต่นั่นหมายความว่า VS2013 ไม่รองรับแอพ MFC เลย โปรดทราบว่า rc.exe อยู่ในไดเร็กทอรี "Windows Kits" และไม่อยู่ในไดเร็กทอรี SDK อีกต่อไป ไร้ประโยชน์
gbjbaanb

2

ฉันใช้ Windows 7 กับ VS 2013 (อัปเดต 3) และ Intel Parallel Studio XE Composer Edition สำหรับ Fortran Windows (อัปเดต 5) นอกกรอบฉันมีปัญหาเดียวกัน

เมื่อฉันแก้ไขปัญหา rc.exe ที่หายไปแล้วฉันมีปัญหาอื่น ตัวเชื่อมโยงไม่มี kernel32.lib

ฉันแก้ไขปัญหาทั้งสองโดยการอัปเดต Intel Composer Options (TOOLS-> Options ...-> Intel Composer XE-> Visual Fortran-> Compiler)

สำหรับแท็บ Win32 ฉันได้เพิ่ม:

ไฟล์ปฏิบัติการ: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ bin \ x86; (ก่อนหน้า $ (PATH))

ไลบรารี: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Lib \ win8 \ um \ x86; (ตอนท้าย)

สำหรับแท็บ x64 ฉันเพิ่ม:

ไฟล์ปฏิบัติการ: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ bin \ x64; (ก่อนหน้า $ (PATH))

ไลบรารี: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Lib \ win8 \ um \ x64;(ตอนท้าย)

อัปเดต ...

ฉันยังไม่มีไฟล์ส่วนหัว SDK บางไฟล์ (winver.h และ winapifamily.h) ฉันเพิ่มสิ่งต่อไปนี้ลงในพื้นที่ TOOLS-> Options ... เดียวกัน

สำหรับทั้งแท็บ win32 และ x64

ประกอบด้วย: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Include \ um; C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Include \ shared;


2

ฉันเพิ่งหาหนึ่งโปรเจ็กต์ (จากทั้งหมด 3 โปรเจ็กต์) ในโซลูชัน VS2010 (SDK7.1) ของฉัน (โปรเจ็กต์เชื่อมโยงในห่วงโซ่การพึ่งพาเชิงเส้นตามลำดับ) มีไฟล์. rc ในไฟล์โปรเจ็กต์ที่ว่างเปล่า การลบไฟล์. rc ที่ว่างเปล่า (ออกจากโปรเจ็กต์โดยไม่ต้องลบออก) แก้ไขปัญหา "ข้อผิดพลาดร้ายแรง LNK1158: ... cvtres.exe"

อัปเดต: สำเนาต่อไปนี้แก้ไขปัญหา:

xcopy "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\"

สิ่งนี้จะเปิดใช้งาน WinSDK7.1 ผ่าน MSBuild เพื่อให้สามารถรวบรวมไฟล์. rc ลงในไฟล์ปฏิบัติการได้


BTW สำเนาต่อไปนี้แก้ไขปัญหา: xcopy "C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin \ cvtres.exe" "C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin \ x86_amd64 \ "สิ่งนี้จะเปิดใช้งาน WinSDK7.1 ผ่าน MSBuild เพื่อให้สามารถคอมไพล์ไฟล์ .rc ลงในไฟล์ปฏิบัติการได้
Sterge

2

ซึ่งง่ายกว่านั้นด้วย Visual Studio 2017 ทำตามคำแนะนำเหล่านี้: https://docs.microsoft.com/en-us/visualstudio/install/modify-visual-studioเพื่อแก้ไขโดยใช้ Microsoft Visual Studio Installer

เมื่ออยู่ภายใน Microsoft Visual Studio Installer ให้คลิกแก้ไขภายใต้แพ็คเกจ Visual Studio ที่ติดตั้งไว้ตรวจสอบให้แน่ใจว่าได้เลือกการพัฒนาเดสก์ท็อปด้วย C ++ และการสนับสนุน MFC และ ATl (x86 และ x64) ภายใต้สรุป


1

ซึ่งอาจเกิดจาก vcxproj ที่มาใน Visual Studio เวอร์ชันก่อนหน้าหรือเปลี่ยนชุดเครื่องมือแพลตฟอร์มในคุณสมบัติการกำหนดค่า -> ทั่วไป

หากเป็นเช่นนั้นวิธีแก้ไขที่เป็นไปได้:

1) ไปที่คุณสมบัติการกำหนดค่า -> ไดเรกทอรี VC ++

2) เลือกดรอปดาวน์สำหรับ Executable Directories

3) เลือก "รับช่วงจากแม่หรือค่าเริ่มต้นของโครงการ"


1

เพิ่มลงในหน้าต่างตัวแปรสภาวะแวดล้อมของคุณเส้นทาง sdk 8.1

C: \ Program Files (x86) \ Windows Kits \ 8.1 \ bin \ x64

จากนั้นเปิดพรอมต์คำสั่ง Visual studio x64 Native tools แล้วป้อน

vcvarsall.bat


1

ถ้าคุณต้องการจริงๆที่จะใช้ SDK ของ Windows 10 กับ Visual Studio 2015 คุณต้องดาวน์โหลดเวอร์ชันเก่าในSDK-เก็บ SDK เวอร์ชันที่ใหม่กว่าได้เปลี่ยนตำแหน่งของ rc executable และ MSBuild ของ Visual Studio 2015 update 3 (เวอร์ชันล่าสุด) ไม่สามารถค้นหาได้ อย่างน้อย SDK Windows เวอร์ชัน 10.0.14393.795 ยังเข้ากันได้กับ Visual Studio 2015


นี่อาจเป็นคำอธิบายที่แท้จริงของปัญหาที่น่าโมโหนี้ นี่เป็นอีกหนึ่ง QA ล่าสุดเกี่ยวกับปัญหานี้สำหรับทุกคนที่ googling ที่นี่ ........ stackoverflow.com/a/53804573/294884
Fattie

1

บางทีไฟล์โปรเจ็กต์อาจถูกสัมผัสโดย VS2017 จากนั้นเมื่อคุณเชื่อมโยงโปรเจ็กต์ในปี 2015 "LINK: fatal error LNK1158: ไม่สามารถรัน 'rc.exe'" สามารถหยุดการสร้างได้

ใน vcxproj พยายามที่จะ:

1) แทนที่:

<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion> ด้วย: <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>

2) ลบ: <VCProjectVersion>15.0</VCProjectVersion>

3) แทนที่: <PlatformToolset>v141</PlatformToolset> ด้วย: <PlatformToolset>v140</PlatformToolset>


1

ฉันได้รับข้อผิดพลาดลิงก์ของ OP เกี่ยวกับrc.exeเมื่อพยายามดำเนินการpip installภายในbashงานภายในไปป์ไลน์ Azure DevOps ที่ฉันใช้สร้างแพ็คเกจ Python จากซอร์สที่มีส่วนขยาย C ++ ฉันสามารถแก้ไขได้โดยการเพิ่มพา ธrc.exeเข้าไปในbashงานก่อนที่จะโทรpip installเช่น:

PATH="/c/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64":$PATH

ที่อยู่ภายใน Azure jobที่ใช้vmImage: 'windows-2019'สำหรับตัวแทน กล่าวคือ Windows Server 2019 พร้อม Visual Studio 2019


1

ฉันสามารถทำให้มันใช้งานได้ด้วยวิธีนี้ใน windows

  1. ตั้งค่าตัวแปรสภาพแวดล้อมของคุณให้ชี้ไปที่ตำแหน่งของ rc.exe โดยสมมติว่าคุณใช้เวอร์ชัน x86

C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ 10.0.18362.0 \ x86

คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมของคุณได้อย่างง่ายดายโดยใช้

C:> เส้นทาง setx "% path%; C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ 10.0.18362.0 \ x86"

  1. รีสตาร์ท Qt Creator ของคุณ
  2. ทำความสะอาดและสร้างใหม่

0

ในกรณีของฉันฉันติดตั้ง Windows SDK 10586 ผ่าน Visual Studio 2015 -> Modifyจากนั้นติดตั้งพา ธ ต่อไปนี้

C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ arm64 \ rc.exe

C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ x64 \ rc.exe

C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ x86 \ rc.exe


0

สำหรับ Visual Studio Community 2019 การคัดลอกไฟล์ในคำตอบด้านบน ( rc.exe rcdll.dll) เพื่อC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\bin\Hostx86\x86ทำเคล็ดลับให้ฉัน


0

ฉันใช้ Windows 10 Pro x64, VS 19 ..

เมื่อพยายามติดตั้ง mod_wsgi สำหรับ apache ใน cmd.

C:\>python -m pip install mod_wsgi

นี่คือข้อผิดพลาดที่ฉันได้รับจากพรอมต์คำสั่งของฉัน

LINK : fatal error LNK1158: cannot run 'rc.exe'

error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1158

ฉันต้องคัดลอก rc.exe & rcdll.dll จาก

C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ 10.0.18362.0 \ x86

และเพิ่มลงใน

C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin \ x86_amd64

ผลลัพธ์จาก cmd

C:\>python -m pip install mod_wsgi
Collecting mod_wsgi
Using cached mod_wsgi-4.7.1.tar.gz (498 kB)
Installing collected packages: mod-wsgi
Running setup.py install for mod-wsgi ... done
Successfully installed mod-wsgi-4.7.1

หวังว่านี่จะช่วยใครบางคนได้


0

"ข้อผิดพลาด LNK1158 ไม่สามารถเรียกใช้ 'rc.exe" อาจเป็นผลมาจากโครงการของคุณถูกเปิดโดย MS VS เวอร์ชันที่ใหม่กว่า ตัวอย่างเช่นโครงการของคุณถูกสร้างขึ้นใน VS 2015 หลังจากนั้นจึงเปิดในปี 2017 จากนั้นโปรเจ็กต์ของคุณจะเปิดในปี 2015 ในภายหลัง

ในการแก้ไขปัญหานี้ให้เปิด yourProjectName.vcxproj ค้นหาWindowsTargetPlatformVersionและเปลี่ยนเป็น VS เวอร์ชันที่ถูกต้อง

สำหรับ VS 2015 ควรเป็น 8.1 สำหรับ VS 2017 ควรเป็น 10.0.17763.0


0

ในกรณีของฉัน, VS 2019 บน Windows 10 x 64 ส่วนใหญ่ผมทำตามสิ่งที่มันถูกกล่าวว่าในคำตอบ แต่วางrc.exeและrcdll.dllจากC:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x86ไปC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\binซึ่งเป็นที่ที่link.exeเป็น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.