Bagaimana cara saya menginstal program Windows (ditulis dalam C) yang diunduh dari GitHub?

44

Saya telah mengunduh program Windows sederhana yang mati dari GitHub ( ini jika relevan). Saya mengunduhnya sebagai file ZIP, tetapi saya tidak tahu cara menginstalnya. Itu ditulis dalam C, saya pikir. Apakah saya memerlukan kompiler? (Visual Studio?) Apakah ada sesuatu yang sederhana yang saya lewatkan?

Josh Friedlander
sumber
9
Maaf, ini jelas merupakan masalah noob utama yang saya alami. Bagaimana? Tidak ada file yang dapat dieksekusi.
Josh Friedlander
6
Anda mungkin memerlukan Windows SDK dan header C terkait untuk mengkompilasi program. Biasanya, dependensi disebutkan dan mengkompilasi instruksi termasuk dalam Readme. Dalam hal ini, tidak ada yang disertakan, jadi Anda harus meminta pemilik repo / penulis proyek untuk mendapatkan informasi yang relevan.
Larssend
7
Anda memang membutuhkan kompiler. Saya akan menjangkau dev dan bertanya bagaimana membangunnya. Biasanya perangkat lunak Linux, misalnya, disediakan sebagai sumber termasuk membangun instruksi tetapi saya tidak melihat ada di Github-nya.
LawrenceC
12
Anda belum mengunduh program yang sebenarnya, Anda telah mengunduh sumber untuk program tersebut dan, ya, Anda harus mengompilasinya terlebih dahulu. Dilihat oleh makefile di sana Anda perlu membangun apa pun di MINGW.
Mokubai
21
di sini adalah executable github.com/renatosilva/winutils/releases
barlop

Jawaban:

29

Github terutama digunakan oleh programmer untuk berkolaborasi dalam proyek. Opsi 'Unduh ZIP' mengunduh salinan kode sumber ke komputer Anda. Ini biasanya 1 tidak mengandung salinan file executable / binari yang dapat dikompilasi (yaitu; file exe)

Rilis , adalah fitur Github untuk pengiriman perangkat lunak kepada pengguna akhir (yang biasanya tidak tertarik pada pengkodean yang sebenarnya). Rilis disertai dengan catatan rilis dan tautan untuk mengunduh perangkat lunak atau kode sumber. Ini adalah tempat pertama Anda harus memeriksa binari .

Dalam kasus Anda, halaman rilis menawarkan unduhan dan pengaturan file.

Namun, banyak proyek tidak akan memiliki rilis apa pun (terutama untuk Windows), dalam hal ini Anda dapat melakukan salah satu dari yang berikut:

  1. Cari binari di tempat lain di internet. Biasanya mesin pencari seperti DuckDuckGo (atau Google , jika Anda mau) akan menemukan apa yang Anda inginkan dengan mudah. Coba cari <application name> for Windowsatau <application name> exe.

  2. Kompilasi sendiri. Anda harus memiliki setidaknya beberapa pengetahuan dasar tentang bahasa pemrograman untuk dapat melakukannya. Di sini sekali lagi, mesin pencari dapat sangat membantu. Coba cari compile <application name> on Windowsatau MinGW compile <application name>.

    Di sini saya akan menjalankan dasar-dasar mengkompilasi utilitas untuk Janda:

    • Unduh MinGW . Saya pribadi menyukai paket ini karena dilengkapi dengan boost (yang menggunakan beberapa aplikasi) dan shell keren. Ini juga disertai dengan git, yang bisa sangat berguna jika Anda ingin mengkompilasi file yang dihosting di Github atau repositori kontrol versi Git lainnya tanpa harus mengunduh sumbernya secara terpisah.

    • Jalankan perintah berikut di cmdatau powershell:

      • cd c:\sources\hello: Ubah direktori ke mana pun file sumbernya berada.
      • g++ helloworld.cpp -o helloworld.exe: di sini helloworld.cppadalah nama file sumber utama, dan helloworld.exeadalah nama dari executable yang dikompilasi.
      • Jika Anda harus mengompilasi beberapa file, daftarkan sebelum -oberalih:g++ helloworld.cpp foo.cpp -o helloworld.exe
      • Ini adalah instruksi untuk C ++. Jika Anda berurusan dengan aplikasi yang diprogram dalam C, ekstensi file akan .cbukan .cpp, dan Anda harus menggunakan gccperintah sebagai ganti g++. Sisanya kurang lebih identik
      • Perhatikan bahwa Anda mungkin perlu menentukan lebih banyak argumen baris perintah untuk mengkompilasi executable yang berfungsi dengan baik. Halaman proyek biasanya akan memiliki perincian ini.
      • Anda juga mungkin ingin melihat makefiles. Ini posting Stack Overflow adalah tentang makefiles pada umumnya, dan yang satu ini memberitahu kita bagaimana menggunakannya dengan MinGW. Jika sebuah proyek dilengkapi dengan makefile, coba sebelum kompilasi sumber secara manual.
      • Anda sekarang seharusnya bisa berlari helloworld.exe.
    • Catatan: Sebagian besar proyek dilengkapi dengan file README. Silakan lakukan sesuai namanya, file-file ini berisi informasi penting mengenai kompilasi dan menjalankan perangkat lunak dan dengan membacanya Anda dapat menghindari banyak kerumitan yang tidak perlu.

1 Catatan: Terkadang mungkin ada folder yang dipanggil di binantara file yang diunduh, yang harus berisi file executable / binari yang dapat digunakan

Juga lihat Cygwin dan GOW jika Anda ingin utilitas baris perintah GNU / Linux pada Windows. Saya membuat beberapa versi terbaru dari beberapa executable yang berguna tersedia untuk diunduh di sini .

Bacaan lebih lanjut:
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-configure-with-mingw

rahuldottech
sumber
Terima kasih, ini adalah jawaban yang bagus, dan saya telah mengubahnya untuk ditandai sebagai yang pasti. (Saya sebelumnya telah mengedit pertanyaan saya untuk memperjelas bahwa ini adalah apa yang saya cari, tetapi untuk beberapa alasan BoundaryImposition mengeditnya.)
Josh Friedlander
Saya tidak berpikir itu memenuhi permintaan karunia Aibobot, namun, itu antara Anda dan dia.
Josh Friedlander
2
@JoshFriedlander Senang bisa membantu! Saya akan menambahkan lebih banyak ke jawabannya nanti ... Ya, saya sedang mengobrol dengan JourneymanGeek (Aibobot), dia akan menunggu beberapa hari untuk jawaban baru muncul.
rahuldottech
1
Proyek ini mungkin tidak memiliki, tetapi perhatikan bahwa sebagian besar proyek mungkin akan memiliki dependensi , yang berarti bahwa jika Anda pergi rute kompilasi, Anda mungkin perlu melacak perpustakaan yang tergantung pada perangkat lunak, mengunduhnya, dan menginstalnya ( atau kompilasi juga). Biasanya tidak sesederhana menjalankan makefile; beberapa dari mereka bahkan mungkin memiliki skrip bangunan lain seperti cmake, konfigurasikan skrip, dll.
jrh
2
Apakah prosesnya benar-benar sederhana dalam kebanyakan kasus? Bagian mana dari utilitas github yang membutuhkan pengetahuan yang jauh lebih besar untuk mengompilasinya daripada yang telah Anda jelaskan di sini?
gaazkam
87

Anda melihat-lihat dan menemukan penginstalnya di halaman rilis . Tentu Anda dapat mengkompilasi sumbernya, tetapi saya tidak berpikir itu yang Anda inginkan.

Journeyman Geek
sumber
49
Sepakat. Jika Anda harus bertanya, Anda tidak ingin dikompilasi dari sumber.
thunderblaster
10
Jika Anda harus bertanya, Anda mungkin seharusnya tidak menginstal perangkat lunak yang hanya tersedia dalam bentuk sumber ...
jpaugh
11
Saya cenderung setuju dengan @jpaugh. Meskipun sangat mungkin dan kadang-kadang diperlukan untuk membangun dari sumber, itu bukan sesuatu yang Anda bisa pergi dan tanyakan "bagaimana cara membangun program C" dengan cara yang umum. Ada terlalu banyak perbedaan. Beberapa program yang beruntung sesederhana "kompilasi file-file ini". Yang lain membutuhkan makefile. Beberapa memerlukan dependensi untuk diunduh terlebih dahulu. Proses pengaturan untuk membangun bisa rumit dan tidak selalu ramah non-programmer. Namun, yang paling penting, Anda ingin mencari file di proyek yang menjelaskan cara membangun, karena spesifiknya tergantung pada proyek.
Kat
35
@ jpaugh - Saya akan mengatakan Anda memiliki peluang lebih besar untuk menginstal malware dengan mengunduh executable - malware jarang open-source.
beri nama
3
Dengan asumsi Anda benar-benar dapat membaca bahasa. Saya melakukan semi-kompilasi secara rutin pada linux dan saya tidak bisa / tidak membaca sumbernya. Bahkan jika saya bisa, saya tidak akan meninjau every.single.line.
Journeyman Geek
66

File .c dan .h adalah kode sumber C.

Anda perlu menginstal kompiler C seperti Visual Studio, tcc atau yang serupa, memuat proyek dan kemudian kompilasi untuk menjalankannya.

Gagal itu, proyek memiliki halaman rilis (di sini ) yang akan memberi Anda akses ke versi pra-disusun untuk menghemat waktu dan usaha Anda.

Fazer87
sumber
14
Jika dia harus mengkompilasinya maka biasanya akan dijelaskan dalam readme, yang Anda bahkan tidak menyebutkan dia harus mencari. Dia seharusnya pergi ke halaman rilis, bukan hanya "gagal itu (menginstal kompiler), bahwa dia harus pergi ke halaman rilis"
barlop
3
mingw juga populer.
Zan Lynx
1
Sebuah proyek khusus biasanya dirancang untuk digunakan dengan seperangkat alat kompilasi tertentu (disebut "toolchain") - yang biasanya disebut dalam file readme (dalam proyek UNIX dan lintas-platform, itu secara konvensional bernama BUILD atau INSTALL) . Dalam proyek yang kurang dipelihara dengan sangat baik, atau proyek untuk lingkungan dengan hanya beberapa perkakas yang terkenal, pengguna seharusnya menebak dari format dan / atau konten file proyek.
ivan_pozdeev
TCC? Benarkah? Anda tidak serius, bukan?
Yashas
18

Jawaban ini akan menjawab pertanyaan umum tentang membangun aplikasi Windows hanya sumber (dalam C). Jika Anda beruntung seperti OP, Anda mungkin dapat menemukan binari yang telah dikompilasi.

Hal pertama yang harus diperhatikan di sini adalah tidak ada satu cara untuk membangun aplikasi dari sumber. Ada kira-kira variasi sebanyak ada proyek yang berbeda. Yang mengatakan, berikut adalah beberapa langkah umum:

  1. Jika Anda beruntung, proyek akan memberikan instruksi pembuatan, biasanya di dalam READMEfile. Kadang-kadang, mungkin juga ada INSTALLfile, atau dokumentasi lain yang tersedia. Jika tersedia, ikuti instruksi. Itu taruhan terbaik Anda.

    Seperti yang dikatakan orang lain, sayangnya, sangat sulit untuk merekonstruksi langkah-langkah pembangunan yang diperlukan tanpa instruksi. Namun, setidaknya kita dapat melakukan upaya upaya terbaik di sini, yang akan bekerja untuk sebagian besar proyek sederhana.

  2. Karena tidak memiliki instruksi, porta panggilan berikutnya adalah untuk memeriksa alat bangun mana yang diperlukan.

    1. Jika Anda menemukan file dengan ekstensi .slnatau .vcxproj, ini mungkin proyek MSBuild / Visual Studio. Unduh salinan Visual Studio Community atau Express (untuk C ++), buka file proyek di sana, dan klik tombol putar di bilah alat (atau gunakan menu bangun).

    2. Jika Anda menemukan Makefile, ini mungkin akan membutuhkan make. Tetapi di sinilah segalanya menjadi lebih sulit, karena ada begitu banyak sistem independen dan tidak kompatibel yang digunakan make.

      1. Karena ditargetkan ke Windows, mungkin akan menggunakan MinGW . Unduh salinannya, luncurkan MSYS dari menu mulai Anda, navigasikan ( cd) ke direktori yang berisi proyek Anda, dan jalankan make.

      2. Pada kesempatan yang jarang terjadi, ini adalah Cygwin (sayangnya, tidak ada cara mudah untuk mengatakannya, tetapi jika MinGW membuat kesalahan dengan kesalahan yang berhubungan dengan "posix", ini adalah taruhan yang layak), Anda harus menginstal Cygwin sebagai gantinya. Sayangnya, ini tidak membangun binari Windows asli - Anda harus meluncurkan program melalui Cygwin setiap waktu.

    3. "Alat bangun" bisa berupa skrip khusus dengan nama build.batatau serupa. Dalam hal ini, Anda harus membukanya dan melihat apa yang ada di dalamnya, atau mencoba menjalankannya dan melihat apa kesalahannya. Jika Anda membukanya dan melihat menyebutkan GCC, kembali ke 2.2.1. MinGW tetapi jalankan skrip khusus alih-alih make.

  3. Mungkin saja tidak ada alat bangun sama sekali. Jika semua yang Anda temui adalah satu .catau .cppfile, maka itu mungkin cukup sederhana sehingga Anda dapat melakukan kompilasi langsung. Ini, sekali lagi, hampir selalu MinGW , jadi unduh itu, luncurkan shell MSYS, navigasikan ke direktori, dan aktifkan salah satu gccatau g++seperlunya - mis.gcc -o program.exe program.c

  4. Mungkin tidak ada yang berhasil. Jika Anda mendapat pesan kesalahan pada langkah apa pun, pesan itu mungkin berisi petunjuk tentang apa yang hilang. Satu kemungkinan adalah bahwa Anda kurang memiliki kerangka kerja atau pustaka yang diperlukan - jika Anda merasa sanggup melakukannya, Anda dapat mencoba mengunduh dan menambahkannya ke lingkungan build Anda, tetapi ini biasanya bukan proses yang sepele dan memiliki banyak variasi sehingga tidak ada cara untuk membahasnya dalam sebuah jawaban.


Glosarium

Bangun alat

Sebuah alat membangun memungkinkan Anda untuk membangun sebuah proyek dengan sangat sedikit perintah. Untuk sebagian besar proyek dengan lebih dari satu file sumber, alat build akan dilibatkan di suatu tempat. Ada beberapa alat pembuatan, tetapi yang paling umum adalah:

  • membuat , digunakan di mana-mana di Linux dan semakin umum di Windows. Proyek yang menggunakan makebiasanya dapat diidentifikasi dengan adanya a Makefile.

  • MSBuild khusus untuk Windows dan biasanya terlihat bersamaan dengan Visual Studio. Ini biasanya akan disertai dengan file *.slnatau *.vcxproj.

Rantai alat

Sebuah toolchain adalah compiler dan mendukung alat. Sama seperti alat build, ada beberapa, dan mereka biasanya digunakan dengan salah satu alat build.

  • MSVC adalah rantai alat Microsoft. Ini adalah toolchain paling umum untuk pengembangan asli Windows. Ini biasanya digunakan dengan sistem MSBuild, dan build biasanya dibuat melalui Visual Studio. Namun, proyek MSVC modern juga dapat digunakan Makefile.

  • GCC ( MinGW ) adalah port dari GCC untuk Windows. Biasa digunakan bersama make. Jika proyek ditargetkan ke Windows secara asli dan memiliki Makefile, itu mungkin untuk MinGW-GCC.

  • GCC ( Cygwin ) menciptakan lingkungan yang kompatibel dengan POSIX. Ini memungkinkan Anda untuk langsung mengkompilasi sebagian besar program yang ditulis untuk Linux atau Unix dan membuatnya bekerja langsung di bawah Windows. Baru-baru ini di Windows 10, Bash di Ubuntu pada Windows adalah alternatif. GCC biasanya digunakan bersamaan dengan make.

Kerangka kerja dan perpustakaan

Perpustakaan adalah seperangkat kode yang dapat digunakan kembali yang ditulis oleh orang lain, yang bergantung pada banyak program untuk menghindari penciptaan kembali roda. Anda harus memiliki dependensi ini untuk membangun proyek. Jika Anda beruntung, mereka akan disertakan dengan unduhan awal Anda, tetapi ini tidak selalu terjadi.

Kerangka kerja secara efektif adalah kumpulan perpustakaan. Banyak proyek menggunakan satu kerangka kerja, yang juga akan Anda butuhkan. Ini sering datang dengan sistem build mereka sendiri juga, tetapi mendaftar mereka semua tidak mungkin.

Bagian tersulit adalah berurusan dengan kerangka kerja tambahan dan dependensi perpustakaan. Jika, katakanlah, proyek menggunakan Qt - maka Anda akan membutuhkan seluruh kekacauan untuk membangunnya dengan benar. Ini adalah pekerjaan besar, dan kecuali Anda memiliki pengalaman sebelumnya, mungkin lebih baik meminta bantuan langsung orang lain di sini.

Bob
sumber
1
Dalam kasus khusus ini, makefile memberi Anda petunjuk yang baik bahwa itu untuk mingw seperti baris pertama MINGW_PREFIX = $(shell which gcc | awk -F/bin/ '{ printf $$1 }'):)
DavidPostill
1
yang ini pantas mendapat imo
tbodt