GitHub'dan indirilmiş bir Windows programını (C ile yazılmış) nasıl yüklerim?


44

Ben GitHub ölü basit bir Windows programı (indirdiğiniz bu alakalı ise). Bir ZIP dosyası olarak indirdim ancak nasıl yükleneceğini bulamıyorum. C ile yazılmış sanırım. Bir derleyiciye ihtiyacım var mı? (Visual Studio?) Kaybettiğim basit bir şey var mı?


9
Maalesef, bu benim belli başlı noob sorunum. Nasıl? Yürütülebilir bir dosya yok.
Josh Friedlander

6
Programı derlemek için muhtemelen Windows SDK'ya ve ilgili C başlıklarına ihtiyacınız vardır. Normalde, bağımlılıklardan bahsedilir ve derleme talimatları Beniokuta eklenir. Bu durumda, ikisi de dahil değildir; bu nedenle, depo sahibinden / proje yazarından konuyla ilgili bilgi almasını istemeniz gerekir.
Larssend

7
Bir derleyiciye ihtiyacınız var. Geliştiriciye ulaşır ve nasıl inşa edeceğimi sorardım. Tipik olarak Linux yazılımı, örneğin kaynak olarak sağlanmıştır, derleme talimatlarını içerir, ancak Github'unda hiçbir şey göremiyorum.
LawrenceC

12
Gerçek bir program indirmediniz, programın kaynağını indirdiniz ve evet, önce onu derlemeniz gerekiyor. Oradaki makefile tarafından bakılırsa, MINGW'de ne varsa inşa etmeniz gerekecektir.
Mokubai

21
Burada çalıştırılabilir olduğu github.com/renatosilva/winutils/releases
barlop

Yanıtlar:


29

Github, öncelikle programcılar tarafından projelerde işbirliği yapmak için kullanılır. 'ZIP İndir' seçeneği, kaynak kodunun bir kopyasını bilgisayarınıza indirir. Bu genellikle 1 , derlenmiş kullanılabilir çalıştırılabilir dosyaların / ikili dosyaların bir kopyasını içermez (örneğin; exe dosyaları)

Bültenleri , son kullanıcılara (genellikle gerçek kodlamaya ilgi duymayan) gönderi yazılımı için bir Github özelliğidir. Sürümlere, yazılımı veya kaynak kodunu indirmek için sürüm notları ve bağlantılar eşlik eder. Bu, ikili dosyaları kontrol etmeniz gereken ilk yer .

Senin durumunda, bültenleri sayfa indirme ve kurulum dosyaları sunar.

Bununla birlikte, birçok projede sürüm çıkmayacaktır (özellikle Windows için değil), bu durumda aşağıdakilerden birini yapabilirsiniz:

  1. İnternette başka bir yerde ikili dosyaları arayın. Genellikle DuckDuckGo (veya tercih ederseniz Google) gibi arama motorları kolayca ne istediğinizi bulacaksınız. <application name> for WindowsVeya aramayı deneyin <application name> exe.

  2. Derle kendin yap. Bunu yapabilmek için en azından programlama dili hakkında bazı temel bilgilere sahip olmanız gerekir. Burada yine, arama motorları büyük ölçüde yardımcı olabilir. compile <application name> on WindowsVeya aramayı deneyin MinGW compile <application name>.

    Burada Widnow'lar için derleme araçlarının temellerini inceleyeceğim:

    • MinGW'yi indirin . Ben şahsen bu paketi tercih ediyorum çünkü destek (birkaç uygulamanın kullandığı) ve serin bir kabuk ile geliyor. Ayrıca git, Github veya diğer Git sürüm kontrol havuzlarında barındırılan dosyaları, kaynağı ayrı olarak indirmek zorunda kalmadan derlemek istiyorsanız, bu çok kullanışlı olabilir.

    • Aşağıdaki komutları cmdveya içinde çalıştırın powershell:

      • cd c:\sources\hello: Dizini, kaynak dosya (ların) bulunduğu konum olarak değiştirin.
      • g++ helloworld.cpp -o helloworld.exe: işte helloworld.cppana kaynak dosyanın helloworld.exeadı ve derlenen çalıştırılabilir dosyanın adı.
      • Birden fazla dosyayı derlemek zorunda kalmanız durumunda, -oanahtardan önce bunları listeleyin :g++ helloworld.cpp foo.cpp -o helloworld.exe
      • Bunlar C ++ için talimatlar. C'de programlanan uygulamalarla uğraşıyorsanız, dosya uzantısı .cyerine olacaktır ve bunun yerine komutu .cppkullanmanız gerekir . Gerisi az ya da çok aynıgccg++
      • Düzgün çalışan bir yürütülebilir dosyayı derlemek için daha fazla komut satırı argümanı belirtmeniz gerekebileceğini unutmayın. Proje sayfası genellikle bu ayrıntılara sahip olacaktır.
      • Muhtemelen kesinlikle makefiles içine bakmak da istersiniz. Bu Yığın Taşması postası genel olarak makefiles ile ilgilidir ve bu bize MinGW ile nasıl kullanıldığını anlatıyor. Bir proje makefile ile geliyorsa, kaynağı el ile derlemeden önce deneyin.
      • Şimdi kaçabilmelisin helloworld.exe.
    • Not: Çoğu proje bir README dosyası ile birlikte gelir. Lütfen adının ne anlama geldiğini yapın, bu dosyalar yazılımı derleme ve çalıştırmayla ilgili önemli bilgiler içerir ve okuyarak çok fazla gereksiz güçlükten kaçınabilirsiniz.

1 Not: Bazen binindirilen dosyalar arasında, kullanılabilir yürütülebilir dosyalar / ikili dosyalar içermesi gereken bir klasör olabilir.

Ayrıca Windows'ta GNU / Linux komut satırı yardımcı programlarını istiyorsanız, Cygwin ve GOW'a bakın . Bazı kullanışlı çalıştırılabilir dosyaların en son sürümlerini buradan indirebilirsiniz .

Daha fazla okuma:
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 -işlemeli-yapılandırmak-ile-MinGW


Teşekkürler, bu harika bir cevap ve kesin olarak işaretlenerek değiştirdim. (Daha önce aradığım şeyin ne olduğunu daha açık hale getirmek için sorumu daha önce değiştirmiştim, ancak bir sebepten ötürü BoundaryImposition düzenlemişti.)
Josh Friedlander

Ancak, Aibobot'un lütuf talebini yerine getirdiğini sanmıyorum, ancak bu siz ve onun arasında.
Josh Friedlander

2
@JoshFriedlander Herhangi bir yardımı olmaktan mutluluk duyuyorum! Daha sonra cevaba daha fazlasını ekleyeceğim ... Evet, JourneymanGeek (Aibobot) ile sohbet ediyordum, yeni cevapların yüzeye çıkması için birkaç gün bekleyecek.
rahuldottech

1
Bu projenin herhangi biri olmayabilir, ancak çoğu projenin muhtemelen bağımlılıkları olacağını unutmayın; bu, derleme rotasına giderseniz, yazılımın bağlı olduğu kütüphaneleri izlemeniz, yüklemeniz ve yüklemeniz gerekebileceği anlamına gelir ( veya onları da derleyin). Bu genellikle sadece makefile komutunu çalıştırmak kadar kolay değildir; hatta bazıları vb cmake, configure komut gibi diğer yapı komut dosyanız olabilir
JRH

2
Çoğu durumda süreç gerçekten bu kadar basit mi? Github araçlarının hangi kısmı, bunları derlemek için burada anlattıklarınızdan daha fazla bilgi gerektirir.
gaazkam

87

Etrafa bakmak ve üzerinde yükleyici bulmak bırakma sayfa . Tabii kaynağı derleyebildin, ama istediğin şeyin bu olduğunu sanmıyorum.


49
Kabul. Sormanız gerekiyorsa, kaynaktan derlemek istemezsiniz.
thunderblaster


11
@Jpaugh ile aynı fikirdeyim. Kaynaktan derlemek çok mümkün ve bazen gerekli olsa da, genel olarak "nasıl bir C programı oluşturabilirim" diye sorabileceğiniz bir şey değil. Sadece çok fazla varyans var. Bazı şanslı programlar "bu dosyaları derlemek" kadar kolaydır. Diğerlerinin makefile ihtiyacı var. Önce indirilecek bazı bağımlılıklar gerekir. Oluşturma için hazırlık süreci karmaşık olabilir ve programlayıcı dostu değildir. Her şeyden önce, yine de, projeye bağlı olduğundan, nasıl yapılacağını açıklayan bir dosya bulmak istiyorsunuz.
Kat

35
@jpaugh - Bir yürütülebilir dosyayı indirerek kötü amaçlı yazılım yükleme şansınız çok daha yüksektir - kötü amaçlı yazılım nadiren açık kaynaklıdır.
namey

3
Diyelim ki dili okuyabiliyorsunuz. Rutin olarak Linux üzerinde bir şeyler derliyorum ve kaynaklardan hiçbirini okuyamıyorum / okuyamıyorum. Yapabilsem bile, every.single.line 'ı gözden geçirmeyeceğim
Journeyman Geek

66

.c ve .h dosyaları C kaynak kodudur.

Visual Studio, tcc veya benzeri bir C derleyicisi kurmanız, projeyi yüklemeniz ve çalıştırmak için derlemeniz gerekir.

Bunu başaramazsanız, projede zamandan ve emekten tasarruf etmek için önceden derlenmiş bir sürüme erişmenizi sağlayacak bir sürüm sayfası ( burada ) bulunur.


14
Eğer onu derlemek zorunda kalsaydı, o zaman genellikle beni araması gerektiğini bile söylemediğiniz bir benioku ile açıklanırdı. Yayın sayfasına gitmesi gerekiyor, sadece "bir derleyici kurarken, yayın sayfasına
gitmesi gerekmiyor

3
mingw de popülerdir.
Zan Lynx

1
Belirli bir proje genellikle belirli bir derleme araçları setiyle ("araç zinciri" olarak adlandırılır) kullanılmak üzere düzenlenir - bunlardan biri normalde benioku dosyasında belirtilir (UNIX ve platformlar arası projelerde, geleneksel olarak BUILD veya INSTALL olarak adlandırılır) . Sadece birkaç tanınmış araç zincirine sahip, yıldızlardan bakılmayan projelerden veya ortamlardan gelen projelerden bir kullanıcının, proje dosyalarının biçiminden ve / veya içeriğinden tahmin yapması beklenir.
ivan_pozdeev

TCC? Gerçekten mi? Ciddi değildin, değil mi?
Yashas

18

Bu cevap, sadece kaynak kodlu bir Windows uygulaması (C) 'de yapılan genel soruyu ele alacaktır. OP gibi şanslıysanız, önceden derlenmiş ikili dosyaları bulabilirsiniz.

Burada dikkat edilmesi gereken ilk şey, kaynaktan bir uygulama oluşturmanın tek bir yolu olmadığıdır. Farklı projeler olduğu gibi yaklaşık olarak birçok varyasyon vardır. Yani, işte bazı genel adımlar:

  1. Şanslıysanız, proje genellikle READMEdosya içinde derleme talimatları sağlayacaktır . Bazen, bir INSTALLdosya veya başka bir belge de olabilir . Bunlar varsa, talimatları izleyin. Onlar senin en iyi seçeneğin.

    Diğerlerinin de söylediği gibi, ne yazık ki, gerekli derleme adımlarını talimatlar olmadan yeniden oluşturmak çok zor. Bununla birlikte, en basit projeler için çalışacak olan en azından en iyi çabayı gösterme girişiminde bulunabiliriz.

  2. Eksik talimatlar, bir sonraki arama portu hangi derleme aracının gerekli olduğunu kontrol etmektir.

    1. Bir .slnveya .vcxprojuzantılı bir dosya bulursanız , bu muhtemelen bir MSBuild / Visual Studio projesidir. Visual Studio Community veya Express'in bir kopyasını (C ++ için) indirin, o proje dosyasını orada açın ve araç çubuğundaki oynat düğmesini tıklayın (veya yapı menüsünü kullanın).

    2. Bir bulursanız Makefile, bu muhtemelen gerektirecektir make. Ancak, işlerin daha da zorlaştığı yer burasıdır, çünkü kullanan pek çok bağımsız ve uyumsuz sistem vardır make.

      1. Windows’u hedeflediği için muhtemelen MinGW’yi kullanacak . Bunun bir kopyasını indirin, başlangıç ​​menünüzden MSYS'yi başlatın cd, projenizi içeren dizine gidin ( ) ve çalıştırın make.

      2. Nadiren bunun yerine Cygwin olduğu zaman (maalesef söylemenin kolay bir yolu yoktur, ancak MinGW "posix" ile ilgili bir hatayla hatalar çıkarırsa, bu iyi bir bahistir), bunun yerine Cygwin'i kurmanız gerekir . Ne yazık ki, bu yerel Windows ikili dosyalarını oluşturmaz - programı her seferinde Cygwin üzerinden başlatmanız gerekir.

    3. "Derleme aracı", adı build.batveya benzeri bir özel komut dosyası olabilir . Bu durumda, onu açıp içeride ne olduğunu görmek ya da çalıştırmayı denemek ve hataların ne olduğunu görmek zorundasınız. Açarsanız ve bahsedenleri görürseniz GCC, 2.2.1'e geri dönün. MinGW adım ama yerine özel komut dosyasını çalıştırın make.

  3. Herhangi bir yapım aracı olmaması mümkündür. Karşılaştığınız her şey tek .cveya bir .cppdosyaysa, düz bir derleme yapabileceğiniz kadar basit olabilir. Bunlar, yine, hemen hemen her zaman MinGW , yani indirin, MSYS kabuğunu çalıştırın, dizine gidin ve ya gccya g++da gerektiği gibi çağırın - örneğingcc -o program.exe program.c

  4. Bunların hiçbiri işe yaramazsa mümkündür. Herhangi bir adımda hata mesajlarınız varsa, eksik olanlarla ilgili bir ipucu içerebilirler. Bir olasılık, gerekli belirli çerçevelerden veya kütüphanelerden mahrum olmanızdır - eğer hissediyorsanız, bunları indirmeyi ve bunları derleme ortamınıza eklemeyi deneyebilirsiniz, ancak bu genellikle önemsiz bir işlem değildir ve çok fazla varyasyonu yoktur. onları cevap olarak kapatmanın bir yolu.


Sözlük

Araçlar oluşturma

Bir derleme aracı , çok az komut ile bir proje oluşturmanıza olanak sağlar. Tek bir kaynak dosyadan daha fazlasına sahip projelerin çoğu için bir derleme aracı bir yere dahil olacaktır. Birkaç derleme aracı var, ancak en yaygın olanları:

  • yapmak Linux üzerinde her yerde kullanılan ve Windows üzerinde giderek daha yaygın. Kullanılan projeler makegenellikle bir varlığı ile tanımlanabilir Makefile.

  • MSBuild Windows'a özgüdür ve genellikle Visual Studio ile birlikte görülür. Bunlara genellikle bir *.slnveya *.vcxprojdosya eşlik eder .

toolchain

Bir takım zinciri , derleyici ve destekleyici araçlardır. Tıpkı inşaat araçları gibi, birkaç tane vardır ve bunlar genellikle inşaat araçlarından biriyle kullanılır.

  • MSVC , Microsoft'un araç zinciridir. Bu, Windows yerel gelişimi için en yaygın kullanılan araç zinciridir. Bu genellikle MSBuild sistemiyle kullanılır ve derlemeler genellikle Visual Studio aracılığıyla oluşturulur. Ancak, modern MSVC projeleri de kullanabilir Makefile.

  • GCC ( MinGW ), Windows için GCC'nin bir limanıdır. Genellikle ile kullanılır make. Eğer proje yerel olarak Windows’a yönelikse ve a’ya sahipse Makefile, muhtemelen MinGW-GCC’dir.

  • GCC ( Cygwin ) POSIX uyumlu bir ortam yaratır. Bu, Linux veya Unix için yazılmış çoğu programı doğrudan derlemenizi ve doğrudan Windows altında çalışmasını sağlar. Daha yakın zamanda Windows 10'da, Windows'ta Ubuntu'da Bash bir alternatiftir. GCC genellikle ile birlikte kullanılır make.

Çerçeveler ve kütüphaneler

Kütüphaneler , birçok programın tekerleği yeniden icat etmekten kaçınmak zorunda olduğu, başkaları tarafından yazılmış, yeniden kullanılabilir kod kümeleridir. Projeyi inşa etmek için bu bağımlılıkların mevcut olması gerekir. Şanslıysanız, ilk indirmenize dahil olurlar, ancak bu her zaman böyle olmaz.

Altyapılar etkili bir şekilde kütüphaneler koleksiyonudur. Birçok proje, ihtiyaç duyacağınız bir çerçeve kullanır. Bunlar çoğu zaman kendi yapı sistemiyle birlikte gelir, ancak hepsini listelemek imkansız olurdu.

En zor kısım, ekstra çerçeve ve kütüphane bağımlılıkları ile ilgilenmektir. Örneğin, proje Qt kullanıyorsa - düzgün bir şekilde oluşturmak için tüm karışıklığa ihtiyacınız olacaktır. Bu çok büyük bir girişim ve önceden deneyime sahip olmadığınız sürece, doğrudan burada doğrudan yardım istemeniz daha iyi olacaktır.


1
Bu özel durumda makefile size ilk satır olduğu gibi karıştırmanın iyi bir ipucunu veriyor MINGW_PREFIX = $(shell which gcc | awk -F/bin/ '{ printf $$1 }'):)
DavidPostill

1
bu bir ödül imo hak ediyor
tbodt
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.