Netbeans, Eclipse - C/C++ Dosyalarını Tekli Olarak Çalıştırmak

Başlatan Kanguru, 04 Ekim 2014 - 07:09:25

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Kanguru

Allah'ın selamı üzerinize olsun arkadaşlar.
Bayramınız mübarek olsun.

Netbeans veya Eclipse' de bir proje var. p1.cpp ve p2.cpp diye dosyalar açtım. Şimdi ben p1.cpp ' ye sağ tıkladığımda menüden Run File gibi bir buton bulamadım. Acaba bu şekilde dosyaları birbirinden bağımsız olarak tek tek çalıştırabilir miyim?

Teşekkürler!

ekremsenturk

C ve C++ kaynakkod dosyaları önce derlenmesi gerekiyor. Bunu Uçbirimiden "g++"  veya kullandığın İde üzerinden yapablirsin. Örnek olarak Geany ile : Dosyayı önce bulunduğu klasör içinde bulup, açıyorsun, ve ardından "geçerli dosyayı derle" simgesine tıklıyorsun. Derleme işleminden sonra (başarılı geçmişse, "geçerli dosyayı çalıştır" simgesini  tıklıyorsun. diğer İde'lerde İngilizce olarak yazabilir ve/veya önce "derle"(Compile) sonra "build"(Yapılandır) ve onra "run"(çalıştır) gibi işlem gerekebilir.

Kanguru

BUİLD FAILED (exit value 2, total time: 184ms)

hatası çıkıyor. Halbuki p1.cpp ' de "Merhaba", p2.cpp ' de "Selam" yazdırıyor.

Derleme başarılı oluyor ama dosyalar birbirlerinden bağımsız olmadıkları için bu hatayı veriyor.

freeman

Netbeans ya da Eclipse kullanmadığım için kesin bir yol söyleyemem; fakat editörlere gcc derleyicisinin yerini göstermek gerekir. Ondan sonra, programları derleyip, çalıştırabilirsiniz. 
Java 'da da bu şekilde. Fakat hazır yüklü geldiği için bu ayarlar yapılmıyor bir daha.
Good morning and welcome to the Black Mesa Transit System. This automated train is provided for the security and convenience of the Black Mesa Research Facility personnel.

Kanguru

g++ yazılımı zaten yüklü. Program zaten derleyip çalıştırabiliyor. Benim sorum ise c++ dosyaları birbirleriyle bağımlı. Bu yüzden de aynı ide lerde java veya php projelerinde olduğu gibi bir dosyaya sağ tıklandığında "Run File" düğmesi oluyordu ve dosyaların tek tek çalıştırılmasını sağlıyordu bu düğme. C++ projelerinde bu düğme yok.

freeman

C++ 'ın yapısı Java/PHP 'den farklı olduğu için, önce program tüm bağımlılıkları ile derlenmelidir. Sonuçta bir "executable" dosya oluşur.
Good morning and welcome to the Black Mesa Transit System. This automated train is provided for the security and convenience of the Black Mesa Research Facility personnel.

Kanguru

Evet hepsi derlenmeli ama tek tek derlenmesi gerek. Netbeans ve Eclipse de bu seçenek ya yok ya ben bulamadım. Bir de CLion ' a bakayım.

Amenofis

Onlar zaten ayrı ayrı derleniyor ama tek başlarına çalışmazlar. Bağlayıcı program ile bağlanıp tek bir çalıştırılabilir dosya haline gelir.

Sonuçta program "main" fonksiyonu ile başlar, main bitince programda biter.

Kanguru

Peki hepsini tek bir dosya gibi çalıştırma imkanımız var mı?

ekremsenturk

Burada Felsefi sorular soracağına, kaynak kod'larını paylaş, varsa düzeltilebilecek bir şey, bilen birisi düzeltiverir. Kim nerenden bilsin senin programının ne işe yarayabileceğini. Herkes senin uğraştığın aynı işler ile meşgul değil ki.

Amenofis

Alıntı yapılan: Kanguru - 07 Ekim 2014 - 20:50:20
Peki hepsini tek bir dosya gibi çalıştırma imkanımız var mı?

Arkadaşım eğer C biliyorsan çalışması gereken fonksiyonların önce çağrılması gerektiğini bilirsin. 2 tane program istiyorsan 2 ayrı proje açman gerekir. Yok farklı dosyalardaki kodları beraber çalıştırmak istiyorsan bunları main içinden çağıracaksın.

Projene 3 tane daha dosya ekle. p1.h, p2.h ve main.cpp. Başlık dosyalarına (.h) fonksiyonların prototiplerini yaz. Mesela void selamYaz(); şeklinde. main.cpp içine başlık dosyalarını dahil et (#include "p1.h" şeklinde). Sonra da main içinde istediğin fonksiyonları kullan.

int main()
{
    selamYaz();
    merhabaYaz();
    return 0;
}
gibi.

sem

C ve C++ uygulamalarında derleme zamanında main fonksiyonu aranır, bu fonksiyon uygulamanın giriş noktası olarak görülür ve uygulama buradan başlar. Bu durumda iki tane main tanımlarsanız uygulamanın nereden açılacağı bilinemeyeceği için hata alırsınız, bir tane main tanımlarsanız zaten farklı dosyaları çalıştırma bu jargonda anlamını yitirir.

Farklı çözümlere gitmeniz gerek, yukarıda verilen örnekte olduğu gibi.
".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?