ฉันจะติดตั้งโปรแกรม Windows (เขียนเป็นภาษา C) ที่ดาวน์โหลดจาก GitHub ได้อย่างไร


44

ฉันดาวน์โหลดโปรแกรม Windows แบบง่าย ๆ ที่ตายแล้วจาก GitHub ( นี่ถ้าเกี่ยวข้อง) ฉันดาวน์โหลดมันเป็นไฟล์ ZIP แต่ฉันไม่สามารถหาวิธีติดตั้งได้ มันเขียนด้วยภาษา C ฉันคิดว่า ฉันต้องการคอมไพเลอร์หรือไม่? (Visual Studio?) มีบางอย่างที่ฉันขาดไปไหม


9
ขออภัยนี่เป็นปัญหา noob ที่สำคัญที่ฉันมี อย่างไร? ไม่มีไฟล์ที่ปฏิบัติการได้
Josh Friedlander

6
คุณอาจต้องใช้ Windows SDK และส่วนหัว C ที่เกี่ยวข้องเพื่อรวบรวมโปรแกรม โดยปกติจะกล่าวถึงการพึ่งพาและคำแนะนำในการคอมไพล์จะรวมอยู่ใน Readme ในกรณีนี้ไม่รวมอยู่ด้วยดังนั้นคุณต้องขอให้เจ้าของ repo / ผู้เขียนโครงการรับข้อมูลที่เกี่ยวข้อง
Larssend

7
คุณต้องการคอมไพเลอร์ ฉันจะติดต่อกับผู้พัฒนาและถามวิธีการสร้าง ตัวอย่างเช่นซอฟต์แวร์ Linux ที่มีให้ในฐานะแหล่งรวมคำแนะนำการสร้าง แต่ฉันไม่เห็นใด ๆ ใน Github ของเขา
LawrenceC

12
คุณยังไม่ได้ดาวน์โหลดโปรแกรมจริงคุณได้ดาวน์โหลดซอร์สสำหรับโปรแกรมและใช่คุณต้องรวบรวมมันก่อน ตัดสินโดย makefile ในนั้นคุณจะต้องสร้างสิ่งที่มันเป็นใน MINGW
Mokubai

คำตอบ:


29

Github นั้นส่วนใหญ่จะใช้โดยโปรแกรมเมอร์เพื่อทำงานร่วมกันในโครงการต่างๆ ตัวเลือก 'ดาวน์โหลด ZIP' ดาวน์โหลดสำเนาของรหัสต้นฉบับลงในคอมพิวเตอร์ของคุณ โดยปกติแล้ว1นี้จะไม่มีสำเนาของ executables / ไบนารีที่รวบรวมได้ (เช่น; ไฟล์ exe)

รีลีสเป็นคุณลักษณะของ Github สำหรับซอฟต์แวร์การจัดส่งไปยังผู้ใช้ปลายทาง (ซึ่งโดยปกติจะไม่สนใจการเข้ารหัสจริง) รีลีสจะมาพร้อมกับบันทึกย่อประจำรุ่นและลิงก์เพื่อดาวน์โหลดซอฟต์แวร์หรือซอร์สโค้ด นี้เป็นครั้งแรกที่คุณควรตรวจสอบไบนารี

ในกรณีของคุณหน้าเผยแพร่ให้ดาวน์โหลดและติดตั้งไฟล์

อย่างไรก็ตามโครงการจำนวนมากจะไม่มีรีลีสใด ๆ (โดยเฉพาะอย่างยิ่งไม่ใช่สำหรับ Windows) ซึ่งในกรณีนี้คุณสามารถทำอย่างใดอย่างหนึ่งต่อไปนี้

  1. ค้นหาไบนารีที่อื่นบนอินเทอร์เน็ต โดยปกติแล้วเครื่องมือค้นหาเช่นDuckDuckGo (หรือGoogleถ้าคุณต้องการ) จะค้นหาสิ่งที่คุณต้องการได้อย่างง่ายดาย ลองค้นหาหรือ <application name> for Windows<application name> exe

  2. รวบรวมมันด้วยตัวคุณเอง คุณต้องมีความรู้พื้นฐานอย่างน้อยเกี่ยวกับภาษาการเขียนโปรแกรมเพื่อให้สามารถทำเช่นนั้นได้ ที่นี่อีกครั้งเครื่องมือค้นหาจะมีประโยชน์อย่างมากมาย ลองค้นหาหรือcompile <application name> on WindowsMinGW compile <application name>

    ที่นี่ฉันจะเรียกใช้พื้นฐานของการรวบรวมสาธารณูปโภคสำหรับ Widnows:

    • ดาวน์โหลดMinGW ฉันชอบแพคเกจนี้เพราะมันมาพร้อมกับบูสต์ (ซึ่งมีแอพพลิเคชั่นหลายตัวที่ใช้) และ cool shell นอกจากนี้ยังมาพร้อมกับgitซึ่งจะมีประโยชน์มากหากคุณต้องการรวบรวมไฟล์ที่โฮสต์ใน Github หรือที่เก็บการควบคุมเวอร์ชัน Git อื่น ๆ โดยไม่ต้องดาวน์โหลดแยกต่างหาก

    • รันคำสั่งต่อไปนี้ในcmdหรือpowershell:

      • cd c:\sources\hello: เปลี่ยนไดเรกทอรีเป็นที่ใดก็ตามที่เป็นที่ตั้งของไฟล์ต้นฉบับ
      • g++ helloworld.cpp -o helloworld.exe: นี่helloworld.cppคือชื่อของไฟล์ต้นฉบับหลักและhelloworld.exeเป็นชื่อของไฟล์ปฏิบัติการที่คอมไพล์แล้ว
      • ในกรณีที่คุณต้องคอมไพล์หลายไฟล์ให้ทำรายการก่อน-oสวิตช์:g++ helloworld.cpp foo.cpp -o helloworld.exe
      • นี่คือคำแนะนำสำหรับ C ++ หากคุณกำลังจัดการกับการใช้งานโปรแกรมใน C, นามสกุลไฟล์จะ.cแทน.cppและคุณควรใช้คำสั่งแทนgcc g++ส่วนที่เหลือจะเหมือนกันมากหรือน้อย
      • โปรดทราบว่าคุณอาจจำเป็นต้องระบุอาร์กิวเมนต์บรรทัดคำสั่งเพิ่มเติมเพื่อรวบรวมการปฏิบัติการที่ทำงานได้อย่างถูกต้อง หน้าโครงการมักจะมีรายละเอียดเหล่านี้
      • คุณอาจต้องการค้นหา makefiles ด้วยเช่นกัน นี้โพสต์กองมากเกินเป็นเรื่องเกี่ยวกับ makefiles ทั่วไปและคนนี้บอกเราว่าจะใช้พวกเขากับ MinGW หากโครงการมาพร้อมกับ makefile ให้ลองก่อนรวบรวมแหล่งข้อมูลด้วยตนเอง
      • helloworld.exeตอนนี้คุณควรจะสามารถที่จะเรียกใช้
    • หมายเหตุ:โครงการส่วนใหญ่จะมีไฟล์ README โปรดทำในสิ่งที่ชื่อมีความหมายไฟล์เหล่านี้มีข้อมูลที่สำคัญเกี่ยวกับการรวบรวมและใช้งานซอฟต์แวร์และโดยการอ่านคุณสามารถหลีกเลี่ยงความยุ่งยากที่ไม่จำเป็น

1หมายเหตุ: บางครั้งอาจมีโฟลเดอร์ชื่อbinหนึ่งในไฟล์ที่ดาวน์โหลดซึ่งควรมีไฟล์เรียกทำงาน / ไบนารีที่สามารถใช้งานได้

ดูCygwinและGOW ด้วยถ้าคุณต้องการโปรแกรมอรรถประโยชน์บรรทัดคำสั่ง GNU / Linux บน Windows ฉันจะทำให้บางรุ่นล่าสุดของ executables ประโยชน์บางอย่างสามารถดาวน์โหลดได้ที่นี่

อ่านเพิ่มเติม:
http://www.mingw.org/wiki/MinGW_for_First_Time_Users_HOWTO
https://gcc.gnu.org/onlinedocs/index.html#dir
https://stackoverflow.com/questions/22873884/how-do-i -run กำหนดค่าที่มี MinGW


ขอบคุณนี่เป็นคำตอบที่ดีมากและฉันได้เปลี่ยนมันเพื่อทำเครื่องหมายว่าเป็นคำที่ชัดเจน (ก่อนหน้านี้ฉันจะแก้ไขคำถามของฉันเพื่อให้ชัดเจนว่านี่คือสิ่งที่ฉันกำลังมองหา แต่ด้วยเหตุผลบางอย่างขอบเขตการแก้ไขข้อเขียนออก)
Josh Friedlander

ฉันไม่คิดว่ามันจะเป็นไปตามคำขอความโปรดปรานของ Aibobot แต่นั่นเป็นเรื่องระหว่างคุณกับเขา / เขา
Josh Friedlander

2
@JoshFriedlander ดีใจที่ได้ช่วยเหลือ! ฉันจะเพิ่มคำตอบเพิ่มเติมในภายหลัง ... อ๋อฉันกำลังสนทนากับ JourneymanGeek (Aibobot) เขากำลังรอสองสามวันเพื่อหาคำตอบใหม่ ๆ
rahuldottech

1
โครงการนี้อาจไม่มีเลย แต่โปรดทราบว่าโครงการส่วนใหญ่อาจมีการพึ่งพาซึ่งหมายความว่าหากคุณไปสู่เส้นทางการรวบรวมคุณอาจต้องติดตามไลบรารีที่ซอฟต์แวร์ขึ้นอยู่กับดาวน์โหลดและติดตั้ง ( หรือรวบรวมพวกเขาเช่นกัน) มันไม่ง่ายอย่างที่คิดเพียงแค่เรียกใช้ makefile บางคนอาจมีการสร้างสคริปอื่น ๆ เช่น CMake สคริปต์การกำหนดค่าอื่น ๆ
jrh

2
เป็นกระบวนการที่ง่ายมากในกรณีส่วนใหญ่? ยูทิลิตี้ github ส่วนใดที่ต้องการความรู้ในการรวบรวมมันมากกว่าสิ่งที่คุณได้อธิบายไว้ที่นี่?
gaazkam

87

คุณมองไปรอบ ๆ และพบการติดตั้งบนที่หน้าการเปิดตัว แน่ใจว่าคุณสามารถรวบรวมแหล่งที่มา แต่ฉันไม่คิดว่านั่นคือสิ่งที่คุณต้องการ


49
ตกลง หากคุณต้องถามคุณไม่ต้องการรวบรวมจากแหล่งที่มา
thunderblaster

10
หากคุณต้องถามคุณอาจไม่ควรได้รับการติดตั้งซอฟแวร์ที่มีอยู่เฉพาะในรูปแบบที่มา ...
jpaugh

11
ฉันอยากเห็นด้วยกับ @jpaugh ในขณะที่มันเป็นไปได้มากและบางครั้งจำเป็นต้องสร้างจากแหล่งที่มามันไม่ใช่สิ่งที่คุณสามารถไปและถามว่า "ฉันจะสร้างโปรแกรม C" ในลักษณะทั่วไปได้อย่างไร มีความแปรปรวนมากเกินไป บางโปรแกรมที่โชคดีนั้นง่ายเหมือน "คอมไพล์ไฟล์เหล่านี้" คนอื่นต้องการ makefiles บางคนต้องมีการอ้างอิงที่จะดาวน์โหลดก่อน กระบวนการตั้งค่าสำหรับการสร้างอาจมีความซับซ้อนและไม่จำเป็นต้องเป็นโปรแกรมที่ไม่เป็นมิตร เหนือสิ่งอื่นใดคุณต้องการค้นหาไฟล์ในโปรเจ็กต์ที่อธิบายถึงวิธีการสร้างเพราะเฉพาะจะขึ้นอยู่กับโครงการ
Kat

35
@jpaugh - ฉันจะบอกว่าคุณมีโอกาสที่ดีกว่าในการติดตั้งมัลแวร์ด้วยการดาวน์โหลดไฟล์ปฏิบัติการ - มัลแวร์นั้นไม่ค่อยโอเพ่นซอร์ส
ชื่อ

3
สมมติว่าคุณสามารถอ่านภาษาได้ ฉันรวบรวมสิ่งต่าง ๆ เป็นประจำบน linux และฉันไม่สามารถ / ไม่อ่านแหล่งข้อมูลใด ๆ แม้ว่าฉันจะทำได้ แต่ฉันจะไม่ทบทวน every.single.line
Geek

66

ไฟล์. c และ. h เป็นซอร์สโค้ด C

คุณจะต้องติดตั้งคอมไพเลอร์ C เช่น Visual Studio, tcc หรืออะไรที่คล้ายกันโหลดโปรเจ็กต์แล้วคอมไพล์มันเพื่อรัน

ความล้มเหลวนั้นโครงการมีหน้าเผยแพร่ ( ที่นี่ ) ที่จะช่วยให้คุณสามารถเข้าถึงรุ่นที่รวบรวมไว้ล่วงหน้าเพื่อประหยัดเวลาและความพยายาม


14
หากเขาต้องรวบรวมมันก็มักจะถูกอธิบายใน readme ซึ่งคุณไม่ได้พูดถึงว่าเขาควรมองหา เขาตั้งใจจะไปที่หน้าเผยแพร่ไม่ใช่แค่ "ล้มเหลว (ติดตั้งคอมไพเลอร์) ว่าเขาควรไปที่หน้าเผยแพร่"
barlop

3
mingw ยังเป็นที่นิยม
Zan Lynx

1
โครงการที่เฉพาะเจาะจงมักจะปรับให้เหมาะกับการใช้งานกับชุดเครื่องมือรวบรวม (เรียกว่า "toolchain") - ซึ่งเป็นที่กล่าวถึงตามปกติในไฟล์ readme (ใน UNIX และโครงการข้ามแพลตฟอร์มโดยทั่วไปเรียกว่า BUILD หรือ INSTALL) . ในโครงการที่ได้รับการดูแลน้อยกว่าหรือโครงการสำหรับสภาพแวดล้อมที่มีเครื่องมือที่รู้จักกันดีเพียงไม่กี่รายการผู้ใช้ควรคาดเดาจากรูปแบบและ / หรือเนื้อหาของไฟล์โครงการ
ivan_pozdeev

ทีซีซี? จริงๆ? คุณไม่จริงจังใช่มั้ย
Yashas

18

คำตอบนี้จะตอบคำถามทั่วไปของการสร้างแอปพลิเคชัน Windows ที่เป็นแหล่งเดียว (ใน C) หากคุณโชคดีอย่าง OP คุณอาจสามารถค้นหาไบนารีที่คอมไพล์แล้วได้

สิ่งแรกที่ควรระวังที่นี่คือไม่มีวิธีเดียวในการสร้างแอปจากแหล่งที่มา มีความแตกต่างประมาณมากเท่าที่มีโครงการที่แตกต่างกัน ที่กล่าวว่านี่คือขั้นตอนทั่วไปบางส่วน:

  1. หากคุณโชคดีโครงการจะให้คำแนะนำในการสร้างซึ่งโดยปกติจะอยู่ในREADMEไฟล์ บางครั้งอาจมีINSTALLไฟล์หรือเอกสารอื่น ๆ หากมีให้ปฏิบัติตามคำแนะนำ พวกเขาเป็นทางออกที่ดีที่สุดของคุณ

    ดังที่คนอื่น ๆ พูด แต่น่าเสียดายที่มันยากมากที่จะสร้างขั้นตอนการสร้างที่จำเป็นโดยไม่มีคำแนะนำ อย่างไรก็ตามอย่างน้อยเราสามารถพยายามอย่างดีที่สุดที่นี่ซึ่งจะใช้ได้กับโครงการที่ง่ายที่สุด

  2. ขาดคำแนะนำพอร์ตการโทรถัดไปคือการตรวจสอบว่าต้องใช้เครื่องมือสร้างใด

    1. หากคุณพบไฟล์ที่มี.slnหรือ.vcxprojนามสกุลนี่น่าจะเป็นโครงการ MSBuild / Visual Studio ดาวน์โหลดสำเนาของVisual Studio Communityหรือ Express (สำหรับ C ++) เปิดไฟล์โครงการนั้นจากนั้นคลิกปุ่มเล่นในแถบเครื่องมือ (หรือใช้เมนูสร้าง)

    2. หากคุณพบว่าสิ่งMakefileนี้อาจเป็นไปmakeได้ makeแต่นี้เป็นสิ่งที่ได้รับยิ่งยากเนื่องจากมีจำนวนมากที่เป็นอิสระและระบบที่เข้ากันไม่ว่าการใช้งาน

      1. เนื่องจากเป็นเป้าหมายต่อ Windows ก็อาจจะใช้MinGW ดาวน์โหลดสำเนาของที่ MSYS เปิดจากเมนูเริ่มต้นของคุณนำทาง ( cd) makeเพื่อไดเรกทอรีที่มีโครงการของคุณและเรียกใช้

      2. ในโอกาสที่หายากที่มันเป็น Cygwin แทน (ไม่มีวิธีที่ง่ายที่จะบอกโชคไม่ดี แต่ถ้า MinGW สร้างข้อผิดพลาดด้วยข้อผิดพลาดที่เกี่ยวข้องกับ "posix" นี่เป็นเดิมพันที่ดี) คุณจะต้องติดตั้งCygwinแทน น่าเสียดายที่สิ่งนี้ไม่ได้สร้างไบนารีของ Windows ดั้งเดิมคุณจะต้องเปิดโปรแกรมผ่าน Cygwin ทุกครั้ง

    3. "เครื่องมือสร้าง" อาจเป็นสคริปต์ที่กำหนดเองโดยใช้ชื่อbuild.batหรือคล้ายกัน ในกรณีนี้คุณจะต้องเปิดขึ้นและดูว่ามีอะไรอยู่ข้างในหรือลองเรียกใช้แล้วดูว่าข้อผิดพลาดคืออะไร หากคุณเปิดขึ้นมาและดูข้อความที่กล่าวถึงGCCให้กลับไปที่ข้อ 2.2.1 ขั้นตอน MinGW makeแต่เรียกใช้สคริปต์ที่กำหนดเองแทน

  3. เป็นไปได้ว่าไม่มีเครื่องมือสร้างเลย ถ้าหากคุณพบเป็นคนเดียว.cหรือ.cppไฟล์แล้วก็พออาจจะง่ายๆที่คุณสามารถทำรวบรวมตรง นี่คือMinGWเกือบทุกครั้งดังนั้นให้ดาวน์โหลดที่เปิดใช้งานเชลล์ MSYS นำทางไปยังไดเรกทอรีและเรียกใช้อย่างใดอย่างหนึ่งgccหรือg++ตามความจำเป็น - เช่นgcc -o program.exe program.c

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


อภิธานศัพท์

สร้างเครื่องมือ

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

  • ทำให้ใช้งานได้ทุกที่บน Linux และใช้กันอย่างแพร่หลายบน Windows โครงการต่างๆที่ใช้สามารถจะระบุการปรากฏตัวของการmakeMakefile

  • MSBuildเป็น Windows เฉพาะและมักจะเห็นร่วมกับ Visual Studio เหล่านี้มักจะมาพร้อมกับ*.slnหรือ*.vcxprojไฟล์

toolchains

toolchainเป็นคอมไพเลอร์และสนับสนุนเครื่องมือ เช่นเดียวกับเครื่องมือสร้างมีหลายและพวกเขามักจะใช้กับหนึ่งในเครื่องมือสร้าง

  • MSVCเป็น toolchain ของ Microsoft นี่คือ toolchain ที่พบบ่อยที่สุดสำหรับการพัฒนาดั้งเดิมของ Windows โดยปกติจะใช้กับระบบ MSBuild และสร้างโดยทั่วไปจะสร้างผ่าน Visual Studio อย่างไรก็ตามโครงการ MSVC ที่ทันสมัยสามารถใช้งานได้Makefileเช่นกัน

  • GCC ( MinGW ) เป็นพอร์ตของ GCC สำหรับ Windows makeมักจะใช้กับ หากโครงการมีการกำหนดเป้าหมายไปยัง Windows แบบดั้งเดิมและมี a Makefileอาจเป็นไปได้ว่าสำหรับ MinGW-GCC

  • GCC ( Cygwin ) สร้างสภาพแวดล้อมที่เข้ากันได้กับ POSIX สิ่งนี้ช่วยให้คุณสามารถคอมไพล์โปรแกรมส่วนใหญ่ที่เขียนขึ้นสำหรับ Linux หรือ Unix โดยตรงและทำงานภายใต้ Windows ได้โดยตรง เมื่อเร็ว ๆ นี้ใน Windows 10 Bash บน Ubuntu บน Windowsเป็นอีกทางเลือกหนึ่ง GCC makeมักจะใช้ร่วมกับ

กรอบและไลบรารี

ไลบรารี่เป็นชุดโค้ดที่นำมาใช้ซ้ำได้โดยคนอื่นซึ่งหลาย ๆ โปรแกรมขึ้นอยู่กับว่าจะหลีกเลี่ยงการสร้างวงล้อใหม่ คุณต้องมีการขึ้นต่อกันเหล่านี้เพื่อสร้างโครงการ หากคุณโชคดีพวกเขาจะรวมอยู่ในการดาวน์โหลดครั้งแรกของคุณ แต่นี่อาจไม่ได้เกิดขึ้นเสมอไป

เฟรมเวิร์กเป็นคอลเล็กชันของไลบรารีที่มีประสิทธิภาพ หลายโครงการใช้กรอบงานเดียวซึ่งคุณจะต้องมี สิ่งเหล่านี้มักจะมาพร้อมกับระบบการสร้างของตัวเองเช่นกัน แต่การระบุพวกเขาทั้งหมดจะเป็นไปไม่ได้

ส่วนที่ยากที่สุดคือการจัดการกับกรอบพิเศษและการอ้างอิงห้องสมุด ถ้าบอกว่าโครงการใช้Qtคุณจะต้องใช้ระเบียบทั้งหมดเพื่อสร้างอย่างถูกต้อง นี่เป็นภารกิจที่ยิ่งใหญ่และถ้าคุณไม่มีประสบการณ์มาก่อนคงดีกว่าถ้าคุณขอความช่วยเหลือจากผู้อื่นโดยตรง


1
ในการนี้โดยเฉพาะอย่างยิ่งกรณี Makefile จะช่วยให้คุณมีเงื่อนงำที่ดีที่จะเป็นสำหรับ MinGW เป็นบรรทัดแรกเป็นMINGW_PREFIX = $(shell which gcc | awk -F/bin/ '{ printf $$1 }'):)
DavidPostill

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