Zıplanacak içerik
  • Üye Ol

Önerilen İletiler

Gönderi tarihi:

Yazılım Geliştirme Sıkça Sorulan Sorular

gcc ile matematiksel işlevleri derleme

C ile program yazarken matematiksel işlevler kullanıyorum (sqrt, sin gibi), programımın en başında

 

 

Kod:

#include <math.h>

 

 

var, fakat program derlenirken

 

 

Kod:

/tmp/ccayiXgZ.o: In function `main':

/tmp/ccayiXgZ.o(.text+0x19): undefined reference to `sqrt'

 

 

 

şeklinde hata alıyorum, bu sorunu nasıl çözerim?

 

 

Çözüm:

Program derlenirken,

 

 

Kod:

gcc -lm -i foobar.c -o foobar

 

 

şeklinde derlenmesi gerekiyor. -lm yönergesi derleme esnasinda matematiksel kütüphaneleri de koda ekliyor.

 

E o zaman math.h dosyasını niye include 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 koda libm.so'yu ekleyecek.

Gönderi tarihi:

QT kullanarak geliştirilen uygulamalar nasıl derlenir?

hello.cpp isimli QT kullanılarak yazılmış XWindow uygulamasinin derlenmesi için iki ana yöntem vardır, bir tanesi el yordamı ile, diğeri Makefile yaratarak El Yordamı ile:

 

 

Kod:

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 makinenizde tmake uygulamasının yüklü olması gerekmektedir.) En sevdiğiniz metin düzenleyicinizi açıp, aşağıdaki 3 satırı yazıp hello.cpp dosyanızın olduğu dizine kaydediniz.

 

Kod:

#hello.pro dosyasi

HEADERS =

SOURCES = hello.cpp

TARGET = hello

 

 

Daha sonra konsoldan,

 

 

Kod:

$ tmake hello.pro -o Makefile

 

 

komutu ile Makefile dosyanızı olşturunuz, ve hello isimli yürütülebilir dosya için tekrar konsoldan

 

 

Kod:

$ make all

 

 

Bu kadar, herkese kolay gelsin. tmake uygulamasının en güncel sürümünü ftp://ftp.trolltech.com/freebies/tmake/ dizininden çekebilirsiniz.

Gönderi tarihi:

PHP ile girilen bir epostanın geçerli söz dizimine sahip olup olmadığını nasıl test ederim?

 

Kod:

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($gidecekmail, \"Konu\", \"Mesaj\", \"From: [email protected]\");

} else {

echo \"Hatalı eposta adresi girdiniz...\";

}

Gönderi tarihi:

Linux'ta Xwindows için program geliştirme araçları nelerdir? Qt, GTK ne işe yarar?

 

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 GUI modeli.

 

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/programlama arabirimi getir(e)miyor ve alternatiflerin oluşmasına izin veriyor:

 

 

Athena: XFree86 ile gelen kütüphane; eski ve yavaş ağlarda X kullanıldığından performansından dolayı çok popüler 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. Aktif 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

 

sanırım bu kadar yeterli olur...

Gönderi tarihi:

Qt kütüphanesini kullanarak oluşturduğum herhangi bir C++ programı nasıl derleyebilirim?

Kod:

gcc -I/usr/lib/qt2/include -l/usr/lib/qt2/lib/libqt.so main.cpp

 

komutu ile derlemeye çalıştığımda,

 

 

Kod:

/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?

 

YANIT:

Yanıt:

 

gcc'nin parametrelerini yanlış kullandığınız için bir hata oluşuyor. -L ile -l seçeneklerini beraber kullanmaniz 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:

 

 

Kod:

$ gcc -I/usr/lib/qt2/include -L/usr/lib/qt2/lib -lqt main.cpp

Gönderi tarihi:

Visual Studio, Delphi ya da C++ Builder gibi bir IDE var mı?

Birkaç seçiminiz var:

 

 

Delphi'nin Linux portu olan Kylix

KDevelop

Anjuta

deneyebilirsiniz. Anjuta, diğerlerinden farklı olarak PHP için de komutlar, sözdizimi tamamlama ve işlev çağrı ipuçlarını destekliyor.

 

 

Tabi sitede istersiniz siz alın bakalım zaten baya bir bu programlama kısmı üvey kaldı foruma

 

Delphi'nin Linux portu olan Kylix

http://www.borland.com/kylix/

 

KDevelop

http://www.kdevelop.org/

 

Anjuta

http://anjuta.sourceforge.net/

Gönderi tarihi:

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 olmasindan kaynaklanıyor olabilir.

 

Kod:

LANG="en_EN" startkylix

 

 

 

ile deneyin.

 

Sisteminizde çalışır durumda bir xfs (X Yazıtipi Sunucusu) olmayabilir ya da XF86Config dosyanızda FontPath ile tanımlanmış yazıtipi dizinlerinde sorunlar olabilir.

Gönderi tarihi:

DTMF sinyallerini nasıl üretebilirim?

Bir DTMF kodlayıcı. Komut satırından girilen rakamların tonlarını /dev/dsp aygıtına yönlendirir. Aşağıda kodu verilen dtmf.c dosyasını,

 

 

Kod:

gcc dtmf.c -lm -o dtmf

 

ile derleyebilirsiniz.

 

 

Kod:

#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++;

}

}

Katılın Görüşlerinizi Paylaşın

Şu anda misafir olarak gönderiyorsunuz. Eğer ÜYE iseniz, ileti gönderebilmek için HEMEN GİRİŞ YAPIN.
Eğer üye değilseniz hemen KAYIT OLUN.
Not: İletiniz gönderilmeden önce bir Moderatör kontrolünden geçirilecektir.

Misafir
Maalesef göndermek istediğiniz içerik izin vermediğimiz terimler içeriyor. Aşağıda belirginleştirdiğimiz terimleri lütfen tekrar düzenleyerek gönderiniz.
Bu başlığa cevap yaz

×   Zengin metin olarak yapıştırıldı..   Onun yerine sade metin olarak yapıştır

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Önceki içeriğiniz geri getirildi..   Editörü temizle

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Yeni Oluştur...

Önemli Bilgiler

Bu siteyi kullanmaya başladığınız anda kuralları kabul ediyorsunuz Kullanım Koşulu.