3. Yazılım Geliştirme
- C ile yazılım geliştirirken matematiksel işlevler kullanıyorum (sqrt, sin gibi), yazılımımın en başında
- QT kullanarak geliştirilen uygulamalar nasıl derlenir?
- PHP'de herhangi bir Web sayfasını nasıl epostayla yollayabilirim?
- PHP ile girilen bir epostanın geçerli söz dizimine sahip olup olmadığını nasıl sınarım?
- Linux'ta Xwindows için yazılım geliştirme araçları nelerdir? Qt, GTK ne işe yarar?
- Qt kütüphanesini kullanarak oluşturduğum herhangi bir C++ yazılımı nasıl derleyebilirim?
- Visual Studio, Delphi ya da C++ Builder gibi bir IDE var mı?
- Kylix'i çalıştırırken "Generating font matrix. Please wait... Couldn't find usable fonts for this locale" hatası veriyor. Nasıl düzeltebilirim ?
- DTMF sinyallerini nasıl üretebilirim?
-
-
C ile yazılım geliştirirken matematiksel işlevler kullanıyorum (
sqrt, sin
gibi), yazılımımın en başında#include <math.h>
var, fakat yazılım derlenirken
/tmp/ccayiXgZ.o: In function `main': /tmp/ccayiXgZ.o(.text+0x19): undefined reference to `sqrt'
şeklinde hata alıyorum, bu sorunu nasıl çözerim?
-
Yanıtlayan: Murat SULUHAN
Yazılımın,
$
gcc -lm -i foobar.c -o foobar
şeklinde derlenmesi gerekiyor.
-lm
yönergesi derleme esnasında matematiksel kütüphaneleri de koda ekliyor.E o zaman
math.h
dosyasını niyeinclude
ettik derseniz. Çünkü matematiksel işlevler kütüphane olarak ayrı duruyor ve öntanımlı derleme kütüphanelerinin içinde değil.-lm
çalıştırılabilir kodalibm.so
'yu ekleyecek.
-
-
-
QT kullanarak geliştirilen uygulamalar nasıl derlenir?
-
Yanıtlayan: Alper Oğuz
hello.cpp
isimli QT kullanılarak yazılmış XWindow uygulamasının derlenmesi için iki ana yöntem vardır, bir tanesi el yordamı ile, diğeri Makefile ile:$
g++ -Wall -I$QTDIR/include -L$QTDIR/lib hello.cpp -o hello -lqt
Burada:
-
-Wall
-
Bütün
-w
seçeneklerinin kullanılacağını belirtir. -
-I$QTDIR/include
-
QT başlık dosyaları için nereye bakılacağını belirtir.
-
-L$QTDIR/lib
-
QT kütüphaneleri için nereye bakılacağını belirtir.
-
hello.cpp
-
derlemek istediğimiz c++ kaynak dosyasinin ismi
-
-o hello
-
derleme sonucu oluşacak dosyanın ismi
-
-lqt
-
libqt.so
dosyası ile derleme sonucu oluşacak yürütülebilir dosyanın bağlanması için.
tmake
ile: (Bu yöntemi kullanabilmek için makinenizdetmake
uygulamasının yüklü olması gerekmektedir.) En sevdiğiniz metin düzenleyicinizi açıp, aşağıdaki 3 satırı yazıphello.cpp
dosyanızın olduğu dizine kaydediniz.#hello.pro dosyasi HEADERS = SOURCES = hello.cpp TARGET = hello
Daha sonra konsoldan,
$
tmake hello.pro -o Makefile
komutu ile
Makefile
dosyanızı olşturunuz vehello
isimli yürütülebilir dosya için tekrar konsoldan$
make all
Bu kadar, herkese kolay gelsin.
tmake
uygulamasının en güncel sürümünü ftp://ftp.trolltech.com/freebies/tmake/ adresinden indirebilirsiniz. -
-
-
-
PHP'de herhangi bir Web sayfasını nasıl epostayla yollayabilirim?
-
Yanıtlayan: Ergin Soysal
Her eve lazım: http://www.heyes-computing.net/downloads/html.mime.mail/
-
-
-
PHP ile girilen bir epostanın geçerli söz dizimine sahip olup olmadığını nasıl sınarım?
-
Yanıtlayan: Mesut TUNGA
function email_kontrol ($variable) { return (ereg('^[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+.' . '[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+$', $variable)); } if (email_kontrol($gidecekadres)) { mail($gidecekadres, \"Konu\", \"İleti\", \"From: ben@ben.com\"); } else { echo \"Hatalı eposta adresi girdiniz...\"; }
-
-
-
Linux'ta Xwindows için yazılım geliştirme araçları nelerdir? Qt, GTK ne işe yarar?
-
Yanıtlayan: Enver ALTIN
Aslında, çok iyi olmamakla birlikte, Kylix var. http://www.borland.com/kylix/ adresinde bir miktar bilgi bulabilirsiniz.
Qt-designer sadece GUI tasarımının görsel olarak yapılmasını sağlayan (aslında derlendiğinde o ekranı gösterecek olan kodu oluşturan) bir yazılım. Qt bir dil değil, C++ kullanılarak yazılmış bir nesne kütüphanesi.
Unix bu noktada Windows'dan biraz farklı. Windows, ekrandaki button/ checkbox/option button/editbox gibi birçok nesnenin neye benzemesi gerektiği konusunda kesin bir standart getiriyor ve bunların daha kolay hazırlanmasi için de sofistike, iyi tasarlanmış ve hızlı bir kütüphane ile birlikte geliyor.
Ancak Unix bu duruma biraz daha farklı bir bakış açısı getiriyor ve standart bir görünüm/yazılımlama arabirimi getir(e)miyor ve benzerlerin oluşmasına izin veriyor:
-
Athena: XFree86 ile gelen kütüphane; eski ve yavaş ağlarda X kullanıldığında başarımından dolayı çok tutulur olmuş.
-
Motif
-
Gtk: (http://www.gtk.org/) The Gimp Tool Kit, GIMP (http://www.gimp.org/) adındaki yazılımın tasarımı için geliştirilmiş olmasına karşın GNOME (http://www.gnome.org/) projesi tarafından da kullanılan ve GPL lisansı altında dağıtılan bir kütüphane.
-
Qt (cute): Troll Technologies, Inc. (http://www.trolltech.com/) tarafından C++ kullanılarak geliştirilmiş bir kütüphane. Etkin olarak KDE (http://www.kde.org/) projesi tarafından kullanılıyor.
Linux'da yazılım geliştirme birkaç farklı araç kullanılarak yapılıyor:
- Grafik arabirim tasarımı
-
Gtk için Glade (http://glade.gnome.org/) Qt için ise KDevelop ya da Qt designer yaygın olarak kullanılıyor.
- Kodun yazılması
-
emacs ,vim, anjuta (http://anjuta.sourceforge.net/), kdevelop (http://www.kdevelop.org/).
- Sınama/Hata Ayıklama
-
gdb, strace
- Dağıtım
-
cvs, diff, patch, tar
-
-
-
-
Qt kütüphanesini kullanarak oluşturduğum herhangi bir C++ yazılımı nasıl derleyebilirim?
$
gcc -I/usr/lib/qt2/include -l/usr/lib/qt2/lib/libqt.so main.cpp
komutu ile derlemeye çalıştığımda,
/usr/i486-suse-linux/bin/ld: cannot find -l/usr/lib/qt2/lib/libqt.so collect2: ld returned 1 exit status
hatasını veriyor. Acaba nerde yanlış yapıyorum?
-
Yanıtlayan: Alper Oğuz
gcc'nin bağımsız değişkenlerini yanlış kullandığınız için bir hata oluşuyor.
-L
ile-l
seçeneklerini beraber kullanmanız gerekiyor.-L
seçeneği kütüphaneler için dizin göstermenizi sağlar.-l
ise hangi kütüphaneyi kullanmak istediginizi belirtmek için kullanılır. Dolayısıyla ikisini beraber, aşağıdaki gibi kullanmanız sorunu çözecektir:$
gcc -I/usr/lib/qt2/include -L/usr/lib/qt2/lib -lqt main.cpp
-
-
-
Visual Studio, Delphi ya da C++ Builder gibi bir IDE var mı?
-
Yanıtlayan: Alper Oğuz
Birkaç seçiminiz var:
deneyebilirsiniz. Anjuta, diğerlerinden farklı olarak PHP için de komutlar, sözdizimi tamamlama ve işlev çağrı ipuçlarını destekliyor.
-
-
-
Kylix'i çalıştırırken "Generating font matrix. Please wait... Couldn't find usable fonts for this locale" hatası veriyor. Nasıl düzeltebilirim ?
-
Sisteminizin Turkçe olmasından kaynaklanıyor olabilir.
$
LC_ALL="en_EN" startkylix
ile deneyin.
Sisteminizde çalışır durumda bir
xfs
(X Yazıtipi Sunucusu) olmayabilir ya daXF86Config
dosyanızdaFontPath
ile tanımlanmış yazıtipi dizinlerinde sorunlar olabilir.
-
-
-
DTMF sinyallerini nasıl üretebilirim?
-
Yanıtlayan: Ragıp Özkan Konça
Bir DTMF kodlayıcı. Komut satırından girilen rakamların tonlarını
/dev/dsp
aygıtına yönlendirir. Aşağıda kodu verilendtmf.c
dosyasını,$
gcc dtmf.c -lm -o dtmf
ile derleyebilirsiniz.
#include <math.h> #include <string.h> #include <stdio.h> #define duration 800 #define pause 400 float col[] = { 1209.0, 1336.0, 1477.0, 1633.0 }; float row[] = { 697.0, 770.0, 852.0, 941.0 }; char positions[] = "123A456B789C*0#D"; /* 8000 örnek/saniye, mono, 8 bit/örnek kabulüyle */ main(int argc, char *argv[]) { int i; char *ap, *cp; float f1, f2, ri, ci; if (argc != 2) exit(1); ap = argv[1]; while (*ap) { cp = strchr(positions, *ap); if (cp) { ci = col[(cp - positions) % 4]; ri = row[(cp - positions) / 4]; for (f1 = 0.0, f2 = 0.0, i=3D0; i < duration; i++, f1 += 6.28/8000.0*ri, f2 +=3D 6.28/8000.0*ci) { putchar((sin(f1)*63.0) + (sin(f2)*63.0) + 128); } for (i = 0; i < pause; i++) putchar(128); } ap++; } }
-