[Çözüldü]Windowsta komut satırından C derleme ?

Başlatan ferat_tes, 20 Ağustos 2011 - 23:16:37

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

ferat_tes

Windowsta komut satırından çok basit yapıdaki bir C kodunu derlemeye ihtiyacım var. IDE olarak portable olması da şart olduğu için DevC uygun görünüyor. Ama bir türlü komut satırından kullanıp kullanılamadığını anlayamadım. GCC yi portable olarak bir dizinde bulundurup onu komut satırından kullanmam mümkün mü ?

6ng4n

#1
gcc linux alt yapısına göre çalışan bir derleyici üzgünüm ama; windows üzerinde native kullanamazsınız.

heartsmagic

Mingw veya cygwin ile olmaz mı bu iş? Mingw sanırım Cygwin'e göre daha rahat edinilebilir.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

virs

İnsan için ancak çalıştığının karşılığı vardır. (Kur'an: Necm, 39)

6ng4n

@heartsmagic native yani doğal olarak olmayacağından bahsettim yoksa tabii ki emülasyon kütüphaneleri ile derlenebilir.

sem

Aslında en güzeli heartsmagic'in dediği gibi bence de MinGW kullanmak.

Bir hatırlatma olarak; Dev C++ uzun süredir geliştirilmiyor. Dev C++'da GCC  ya da GCC tabanlı bir derleyici kullanıyordu fakat 2005'ten beri geliştirilmediği içiin; güncellik ve 2005'e kadar çözülmeyen buglar konusunda derleyici ne durumdadıır bilinmez tabi...

Dev C++ kullanıyorsanız eğer şurada biraz bahsedilmiş sanırım komut satırı ile ilgili bir takım şeylerden, isteği ne kadar karşılar emin olamadım fakat bir göz atmakta fayda var;

http://www.daniweb.com/software-development/cpp/threads/102784

Bu arada ayrıca parametre kullanmak için midir acaba komut satırı derlemesi, özellikle neden buna baktığınızı merak ettim de, sormak isterim. Çünkü IDE'ler de parametreleri destekleyecek şekilde tasarlanıyor.
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

eribol

Dev-C++ zaten mingw veya cygwin kullanıyor ayrıca son güncelleme 2011 yılında yapılmış.

ferat_tes

#7
Alıntı yapılan: sem0900 - 21 Ağustos 2011 - 05:15:15
Aslında en güzeli heartsmagic'in dediği gibi bence de MinGW kullanmak.

Bir hatırlatma olarak; Dev C++ uzun süredir geliştirilmiyor. Dev C++'da GCC  ya da GCC tabanlı bir derleyici kullanıyordu fakat 2005'ten beri geliştirilmediği içiin; güncellik ve 2005'e kadar çözülmeyen buglar konusunda derleyici ne durumdadıır bilinmez tabi...

Dev C++ kullanıyorsanız eğer şurada biraz bahsedilmiş sanırım komut satırı ile ilgili bir takım şeylerden, isteği ne kadar karşılar emin olamadım fakat bir göz atmakta fayda var;

http://www.daniweb.com/software-development/cpp/threads/102784

Bu arada ayrıca parametre kullanmak için midir acaba komut satırı derlemesi, özellikle neden buna baktığınızı merak ettim de, sormak isterim. Çünkü IDE'ler de parametreleri destekleyecek şekilde tasarlanıyor.

Javada ufak bir program yazdım. Bu program linuxta çalıştırıldığında script dosyası yaratıyor. Fakat windowstaki script dosyası olayını kavrayamadığım için, java programım windowstaysak ortaya basit bir c kodu olan dosya çıkarıyor. bu dosyanın herhangi bir IDE ile derlenmesi gerekiyor ki çalışabilir olsun. Bu işlemi javaya bir komut girdirterek otomatik yaptırtacağım. IDE yi java programı ile aynı dizinde bulunduracağım. Java bağımsız bir komutu devreye sokacak ve c kodunu çalışabilir hale getirecek.

--------------------------------------------------------

portable c compiler ve mingw i kurdum. İkiside aşağı yukarı aynı mantıkta işliyor anlaşılan. Ama bir türlü c kodumu derleyemedim. Linuxtaki gcc nin komutları ne kadar basitmiş şimdi anlıyorum :) yardımcı olursanız sevinirim...

sem

Ben MinGW'yi QT Creator ile beraber tümleşik olarak kullandığım için tüm işleri QT hallediyordu. QT kendine  "make file" oluşturup buna göre derleme yapıyordu.

Fakt biraz bakınınca MinGW için de komutların aynı olduğu gördüm...


http://www.mingw.org/wiki/MinGW_for_First_Time_Users_HOWTO


aldığnız hatalar nedir?


Yalnız size oluşabilecek sıkıntıları daha doğrusu tahminimi söyleyeyim;

* Windows tarafında C, C++ derleme işlemleri Linux'taki olmuyor... Statik derleme için epey bir derleme yapmak gerekiyor ki, derlenen birim statik derleme yapabilsin . Durum böyle idi sanırım.

Yani Linux'ta GCC ile bir program derlediniz. Çift tıklayın çalıştırın, ama Windows'ta durum böyle değil... İlgili tüm DLL'leri program içerisine bırakmanız gerekiyor... Bazı dll boyutu ise  kendimden örnek vereyim; kullandığım aynı dizine koymak zorunda kaldığım en büyük iki dll'den birisi 150 diğeri ise 120 MB civarındaydı... Yani sırf iki dll 300 MB' a yakın bir bellek kaplıyor...

Yani bu yöntemde son kullanıcı için oluşacak sıkıntılar; kullanan kişilerin bilgisayarında MinGW olması gerekecek, yoksa Java ile C kodunu derleyemeyeceksiniz son kullanıcı bilgisayarında. Derlendiği zaman ise epey yüklü bir boyutta dll'ler içermek zorunda kalacak kullanıcı.


bunlar gibi şimdi akıllara gelmeyen sorunlar da olabilir. Açıkcası aşılması çalışılan durum bu (Java ile başka bir betik çıktısı) ise; betik olayını Python kısmına devretmeniz yeterli olur... En azından son kullanıcının MinGW ve dll ler ile  uğraşması gerekmez.  Benim önerin bu yönde olaca.
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

virs

#9
Alıntı yapılan: ferat_tes - 21 Ağustos 2011 - 11:46:52portable c compiler ve mingw i kurdum. İkiside aşağı yukarı aynı mantıkta işliyor anlaşılan. Ama bir türlü c kodumu derleyemedim. Linuxtaki gcc nin komutları ne kadar basitmiş şimdi anlıyorum :) yardımcı olursanız sevinirim...

Bunu dene bir de. Qt'yi satın alan Nokia'nın hazırladığı MinGW, her şey hazır, kurulum gerektirmiyor:
http://get.qt.nokia.com/misc/MinGW-gcc440_1.zip

Wine ile test ettim, sorunsuz çalışıyor :)

MinGW yi C:/mingw gibi kolayca erişebileceğin bir klasöre çıkart.
CMD'den mingw../bin klasörüne gir.
Sonra aşağıdaki şekilde derle:
mingw32-gcc.exe C:/test.c -o C:/test.exe

Sonra konsolda C:/test.exe diyerek çalıştır.

Bu da olmazsa Turbo C var bir de:
http://www1.gantep.edu.tr/~bingul/computer/download/turbo-c/tc201.zip

Dosyayı bununla açtıktan sonra F9 a basarak derleyebilirsin.

Bu da olmazsa kaynak kodu paylaşırsan derlemeyi biz deneyebiliriz.

İnsan için ancak çalıştığının karşılığı vardır. (Kur'an: Necm, 39)

ferat_tes

Alıntı yapılan: virs - 22 Ağustos 2011 - 10:05:25
Alıntı yapılan: ferat_tes - 21 Ağustos 2011 - 11:46:52portable c compiler ve mingw i kurdum. İkiside aşağı yukarı aynı mantıkta işliyor anlaşılan. Ama bir türlü c kodumu derleyemedim. Linuxtaki gcc nin komutları ne kadar basitmiş şimdi anlıyorum :) yardımcı olursanız sevinirim...

Bunu dene bir de. Qt'yi satın alan Nokia'nın hazırladığı MinGW, her şey hazır, kurulum gerektirmiyor:
http://get.qt.nokia.com/misc/MinGW-gcc440_1.zip

Wine ile test ettim, sorunsuz çalışıyor :)

MinGW yi C:/mingw gibi kolayca erişebileceğin bir klasöre çıkart.
CMD'den mingw../bin klasörüne gir.
Sonra aşağıdaki şekilde derle:
mingw32-gcc.exe C:/test.c -o C:/test.exe

Sonra konsolda C:/test.exe diyerek çalıştır.

Bu da olmazsa Turbo C var bir de:
http://www1.gantep.edu.tr/~bingul/computer/download/turbo-c/tc201.zip

Dosyayı bununla açtıktan sonra F9 a basarak derleyebilirsin.

Bu da olmazsa kaynak kodu paylaşırsan derlemeyi biz deneyebiliriz.


@sem0900 Nokianın MinGW sinin portable olması ve direk derleme yapabilmesi iyi. o yüzden bunu kullanmam şart gibi görünüyor. Yazdığınız problemler şimdilik benim için sorun değil. Java programının çalıştığı dizine mingw portableyi atarsam sorun olmayacaktır.

libgmp-3.dll is missing hatası alıyorum derleme esnasında. sizde wine ile çalışıyor ama bende windws 7 de çalışmıyor :(
Sisteme bir şey kurmaksızın, sadece mingw dizini altında değişiklik yaparak bu sorunu halletmem gerek. Yoksa portable olmasının bir anlamı kalmaz.

qolt45

Gcc nin windows icin kurulan bir paketi.Google dan gcc for windows diye arastırırsanız windows icin 32bit ve 64bit lik yukleme paketleri bulabilirsiniz.C ve C++ dısında fortran da derleyebiliyor gcc.Paketi kurduktan sonra bilgisayarı yeniden baslatın.Programı derlemek icin komutlar yine aynı ornek olarak komut satırından bulundugunuz dizine gelin

Fortran derliyorsunuz diyelim mesela

gfortran test.f90 -o test.exe isinizi gorur.C icin sadece bastaki gfortran kısmı degisecek.Acıkcası onun ne oldugunu hatırlayamıyorum ama herhalde gcc'dir.


ferat_tes

Alıntı yapılan: qolt45 - 22 Ağustos 2011 - 17:55:45
Gcc nin windows icin kurulan bir paketi.Google dan gcc for windows diye arastırırsanız windows icin 32bit ve 64bit lik yukleme paketleri bulabilirsiniz.C ve C++ dısında fortran da derleyebiliyor gcc.Paketi kurduktan sonra bilgisayarı yeniden baslatın.Programı derlemek icin komutlar yine aynı ornek olarak komut satırından bulundugunuz dizine gelin

Fortran derliyorsunuz diyelim mesela

gfortran test.f90 -o test.exe isinizi gorur.C icin sadece bastaki gfortran kısmı degisecek.Acıkcası onun ne oldugunu hatırlayamıyorum ama herhalde gcc'dir.

teşekkürler! ama bahsettiğiniz program sanırım portable değil (kurulumdan bahsettiğinize göre).

virs

#13
Alıntı yapılan: ferat_tes - 22 Ağustos 2011 - 13:25:58libgmp-3.dll is missing hatası alıyorum derleme esnasında. sizde wine ile çalışıyor ama bende windws 7 de çalışmıyor :(

Sisteme bir şey kurmaksızın, sadece mingw dizini altında değişiklik yaparak bu sorunu halletmem gerek. Yoksa portable olmasının bir anlamı kalmaz.

mingw/bin klasöründe o dosya var, mingw/bin klasörünü, eğer bu olazsa mingw/bin/libgmp-3.dll dosyasını patha ekleyip deneyin.

Olmazsa o dosyanın yedeğini alıp şuradakiyle değiştirip derleyin tekrar, olmazsa path a eklemeyi de uygulayın bu dll için:
http://www.dllbank.com/zip/l/libgmp-3.dll.zip

Bu da olmazsa şurada vista için bir paketleme yapılmış sanırım, onu dene:
http://olex.openlogic.com/packages/mingw/5.1.4

Kurulum yapılanları ise kuruldukları yerden kopyasını alıp sistemden kaldırarak test edebilirsiniz. Örneğin MinGW için de kurulum var ama portable olarak da çalışıyor.

Belki de Vista ile inatlaşmamak lazım, sanala bir xp kurup onda derlemeyi deneyin.
İnsan için ancak çalıştığının karşılığı vardır. (Kur'an: Necm, 39)

ferat_tes

virs'un dediği gibi path ekleme işlemi sonrası program sorunsuzca çalıştı.

Yardımlarınız için teşekkürler!