Forum: Ders Arası RSS
Derleme hatası
ghetto #1
Üye Ock 2010 tarihinden beri · 11 mesaj · Konum: trabzon
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Derleme hatası
D dili merakı bana da bulaştı ve hemen hazırlıkları yapıp derslere başladım. Dakika 1 gol 1 ilk örnekte hata aldım :) konsolda da derlemeyi denedim ama onda da hata aldım.

import std.stdio;
 
void main()
{
    writeln("Merhaba dünya!");
}

Hata:

>dmd -w -O deneme.d
object.d: Error: module object cannot read file 'object.d'
>Exit code: 1

Konsolda aldığım hata:


root@ghetto:/home/ghetto/Masaüstü# gdc deneme.d -o deneme
deneme.d:5: Error: undefined identifier writeln
deneme.d:5: Error: function expected before (), not writeln of type int

writeln yerine printf kullanmayı denedim, konsolda derleyebildim ve çalıştı ama scite ile derleyemiyorum ve çalıştıramıyorum.
Bu mesaj ghetto tarafından değiştirildi; zaman: 2010-02-02, 13:23.
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Hoşgeldin! :)

Bana kurulumla ilgili bir sorun gibi geliyor. Hangi işletim sistemi?

Ben her yeni sürüm kurduğumda şuradaki adımları tekrar uyguluyorum:

  http://ddili.org/kurulum/dmd.html

Eğer özellikle eski D1'i düşünmüyorsan, şimdilik gdc'yi gözardı etmeni öneririm. Yeni olanaklar D2'ye ekleniyor ve gdc henüz D2'yi desteklemiyor.

Ali
ghetto #3
Üye Ock 2010 tarihinden beri · 11 mesaj · Konum: trabzon
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Cevabın için teşekkür ederim acehreli. Ubuntu kullanıyorum ve bende kurulumla ilgili bir problem olduğunu düşünüyorum. Kurulum sayfasındaki herşeyi harfiyen yaptığımı düşünüyorum ama sanırım gözden kaçırdığım bazı şeyler olmuş.

Peki writeln yerine printf yazınca neden derleniyor ve çalışıyor onu anlayamadım. Kurulumla bir alakası olmasa gerek ?
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
ghetto:
Kurulumla bir alakası olmasa gerek ?

İki farklı derleyiciden bahsediyoruz: SciTE, D2'yi destekleyen dmd'yi kullanıyor. Bence onun kurulumunda bir sorun var...

Konsolda ise D1'i destekleyen gdc'yi kullanıyorsun. Anlaşılan o çalışıyor ama belki de std.stio'yu desteklemiyor. (Emin değilim çünkü ben D'yi D2 ile öğrenmeye başladım.)

Öncelikle dmd'yi komut satırından kullanabilmen gerek. Bence o olursa, SciTE da çalışacak.

SciTE'la ilgili bazı konular açılmıştı onların da yararı olabilir.

Ali
ghetto #5
Üye Ock 2010 tarihinden beri · 11 mesaj · Konum: trabzon
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Kurulum problemi sistemimin 64 bit olmasından kaylanabilirmi acaba? Dmd2 yi yükledim ama cpu olarak i386 yazıyordu. Cevabınıza göre tekrar yüklemeyi deneyeceğim. Ya da 64 bit için dmd2 varsa beni yönlendirirseniz sevinirim Ali Bey.
acehreli (Moderatör) #6
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Aynı soru daha çok yeni soruldu! :)

http://www.digitalmars.com/webnews/newsgroups.…?art_grou…

Umarım orada bahsedilenler işe yarar. Özellikle şuradaki adımlar:

http://www.digitalmars.com/webnews/newsgroups.…?art_grou…

Ama orada bir yanlış yazılmış galiba, birisi lib6-dev-i386 yerine libc6-dev-i386 olması gerektiğini söylemiş (bir 'c' harfi ile).

Ali
ghetto #7
Üye Ock 2010 tarihinden beri · 11 mesaj · Konum: trabzon
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
İngilizcem iyi olmadığı için pek anlayamıyorum ama verdiğiniz ikinci linki denedim değişen birşey olmadı.

object.d: Error: module object cannot read file 'object.d'

object.d ne oluyorsa artık okunamıyor sanırım. Okunmasını sağlayabilirsek belki düzelir ama nasıl ? :)
acehreli (Moderatör) #8
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
O hata mesajını aratınca, dmd programının yerini değiştirmekle ilgili olabileceği konusunda bilgiler buluyorum.

dmd'yi /usr/bin gibi bir yere kopyalamadın değil mi? Asıl yapılması gereken, dmd'yi bir yere kopyalamamak, ama PATH ortam değişkenine dmd'nin nerede olduğunu eklemek...

Linux ortamında şu komut, hangi dmd programını kullandığını gösterir:

$ which dmd
~/dmd/linux/bin/dmd

Benimki, görüldüğü gibi kendi ~ klasörümün altında bir yerde... Eğer sende dmd'yi açtığın yerde değilse; oradan silmeyi deneyebilirsin.

Ayrıca echo $PATH diyerek dmd'nin bulunduğu klasörün PATH değişkeninde göründüğünden emin olmalısın.

Aslında dmd'yi kendin mi kurdun, yoksa Ubuntu'nun paketleriyle mi geldi; onu bile bilmiyorum. :)

Eğer bütün dmd'yi kaldırıp tekrar adım adım kurarsan, ve hangi adımda hata olduğunu söylersen bir yararı olabilir:

  http://ddili.org/kurulum/dmd.html

Ali
ghetto #9
Üye Ock 2010 tarihinden beri · 11 mesaj · Konum: trabzon
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ali Bey sayenizde yavaş yavaş ilerliyorum konsoldan dmd ile derleme yapabiliyorum artık. Sorun PATH ile ilgiliymiş. Yalnız scite ile derleme yapamıyorum onu çözemedik henüz. dmd not found hatası veriyor.

Düzeltme: Başka bir konuda sorunun çözümünü buldum. Yine sizin sayenizde Ali Bey herşey için teşekkür ederim. Bol bol rahatsız ederim bundan sonra. Umarım sorun omaz. :)
Bu mesaj ghetto tarafından değiştirildi; zaman: 2010-02-02, 15:15.
acehreli (Moderatör) #10
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Çözüldüğüne sevindim! :) Aramıza hoşgeldin; birlikte öğrenmeye devam...

Ali
canalpay (Moderatör) #11
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yalnız scite ile derleme yapamıyorum onu çözemedik henüz. dmd not found hatası veriyor.


Ben orayı geçtim ama çalıştır derken ./deneme yerine deneme yazıyor ve derlenecek programın Türkçe karakterli olmasına izin vermiyor.

Size şuan derleme ve çalıştırma yapabileceğiniz bir düzenleyici olarak Geany'yi tavsiye edebilirim:
sudo apt-get install geany

Ubuntuda sanırım tüm Türkçe karakterleri gösterebiliyor. Pardusta gösteremiyordu(Toprağı bol olsun iyi işletim sistemiydi, bir facia neticesinde kaybettik :-D )

Yada Ali Beyin kullandığı emacs var ama onda bildiğim kadarla derleme işlemi yapılamıyor sadece makefile dosyası çalıştırılabiliyor.
acehreli (Moderatör) #12
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ben zaten SciTE'i çok basit bir ortam olduğu için yeni başlayanlara uygun olarak düşünmüştüm. Çalıştırma penceresinde giriş bile yapılamadığına şaşırmıştım.

Ama geliştirme ortamından çalıştırmak gerekmemeli. Ben bu iş için iki pencere açık tutuyorum:

- geliştirme programı: orada yazıyorum ve derliyorum

- çalıştırma konsolu: üst ok tuşuna basıp son çalıştırma komutunu çağırıp Enter'a basıyorum. Böylece daha önceki çalıştırmaların sonucu da kısa süreli bir pencere ile birlikte uçup gitmemiş oluyor

İki pencere arasında gidip gelmek için de Alt-Tab...

canalpay:
Yada Ali Beyin kullandığı emacs var ama onda bildiğim kadarla derleme işlemi yapılamıyor sadece makefile dosyası çalıştırılabiliyor.

Bu devirde bir sürü modern geliştirme ortamı varken doğrusu Emacs'i öneremem. Emacs'in 'compile' komutu, kendisine verilen komutu işletir ve akıllı bir şekilde o pencere içindeki uyarılara ve hatalara gider. Hem de kaynak kodu önümüze getirir.

Varsayılan komut 'make'tir ama komut olarak başka bir komut da yazılabilir. Emacs son yazılanı da hatırlar...

Başka geliştirme ortamları için de şöyle bir liste var:

  http://www.prowiki.org/wiki4d/wiki.cgi?EditorSupport

Ali
canalpay (Moderatör) #13
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ama geliştirme ortamından çalıştırmak gerekmemeli. Ben bu iş için iki pencere açık tutuyorum:


Bende size katıldığımı belirterek zevkler ve renkler tartışılmaz diyorum. Ayrıca bence hazır kodlanmış programları sadece çalışırmak amacı güderken iki pencere gereksiz.

Bu devirde bir sürü modern geliştirme ortamı varken doğrusu Emacs'i öneremem. Emacs'in 'compile' komutu, kendisine verilen komutu işletir ve akıllı bir şekilde o pencere içindeki uyarılara ve hatalara gider. Hem de kaynak kodu önümüze getirir.

Ama insanlar ilerledikçe illaki emacs, vi gibi basit hızlı yeterli sadece klavye ile yönetilebilen geliştirme ortamları arayacaklar. Çünkü klavye kullanmak fare kullanmaktan daha hızlı. Birde on parmak yazıyorsanız elinizi fareye götüremiyorsunuz. O yüzden illaki emacs vi gibi düzenleme araçları kullanılıyor.(Bu arada bence emacs işletim sistemi gibi :-) Sıkıldığında aç tetris oyna :-) )

Yani bunun modern geliştirme araçları ile alakası yok. Sadace kod yazmadan programlama yapmak istiyorsanız modern geliştirme araçları uygun. Ayrıca ben kod yazarken şimdiye kadar en çok emacs ile rahat ettim. Eğer emacs'in kısayollarını tamamen ezberlersem kesinlikle emacs ile daha rahat kod yazabilirim. Ama yine tabiki zevkler ve renkler tartışılmaz.

Bunlar kim söylüyor mu diyorsunuz ?  Hayatında doğru düzgün kod yazmamış ama hayatını geliştirme araçları arayarak geçimiş biri söylüyor :-)
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 09:25:53 (UTC -08:00)