Bu eğitim, Eclipse Zengin İstemci Platformuna genel bir bakışla devam eder. Eksiksiz bir uygulama oluşturmak için görünümleri, eylemleri ve sihirbazları nasıl kullanacağınız aşağıda açıklanmıştır.
Adım 1 - C/C++ dilinde programların derlenmesi (30.01.2002 - 2 Kb)
Adım 2 - Hata ayıklama bilgisi (30.01.2002 - 4.2 Kb)
Adım 3 - Birkaç dosyanın derlenmesi (15.02.2002 - 3.7 Kb)
Adım 4 - Nesne Dosya Kitaplıkları (20.02.2002 - 3.0 Kb)
Adım 5 - Statik bir kitaplık oluşturma (20.02.2002 - 3.7 Kb)
Adım 6 - Dinamik kitaplık oluşturma (20.02.2002 - 5.2 Kb)
Adım 7 - Dinamik kitaplıkları kullanma (23.02.202 - 4.9 Kb)
Adım 8 - Dinamik kitaplıklarla çalışma işlevleri (23.02.202 - 5.0 Kb)
Adım 9 - Dinamik kitaplıkların başlatılması (27.02.202 - 3.5 Kb)
Adım 10 - Seçenekleri programa geçirme - getopt (15.10.2002 - 6.6 Kb)
Adım 11 - Programa uzun seçeneklerin geçirilmesi - getopt_long (12/19/2002 - 11.2 Kb)
Adım 12 - Program hata mesajlarının görüntülenmesi (22.12.202 - 7.5 Kb)
Adım 13 - Kullanıcı hakkında bilgi edinme (22.12.202 - 10.2 Kb)
Adım 14 - Gölge şifreden veri alma (22.12.202 - 5.5 Kb)
Adım 15 - Şifreleme () işlevini kullanarak sistem parolalarıyla çalışma (12.24.2002 - 10.0 Kb)
Grafiksel araçlar, bir programlama dilinin bir grafik arabirimi programınıza entegre ettiği belirli bir işlev kümesi eklemenize izin veren rutin kitaplıklardır.
Gcc
GCC harika bir derleyicidir, ancak kılavuz sayfası çok kullanıcı dostu değildir. Gönderi, derleyicinin kullanım kolaylığı hakkında konuşuyor.
montajcı
Kabuk dili
Kabuk yorumlayıcı
Aynı kitap, ancak metin biçiminde.
Normal ifadeler, modern programcıların ortaya çıkardığı en güçlü dize işleme aracıdır. Onların yardımıyla, karakter dizilerinin içeriği için dizeleri analiz edebilir, bu seçime göre değiştirmeler yapabilir, dizeleri dizilere ayırabilir ve çok daha fazlasını yapabilirsiniz.
C ve C++ dili
GNU make, System V make ve Berkeley make gibi make yardımcı programları, uygulama oluşturma sürecini basitleştirmek için gereken temel araçlardır. Bu yazıda makefile yapısını tanıyacaksınız.
Bu gönderi, Atmel'in 8-bit AVR mikrodenetleyicileri için bir geliştirme ortamının nasıl kurulacağını açıklar.
Pascal ve Delphi
Java dili
JavaScript dili
Web sayfalarında komut dosyalarının kullanımı hakkında konuşmaya devam ediyoruz. Ve belki daha sonra bizim için çok faydalı olacak bazı fonksiyonlar yazarak başlayacağız.
Komut dosyası dilleri bir şekilde dünyayı alt üst etti ve onlar sayesinde bir sayfayla neredeyse her şeyi yapmanıza izin veren DHTML ortaya çıktı. Bildiğiniz gibi, tarayıcıda kazananın defnelerini sadece iki dil talep ediyor. Bu VBScript bir alt kümesidir Visual Basic ve JavaScript. Burada ikincisini en evrensel olarak ele alacağız.
Perl
kopyala
Bu makale, Web uygulamalarını "kendi elleriyle" oluşturmaya karar veren ve oluşturma aracı olarak Perl (Pratik Elektrikli Çöp Listeleyici) programlama dilini seçenler için "hızlı bir başlangıç" elde etmenize yardımcı olmayı amaçlamaktadır.
PHP
Bu eğitim size bir iş akışı uygulaması oluşturmak için PHP'yi nasıl kullanacağınızı gösterecek, HTTP kimlik doğrulaması, veri akışları, nesne oluşturma ve istisna işleme hakkında bilgi edinecektir.
Bu öğretici, bir iş akışı uygulaması oluşturmak için PHP'yi nasıl kullanacağınızı gösterecektir.
Bu öğretici, temel bir iş akışı uygulaması oluşturmak, HTML formlarını kullanarak PHP sayfaları oluşturmak ve veritabanlarına erişmek için PHP'yi nasıl kullanacağınızı gösterecektir.
"I. kısım
"Bölüm II
"Bölüm III" İlk 21 PHP programlama hatası "Sterling Hughes tarafından, 14 Ocak 2001 http://www.zend.com/zend/art/mistake2.php, Çeviren Danil Mironov.
"Hataya Dayanıklı PHP Kodu Yazma"
Modern "site oluşturma" konulu bir diziden bu makale, popüler MySQL sistemi ve PHP programlama dili, herhangi bir web sitesi geliştiricisinin karşılaştığı sorunları çözmek için nasıl kullanılabileceğini anlatıyor - haber hazırlama ve görüntüleme, metin bilgilerini girme ve görüntüleme, arama sitede, ek hizmetlerin organizasyonu ("ziyaretçinin tanınması", forumlar, anketler vb.). Bu araçların her ikisi de ücretsizdir ve istisnasız tüm barındırma sağlayıcıları tarafından sağlanır.
Bölüm 1. PHP ve MySQL'e Başlarken
Bölüm 2. Her yerde haberler, ancak nasıl girilir ve gösterilir?
Bölüm 3. Site için makaleler
Bölüm 4. Ek hizmetler
Linux programlama kitapları, adresinden ücretsiz Linux programlama kitapları, öğreticiler ve öğreticiler indirin. iyi kalite
Kitap açıklaması UNIX. Ağ uygulamalarının geliştirilmesi: UNIX işletim sisteminde web sunucuları, istemci-sunucu uygulamaları veya diğer herhangi bir ağ yazılımının oluşturulmasına adanmış kitabın yeni baskısı, ağ programlama arayüzleri, özellikle soketler için klasik bir kılavuzdur. William Stevens'ın yazılarına dayanmaktadır ve ağ programlamada önde gelen iki uzman tarafından tamamen gözden geçirilmiş ve güncellenmiştir.
Kitap, temel modern standartların, uygulamaların ve yöntemlerin bir tanımını içerir, şunları içerir: çok sayıda açıklayıcı örneklerdir ve ağlarda programlama konusunda bir ders kitabı olarak ve deneyimli programcılar için bir referans olarak kullanılabilir. Sistem düzeyinde ağ programlamaya ilişkin karmaşık malzeme, inanılmaz derecede basit ve tutarlı bir şekilde sunulur. Büyüleyici bir roman gibi okunan ilk bölümler, her şey raflara dizilmiş, her kod satırı anlatılmış. Son bölümler referans olarak kabul edilebilir, büyük miktarözel bilgi.
Kitap açıklaması UNIX ve Linux Sistem Yönetiminde Python:
"UNIX ve Linux Sistem Yönetiminde Python" kitabı, çeşitli UNIX ve Linux sunucu yönetimi görevlerinin bu dili kullanarak nasıl etkin bir şekilde çözüleceğini gösterir. Python programlama... Her bölüm, çoklu görev, veri yedekleme veya kendi araçlarınızı oluşturma gibi belirli bir göreve odaklanır. Komut satırı, ve teklifler pratik yöntemler Python'daki çözümleri.
Ele alınan konular arasında: süreçlerin dallanmasını organize etmek ve ağ mekanizmalarını kullanarak aralarında bilgi aktarımı yapmak, grafiksel bir arayüz ile etkileşimli yardımcı programlar oluşturmak, veritabanları ile etkileşimi düzenlemek ve uygulamalar oluşturmak. Google Uygulaması Motor. Buna ek olarak, kitabın yazarları indirilebilir ve ücretsiz olarak yeniden dağıtılabilir bir kitap oluşturdular. sanal makine Kitaptaki örneklerin kaynak kodunu içeren Ubuntu tabanlıdır ve SNMP, IPython, SQLAlchemy ve diğer birçok yardımcı programı kullanarak örnekleri çalıştırabilir.
Yayın, geniş bir uzman yelpazesine yöneliktir - Python dilinde uzmanlaşmaya yeni başlayan herkes, ister kabuk dillerinde deneyimli komut dosyası geliştiricileri olsun, ister genel olarak programlamaya nispeten az aşina olsun.
Kitap açıklaması GCC. Kullanıcıların, programcıların ve sistem yöneticilerinin masaüstü kitabı: GCC, GNU projesinin ana derleyicisidir. En yaygın olarak kullanılan tüm programlama dillerini destekler ve düzinelerce donanım platformuna yazılım taşınabilirliği sağlar. Derleyiciler dahil tüm özgür yazılımlar, şu veya bu düzeyde GCC'ye dayanır.
Kitap, derleyiciyi edinme, yapılandırma, yükleme ve test etme hakkında ayrıntılar sağlar. Bir çapraz derleyicinin inşası ve gömülü sistemlerin oluşturulması sunulmuş, programların C, C ++, Objective-C, Fortran, Java ve Ada'da derlenmesi ayrıntılı olarak anlatılmıştır. Ayrıca birkaç programlama dilinin tek bir programda birleştirilmesi ve montaj veya sistem düzeyinde dillerde yazılmış parçaların buna dahil edilmesi. Bu kitapta, yalnızca sorunlarınızı çözmek için değil, aynı zamanda GCC derleyicisinin geliştirilmesine ve desteklenmesine katılmak için yeterli olan hemen hemen her türlü bilgiyi bulabilirsiniz.Kitap aşağıdakiler için yararlı olacaktır: yazılım projelerinin programcıları-geliştiricileri ve yöneticileri; yazılım ve uygulamaların taşınmasıyla uğraşmak zorunda olan yöneticiler ve sistem programcıları; açık kaynaklı yazılım kullanmakla ilgilenen kullanıcılar. Ve özgür yazılım yaratma hareketinin gelişiminin tüm destekçilerine.
Kitap açıklaması Linux. Sistem Programlama:
Bu kitap, sistemin gücünden – kabuk, metin düzenleyici, derleyici, hata ayıklayıcı ve sistem rutinleri dahil olmak üzere çekirdek işlevleri ve temel kitaplıklardan – yararlanarak Linux yazılımının nasıl oluşturulacağı hakkındadır. Unix ve Linux için kodların çoğu sistem düzeyinde yazılmıştır, bu nedenle kitap Apache, bash, cp, vim, Emacs, gcc, gdb, glibc, ls, mv ve diğerleri gibi çekirdek olmayan uygulamalara odaklanır.
Kitap özellikle geliştiriciler için yazılmıştır ve gerekli araç herhangi bir programcı
- Giriş ve temel kavramlar
- Dosya G / Ç
- Tamponlu G / Ç
- Genişletilmiş dosya G / Ç
- Süreç yönetimi
- Gelişmiş proses kontrolü
- Dosya ve dizin yönetimi
- Hafıza yönetimi
- sinyaller
- Zaman
Kitap açıklaması Linux programlama temelleri:
Popüler kılavuzun dördüncü baskısı, Linux programlamanın temellerini kapsar. Dikkate alınan: C/C++ kitaplıkları ve standart geliştirme araçlarının kullanımı, sistem çağrılarının organizasyonu, dosya G/Ç, süreç etkileşimi, kabuk programlama, GTK+ veya Qt araçları kullanılarak grafiksel kullanıcı arayüzlerinin oluşturulması, soketlerin kullanımı , vesaire.
Programların derlenmesi, kütüphanelerle bağlantıları ve terminal giriş/çıkışları ile çalışmaları anlatılmaktadır. GNOME ve KDE ortamlarında uygulama yazma, MySQL DBMS kullanarak veri depolama ve hata ayıklama programları için teknikler verilmektedir. Kitap iyi yapılandırılmış, bu da öğrenmeyi kolay ve hızlı hale getiriyor.
- Başlarken
- Kabuk Programlama
- Dosyalarla çalışma
- Linux ortamı
- Terminaller
- Metin ekranlarını küfürlerle kontrol etme
- Veri yönetimi
- MySQL
- Geliştirme araçları
- hata ayıklama
- Süreçler ve sinyaller
- POSIX akışları
- Süreçler arası iletişim: kanallar
- Semaforlar, Paylaşılan Bellek ve Mesaj Kuyrukları
- Soketler
- GTK + ile GNOME Programlama
- Qt ile KDE Programlama
- Linux standartları
- Sivarama P. Dandamudi
- Yayımcı: Springer
- Yıl: 2005
- ingilizce dili
- Sayfalar: 568
- Biçim: pdf
- Boyut: 26 MB
Kitap açıklaması :
Bu benzersiz kılavuz, Linux'un derinlemesine kapsamı ile Assembly dili programlamanın temel öğelerinin kapsamlı kapsamını sağlar. işletim sistemi, dünya çapında tahmini 18 milyon Linux kullanıcısı ile en hızlı büyüyen işletim sistemidir. Kitap, özellikle Assembly öğrenmek isteyen ve Linux işletim sistemine geçme niyetinde olan veya bunu bekleyen profesyonelleri hedeflemektedir.
Bu son derece kullanışlı kılavuz kitap, gerekli tüm yazılımlarla (Linux, NASM, hata ayıklayıcı) birlikte gelir ve bu, onu Assembly programlama ve Linux öğrenmek isteyenler için son derece değerli bir kaynak aracı haline getirir. Okuyucuların, bu kılavuzun tüm avantajlarından yararlanabilmeleri için, C gibi herhangi bir yapılandırılmış, üst düzey dil hakkında temel bilgilere sahip olmaları yeterlidir. Sivarama P. Dandamudi, Ottawa, Ontario, Kanada'daki Carleton Üniversitesi'nde bilgisayar bilimi profesörü ve ayrıca International Journal of Computers and Its Applications'da bilgisayar mimarisinden sorumlu yardımcı editördür. Bilgisayar sistemleri ve organizasyonu hakkında yirmi yıldan fazla öğretim deneyimine sahiptir.
- Dijital mantık devreleri, bellek organizasyonu, IA-32 mimarisi dahil olmak üzere bilgisayar organizasyonu
- Linux ve NASM'yi yükleme ve kullanma
- Assembly dili programlarında hata ayıklama
- Montaj dili talimatlarına genel bakış
- Yazma prosedürleri, adresleme modları, koşullu yürütme, mantıksal ve bit işlemleri
- Dize işleme, ASCII ve BCD aritmetiği, özyineleme, korumalı mod kesme işleme, üst düzey dil arabirimi, kayan nokta işlemleri dahil olmak üzere gelişmiş derleme dili
Kitap açıklaması Linux'ta Pro Oracle Veritabanı 11g RAC:
Pro Oracle Database 11g RAC on Linux, bir Linux ortamında Oracle Real Application Clusters'ın uygulanması konusunda tam yaşam döngüsü kılavuzu sağlar. Genellikle RAC olarak kısaltılan Gerçek Uygulama Kümeleri, Oracle'ın ölçeklenebilir ve hataya dayanıklı veritabanları için endüstri lideri mimarisidir. RAC, ucuz Linux sunucularını basitçe ekleyip çıkararak ölçeği büyütmenize ve küçültmenize olanak tanır. Bu birden çok, ucuz sunucu tarafından sağlanan yedeklilik, RAC'ın sağladığı yük devretme ve diğer hataya dayanıklılık özelliklerinin temelidir.
RAC konusundaki yetenekleriyle tanınan yazarlar tarafından yazılan Linux'taki Pro Oracle Database 11g RAC, RAC yönetimi becerilerinizi geliştirmeniz için size kaya gibi sağlam ve teknik olarak kusursuz bir temel sağlar. Yazarlar Julian Dyke ve Steve Shaw, Otomatik Depolama Yönetimi (ASM) ve Oracle Clusterware gibi en son Oracle teknolojilerini kullanarak başarı için nasıl oluşturulacağını göstererek, RAC kümeleri oluşturma konusundaki zor kazanılmış deneyimlerini paylaşıyorlar. Performans ve diğer sorunları gidermeyi öğreneceksiniz. Hatta Oracle Corporation tarafından desteklenen tek sanallaştırma çözümü olan Oracle VM'ye dayalı bir sanal makine ortamında RAC'yi nasıl doğru şekilde dağıtacağınızı öğreneceksiniz.
RAC, karmaşık ve güçlü bir teknolojidir. Dağıtımında uzmanlık gerektirir. Bir RAC çözümü oluştururken öylece “kanat” yapamazsınız. Julian ve Steve, kendilerini Linux'ta Pro Oracle Database 11g RAC uzmanı olarak adlandırma hakkını kazandılar, sağlam bir uzmanlık temeli oluşturmanıza ve başarıya ulaşmanıza yardımcı olan titiz ve teknik olarak doğru bir RAC tedavisi sunuyorlar.
Kitap açıklaması Unix ve Linux Sistem Yönetimi için Python:
Python, özellikle Linux ve Unix ağlarında problem çözmek için ideal bir dildir. Bu pragmatik kitapla yöneticiler, bu sistemlerin yönetiminde sıklıkla meydana gelen çeşitli görevleri gözden geçirebilir ve Python'un bunları ele almak için nasıl daha verimli ve daha az zahmetli bir yol sağlayabileceğini öğrenebilir.
Unix ve Linux Sistem Yönetimi için Python'daki her bölüm, eşzamanlılık veya veri yedekleme gibi belirli bir yönetim sorununu ve uygulamalı örnekler aracılığıyla Python çözümlerini sunar. Bu kitabı bitirdiğinizde, çok çeşitli sorunların üstesinden gelmek için Python ile kendi komut satırı yardımcı programlarınızı geliştirebileceksiniz.
Bu dilin size nasıl yardımcı olabileceğini keşfedin:
* Metin dosyalarını okuyun ve bilgileri çıkarın
* İş parçacığı oluşturma ve çatallama seçeneklerini kullanarak görevleri aynı anda çalıştırın
* Ağ olanaklarını kullanarak bir süreçten diğerine bilgi alın
* Büyük ve karmaşık yardımcı programları işlemek için tıklanabilir GUI'ler oluşturun
* SNMP ile programlı olarak etkileşim kurarak büyük makine kümelerini izleyin
* Bash, Korn veya Z-Shell'i değiştirmek veya artırmak için IPython Interactive Python kabuğunda ustalaşın
* Bulut Bilişimi altyapınıza entegre edin ve bir Google App Engine Uygulaması yazmayı öğrenin
* Özelleştirilmiş komut dosyalarıyla benzersiz veri yedekleme zorluklarını çözün
* MySQL, SQLite, Oracle, Postgres, Django ORM ve SQLAlchemy ile etkileşim kurun
Bu kitapla, "Python uygulamalarınızı ve kitaplıklarınızı nasıl paketleyip dağıtacağınızı ve birden çok Unix platformunda eşit derecede iyi çalışan kod yazmayı öğreneceksiniz." Ayrıca hayatınızı çok daha kolaylaştıracak Python ile ilgili birkaç teknolojiyi öğreneceksiniz.
Kitap açıklaması Linux programlama. Kendi kendine talimat kitabı:
Linux programlamanın temelleri dikkate alınır: takım oluşturma, düşük seviyeli G / Ç, çoklu görev, dosya sistemi, süreçler arası iletişim ve hata işleme. Kitap, ana hatlarıyla belirtilen kavramların pratik uygulamasına odaklanmıştır. Yeni başlayanların ihtiyaç duyduğu her şeye sahiptir ve her konunun derinlemesine incelenmesi onu deneyimli programcılar için de değerli kılar. Her konu, okuyucunun kendi programları için örnek olarak kullanabileceği çok sayıda örnekle gösterilmiştir.
Kitap açıklaması Linux'ta C++ Programlama:
Kitap, KDevelop geliştirme ortamında C++ dilinde yazılmış uygulamaların oluşturulmasına ayrılmıştır. Uygulama bileşenlerinin etkileşim yollarının açıklaması verilmiştir. Qt Designer yardımcı programı ile çalışma düşünülür ve ana kontroller diyalog kutuları, onlarla çalışmak için oluşturulan sınıfların yanı sıra. Okuyucu, Belge / Sunum konseptiyle tanışır ve uygulama kullanıcı arabirimi öğeleri oluşturmayı öğrenir. Ayrıca, ayrı bölümlerde ekranda çeşitli bilgilerin görüntülenmesi, bir dosyadan kaydedilmesi ve geri yüklenmesi, metin editörleri, sınıf ve işlev şablonlarıyla çalışma ve etkileşimli süreçlere dayalı bir uygulamada çoklu görev düzenleme. Son olarak, bir uygulama yardım sistemi oluşturmak için yönergeler sağlanmıştır.
Kitap, Qt4 ve KDevelop geliştirme ortamını kullanarak GUI uygulamalarının programlanmasıyla ilgilidir.
Bu makale iki tür okuyucu için tasarlanmıştır. Birincisi, bunlar MS Windows altında programlama deneyimi olan, ancak GNU/Linux altında böyle bir deneyimi olmayan kişilerdir. İkincisi, bunlar hiç programlama deneyimi olmayan insanlar. Bununla birlikte, okuyucunun genel programlama terminolojisine genel olarak aşina olduğunu ve örneğin bir "program", "fonksiyon", "derleyici" veya "hata ayıklamanın" ne olduğunun açıklanmasına gerek olmadığını varsayıyorum.
Geliştirme araçları
En çok GNU/Linux'a özgü olan araçları kullanarak geliştirmeye bakacağım. Bunlar şunları içerir:
C programlama dili
Bash kabuğu
Vim ve Emacs metin düzenleyicileri
GCC derleyicisi
GDB hata ayıklayıcı
GNU projesini oluşturmak için yardımcı program
Git sürüm kontrol sistemi
X11 pencereleme sistemi
Bu özel araçların seçimi bir dogma değildir. Yukarıda listelenen fonların her biri istenirse bir başkasıyla değiştirilebilir. Ancak, "Linux geliştirme ortamı" gibi ifadeler genellikle bu araçlar kümesine atıfta bulunur.
Programlama dilleri
GNU / Linux için en "yerli" programlama dili C'dir. Bunun nedeni aşağıdaki faktörlerdir:
GNU / Linux, UNIX işletim sisteminin birçok fikrini (pratikte ideolojiyi) ödünç alır;
UNIX işletim sistemi C dilinde yazılmıştır (aslında bu dil tam olarak bu işletim sistemini yazmak için oluşturulmuştur);
Buna göre Linux çekirdeği ve GNU sistem ortamı da C ile yazılmıştır.
Aşağıda C dilini kullanarak geliştirmeyi ele alacağım, ancak bu seçim bir dogma değildir. GNU / Linux altında geliştirme için diğer popüler diller C ++, Python, Perl'dir. Tabii ki, başka herhangi bir dil kullanılabilir.
Geliştirme ortamı
Son yirmi yılda, sözde. IDE'ler entegre geliştirme ortamlarıdır. Böyle bir ortam, bir metin düzenleyici, derleyici, hata ayıklayıcı, proje oluşturma araçları ve daha fazlasını içerir. Bu tür ortamlar GNU / Linux için de mevcuttur (en popülerleri Eclipse, NetBeans, IDEA, KDevelop, Anjuta'dır). Bununla birlikte, UNIX benzeri sistemler için geliştirme tarihi, IDE'lerin yalnızca tek değil, aynı zamanda en etkili geliştirme aracı olduğunu göstermektedir. Pratikte “GNU/Linux için en iyi IDE nedir” sorusunun doğru cevabı “GNU/Linux is IDE”dir.
IDE olmadan büyük bir proje geliştirmenin imkansız olduğu görüşüyle sık sık karşılaşabilirsiniz. Bu görüş kolayca reddedilir. UNIX'in ilk sürümleri Vim'de bile değil (henüz orada değildi), Ed'de yazılmıştır. Bu, aynı anda yalnızca bir metin satırını düzenleyebileceğiniz, "satır satır" olarak adlandırılan bir metin düzenleyicidir. Dosyanın tamamı ekranda görüntülenmiyor. UNIX durumunda, başka türlü olamazdı - geliştiricilerin ekranları yoktu ve sistemle iletişim teletipler kullanılarak gerçekleştirildi. Modern Linux çekirdeği öncelikle Emacs ve Vim editörlerinde yazılmıştır.
Birçok UNIX yardımcı programı "varsayılan metin düzenleyiciyi" çağırır. Varsayılan metin düzenleyiciyi başlatan komut, $ EDITOR ortam değişkeninden alınır. Bazı yardımcı programlar önce $ VISUAL değişkenine ve ayarlanmamışsa $ EDITOR değişkenine bakar. Bu, tarihsel olarak geliştirilmiş bir davranıştır: genellikle eski bilgisayarlara hiçbir ekran bağlı değildi, sadece bir teletip vardı, bu nedenle ekran (görsel) düzenleyiciyi başlatmanın bir anlamı yoktu. Modern dağıtımlar genellikle varsayılan olarak EDITOR = vi veya EDITOR = nano şeklindedir. Bunun gibi bir komut için farklı bir düzenleyicinin kullanımını belirtebilirsiniz:
EDİTÖR = bazı komutları emacs
Kullanmak istenen düzenleyici varsayılan olarak, her zaman gibi bir satır eklemeniz gerekir.
dışa aktar EDİTÖR = emacs
Tarihsel olarak, yalnızca Vim ve Emac'lar programcılar için "gerçek" metin editörleridir (çünkü bunlar tam olarak programcılar için metin editörleri olarak en uzun geliştirme geçmişine sahiptirler). Editörlerin geri kalanı yakalama pozisyonunda.
Komut kabuğu
Komut kabuğu (veya komut yorumlayıcısı), herhangi bir nedenle kullanıcıdan komutları kabul eden bir programdır. basit dil bunları programlamak ve yürütmek. Komutların çoğu aynı adı taşıyan programları çalıştırır. Bireysel komutlar, kabuk programlama dilinin yapılarıdır.
POSIX standardı, komut kabuğu tarafından sağlanan minimum yetenek kümesinin bir tanımını içerir. Aslında kullanılan mermiler, kural olarak, daha fazla olanak sağlar.
DOS ve Windows ailelerinin işletim sistemi, komut kabuğunun bazı işlevlerini UNIX'ten ödünç aldı, ancak yazarları, COMMAND.COM ve cmd.exe'nin işlevselliğinin ciddi şekilde kısıtlandığı için önemli basitleştirmeler yaptı. PowerShell oldukça eşittir, ancak önemli ölçüde farklı bir şekilde çalışır.
Bu makalenin amaçları doğrultusunda, derleyiciyi ve diğer geliştirme araçlarını çalıştırmak için kendimi bash kabuğunu (çoğu dağıtımda en yaygın ve varsayılan olarak) kullanmakla sınırlayacağım. Kabuk kullanımına ilişkin iyi bir genel bakış, örneğin ünlü kitapta bulunabilir. .
belgeler
GNU / Linux'taki tüm geliştirme araçları ve kitaplıkları genellikle oldukça iyi belgelenmiştir. Geleneksel olarak, dokümantasyon için özel bir format kullanılır ve onu görüntülemek için bir yardımcı programdır. Sistemdeki belgeler birkaç bölüme ayrılmıştır:
Kullanıcı komutları (ls, gcc veya man gibi)
Sistem Çağrıları - OS Kernel API
Kütüphane işlevleri
Sürücüler, vb.
Dosya formatları
Oyunlar vb.
Çeşitli alt sistem görünümleri
Sistem Yönetimi için Kullanılan Komutlar
Bir belge bölümünü adıyla çağırmak için, man komutunu (örneğin, man ls) çağırırken bu adı belirtmelisiniz. Bazen aynı ada sahip bölümler aynı anda belgelerin birkaç bölümünde görünür. man'ı arayarak belirli bir bölüm belirtebilirsiniz (örneğin, man 3 printf).
Man yardım sistemi hakkında daha fazla bilgi için bkz. man man.
GNU sistem ortamı yardımcı programları, dokümantasyon için genellikle bilgi biçimini kullanır. Örneğin Coreutils bilgisine bakın.
Derleyici
Artık çeşitli standartlarla az çok uyumlu birçok C derleyicisi var. Ancak GNU Derleyiciler Koleksiyonu (GCC) içerisinde yer alan C derleyicisi hala GNU/Linux ortamı için şimdiye kadarki en kullanışlı derleyicidir. Bu derleyici, C standardına ek olarak, standardın bir dizi uzantısını destekler. Bu uzantılar özellikle Linux çekirdek kaynaklarında yaygın olarak kullanılmaktadır. Son zamanlarda, Linux çekirdeğini derleyebilen derleyiciler ortaya çıktı (örneğin, llvm-clang veya EKO).
GCC derleyicisi, aşağıdaki gibi bir komutla komut kabuğundan başlatılır:
gcc programı.c
program.c giriş dosyasının adıdır. Ayrıca, POSIX standardına göre, derleyici cc program.c komutuyla başlatılabilir (cc, "C derleyicisi" anlamına gelir).
Normal başlangıçta, derleyici oluşturmaya çalışır. çalıştırılabilir dosya... Varsayılan olarak, çıktı dosyası a.out olarak adlandırılır (bu ad eski UNIX sürümlerinden kalmadır). Derleyici seçeneği -o ile farklı bir ad verilebilir, örneğin,
gcc -o program programı.c
Birkaç modülden bir program oluştururken, derleyici birkaç kaynak dosyası veya nesne kodu dosyası girebilir, örneğin,
gcc -o programı ana.c modül1.o modül2.o ...
Yalnızca bir kaynak dosyayı nesne kodunda derlemek için (çalıştırılabilir bir dosya oluşturmaya çalışmadan), aşağıdaki gibi bir komut vermeniz gerekir.
(varsayılan çıktı dosyası adı module.o olacaktır).
Bir program oluşturmak için genellikle kütüphanelere ihtiyaç vardır. Linux iki tür kitaplık kullanır: statik bağlantı kitaplıkları ve dinamik bağlantı kitaplıkları. Statik bağlama ile, program oluşturulduğunda tüm kitaplık yürütülebilir dosyaya dahil edilir. Dinamik bağlama ile, yürütülebilir dosyaya yalnızca dinamik kitaplığın adı sığar ve bu dosyanın aranması ve bağlantı oluşturma, program başladığında gerçekleşir.
UNIX benzeri sistemlerdeki statik kitaplık, bir dizi nesne dosyası içeren bir arşivdir (eski ar biçimindedir). Böyle bir arşiv, formun bir komutuyla oluşturulur.
ar r libsomething.a module1.o module2.o ...
Kitaplık dosya adlarının önüne geleneksel olarak lib eklenir.
Dinamik olarak yüklenen bir kitaplık, özel bir biçime sahip bir nesne dosyasıdır (bunun için tasarlanmıştır). dinamik yükleme). Böyle bir kitaplık, aşağıdaki gibi bir komutla oluşturulur.
gcc -shared -o libsomething.so module1.c module2.c ...
Bir program oluştururken kütüphaneyi kullanmak için derleyiciye -l seçeneğini kullanarak belirtmeniz gerekir, örneğin
gcc -o programı -lm programı.c
(burada libm.so kitaplık dosyası kullanılacaktır, derleyici varsayılan olarak lib önekini değiştirir). Varsayılan olarak, derleyici dinamik kitaplıkları kullanan bir program oluşturur. Kitaplıkların statik sürümlerini kullanmak istiyorsanız, derleyicinin -static seçeneğini belirtmesi gerekir.
gcc seçenekleriyle ilgili ayrıntılar için man gcc'ye bakın.
Selam Dünya!
"Merhaba dünya!" dizesini veren bir program yazarak bir programlama dili öğrenmeye başlama geleneğinin Kernighan ve Ritchie'nin "C Dili" kitabıyla başladığına inanılıyor. ... C dili durumunda, bu program şöyle görünür:
#Dahil etmek
int ana(int argc, char * argv) (
baskı("Merhaba dünya! \ N");
dönüş 0
;
}
Bu programı çalıştırmak için, bu metin merhaba.c adlı bir dosyaya yazılmalı ve bu dosyanın bulunduğu dizinden formun bir komutunu vermelisiniz.
gcc -o merhaba merhaba.c
Ancak bu kadar basit bir program olması durumunda şu komutu vermeniz yeterlidir.
(Bu iki komutun neden aynı şekilde çalıştığını aşağıda açıklayacağım). Sonuç olarak, aynı dizinde merhaba adlı yürütülebilir bir dosya görünecektir. komutu ile başlatabilirsiniz.
Montaj sırası
Derleyicinin ne yaptığına daha yakından bakalım. C derleyicisinin prosedürü gelenekseldir ve diğer bazı dillerin derleyicileri tarafından kullanılır.
Genel durumda, derleyici girdi olarak bir dizi kaynak dosyaya sahiptir. Gerçek derlemeye başlamadan önce, bu dosyalar sözde tarafından işlenir. önişlemci (cpp programı). Bu programın ana işlevi, #include gibi direktiflerin yürütülmesidir. Böyle bir yönergeyle karşılaşıldığında, önişlemci içeriği ekler. belirtilen dosya(bu durumda, stdio.h) bu yönerge yerine. Önişlemci birkaç yönergeyi daha anlıyor, ancak şimdi bunlar üzerinde durmayacağım.
Önişlemciden sonra asıl derleme yapılır. Bu aşamada kaynak dosyalardan sözde. nesne dosyaları. Bunlar, yürütülebilir makine kodu içeren ancak henüz çalıştırılmaya hazır olmayan dosyalardır. İçlerinde eksik olan asıl şey, çağrılan kütüphane işlevlerinin adresleridir. Örneğin, printf() işlevinin kodu libc kitaplığında bulunur. Ve nesne dosyası bu işlevin yalnızca adını içerir. Ayrıca, nesne dosyası, içinde bildirilen tüm işlevlerin adlarını içerir.
Nesne dosyaları ve kullanılan kitaplıklar, bağlayıcıya (ld programı) beslenir. Bağlayıcı, nesne dosyalarında ve kitaplıklarda çeşitli nesne dosyalarından (ada göre) çağrılan tüm işlevleri arar. Tüm işlevler bulunursa, bağlayıcı gerçek yürütülebilir dosyayı oluşturur. Bu durumda, çağrılan işlevlerin adları belirli bellek adresleriyle değiştirilir. Dinamik kitaplık kullanılması durumunda, kullanılan işlevin adı kalır ve program başladığında bu işlevi aramak için gerekli olacak dinamik kitaplık dosyasının adı buna eklenir.
Gcc programının kendisi sözde bir sürücüdür. Yürütülebilir dosyayı almak için yukarıda belirtilen programları (veya seçeneklere bağlı olarak yalnızca bazılarını) çalıştırır.
İkinci örnek: ikinci dereceden denklemleri çözme
biraz daha fazla olarak karmaşık örnekİkinci dereceden denklemleri çözmesi gereken bir program düşünün. Kullanıcı kare üç terimlinin katsayılarını girer ve program gerçek köklerini döndürür. İşte böyle bir programın tam metni:
#Dahil etmek
#Dahil etmek
/ * çöz: kare denklemin köklerini hesapla.
* a, b, c denklemdeki katsayılardır.
* Kökler x1, x2'de saklanacaktır.
* Dönüş değeri: gerçek köklerin sayısı.
*/
int çöz (çift a, çift b, çift c,
çift * x1, çift * x2) (
çift D = b * b - 4 * a * c;
çift sqrtD;
eğer (D> 0) (
kareD = kare (D);
* x1 = (-b - sqrtD) / (2.0 * a);
* x2 = (-b + sqrtD) / (2.0 * a);
dönüş 2;
) aksi takdirde (D< 0)
0 döndür;
Başka (
* x1 = -b / (2.0 * bir);
dönüş 1;
}
}
int ana (int argc, karakter * argv) (
çift a, b, c;
çift x1, x2;
int kök_sayısı;
// Girdi katsayıları
printf ("A:");
scanf ("% lf", & a);
printf("B:");
scanf ("% lf", & b);
printf("C:");
scanf ("% lf", & c);
// Denklemi çözün
root_count = çöz (a, b, c, & x1, & x2);
// Çıktı sonuçları
geçiş (roots_count) (
durum 0:
printf ("(gerçek) kök yok. \ n");
kırmak;
dava 1:
printf ("Bir kök:% 0.4lf \ n", x1);
kırmak;
durum 2:
printf ("İki kök:% 0.4lf ve % 0.4lf \ n",
x1, x2);
kırmak;
}
Bir önceki örneğe benzeterek bu metni square.c dosyasına yazıp komut ile derlemeye çalışalım.
gcc -o kare kare.c
Ancak bu sefer şöyle bir hata alıyoruz:
/tmp/cc6RNFIi.o: "çöz" işlevinde: square.c :(. metin + 0x6d): "sqrt" için tanımsız başvuru Collect2: ld 1 çıkış durumu döndürdü
Burada sorun ne? Derleyicinin nedense sqrt () işlevine yapılan çağrıyı beğenmediği açıktır. Üstelik artık kaynak kod dosyasından değil, nesne dosyasından (bu cc6RNFIi.o) şikayet ediyor. Bu, kaynak dosyanın başarılı bir şekilde derlendiği ve bağlantı aşamasında problemlerin ortaya çıktığı anlamına gelir (metindeki program hatasından da anlaşılacağı gibi, ld standart GNU / Linux bağlayıcısıdır). Bağlayıcı sqrt () işlevini bulamadı. Bu durumda, bunun nedeni, bu işlevin libm kitaplığında yer almasıydı ve derleyiciden onu kullanmasını istemedik. Bu hatadan kurtulmak için derleme komutunu aşağıdaki şekilde değiştirmemiz gerekiyor:
gcc -o kare -lm kare.c
Bu komut hatasız çalışmalı ve yürütülebilir bir kare oluşturmalıdır.
Oldukça karmaşık bir program oluştururken, birkaç kitaplık kullanmamız gerekecek ve belki de derleyiciye daha fazla seçenek belirtmemiz gerekecek. Komut oldukça uzun sürebilir. Peki, her seferinde manuel olarak yazmak mı? Numara. UNIX felsefesinin ilkelerinden biri şudur: "Otomatikleştirilebilen her şey otomatikleştirilmelidir." Burası en eski UNIX yardımcı programlarından birinin kullanışlı olduğu yer olan make programıdır. Kullanmak için Makefile adında (kaynak dosyamızla aynı dizinde) aşağıdaki içeriğe sahip bir dosya yazmamız gerekiyor:
kare: kare.c $ (CC) -o [e-posta korumalı]-lm $<
Artık sadece make komutunu vererek yürütülebilir dosyayı oluşturabilirsiniz. Nasıl çalışır?
Yapmak
Make, programlar oluşturmak içindir (ancak benzer birçok görevi otomatikleştirmek için kullanılabilir). Makefile adlı bir dosyayı okur ve içinde bir dizi kural görür. Her kural üç şeyi tanımlar: bir hedef (yani, birleştirilmesi gereken), kaynak dosyaların bir listesi ve kaynak dosyalardan bir hedef oluşturmak için yürütülmesi gereken bir dizi komut. Yukarıdaki örnekte square hedefin adıdır, square.c bu durumda tek kaynak dosyadır (birden fazla varsa boşluklarla ayrılırlar) ve ikinci satır komuttur. Değişkenler komutta kullanılabilir. Bazı değişkenlerin özel anlamları vardır. Özellikle, herhangi bir kuralda [e-posta korumalı] hedefin adını belirtir ve $< — первый исходный файл. Переменная $(CC) указывает на компилятор C, используемый в системе по умолчанию (в большинстве случаев это gcc , но бывает и что-нибудь другое).
% joker karakter, hedef adında ve kaynak listesinde kullanılabilir. Örneğin, şöyle bir kural:
% .o:% .c $ (CC) -c $<
adları .o ile biten dosyaların, .c son ekine sahip ilgili dosyalardan derlenmesi gerektiği anlamına gelir.
Ek olarak, önceden bir dizi varsayılan kuralı bilmesini sağlayın. Bunlar arasında son örnekte bahsedilen kural ve kural vardır.
%:% .c $ (CC) -o [e-posta korumalı] $<
Bu kural sayesinde, "Merhaba dünya!" sadece merhaba komutunu çalıştırın cc -o merhaba merhaba.c.
Bir dizi kuralla, make, hedeflerin birbirlerine ve kaynak dosyalara bağımlılıklarının bir grafiğini derler ve yalnızca komut satırında belirtilen hedefi oluşturmak için gereken komutları yürütür. Hiçbir hedef belirtilmezse, Makefile'de belirtilen ilk hedef oluşturulur.
Bu yardımcı program hakkında daha fazla bilgi için, örneğin man make'ye bakın.
sürüm kontrolü
Kaynak kodu sürümlerini kontrol etmek için herhangi bir VCS kullanılabilir. Ancak GNU/Linux'tan bahsettiğimize göre, Linux çekirdeğini geliştirmek için kullanılan sisteme hızlıca bir göz atalım: git. Git, dahil olmak üzere oldukça fazla belge var. ve Rusça. örneğin benim makaleme bakın veya iyi bilinen bir dizi makale .
Git'i kullanmaya başlamak için bir havuz - dosya sürümleri için bir havuz - oluşturmanız gerekir. Bu komutla yapılır
Artık depoya dosya ekleyebilirsiniz. Ancak, nesne dosyaları ve yürütülebilir dosyalar gibi bazı dosyaların sürümlerini izlememize gerek yoktur. Bunları git değerlendirmesinden hemen hariç tutmak için aşağıdaki içeriğe sahip bir .gitignore dosyası yazın:
* .o kare merhaba
Şimdi komut
file.gitignore içinde belirtilenler dışında, geçerli dizindeki tüm dosyaları depoya ekleyecektir. Bundan sonra, komutla taahhütte bulunabilirsiniz.
Bu komut varsayılan metin düzenleyiciyi açacaktır. Burada taahhüde bir yorum yazmanız gerekecek. Bu durumda "Initial commit" gibi bir satır yeterlidir.
hata ayıklama
Linux'ta hata ayıklamak için gdb hata ayıklayıcı kullanılır. Ama önce programın hata ayıklamasının kolay olması için -g seçeneği ile derlenmesi gerekir. Şimdi sadece Makefile'ı değiştirip forma getirmemiz gerekiyor.
kare: kare.c $ (CC) -o [e-posta korumalı]-lm -g $<
ve programı yeniden oluşturun.
Normal derleme sırasında, işlevlerin, değişkenlerin vb. adları yürütülebilir dosyaya girmez. -g seçeneği, derleyiciye bu bilgiyi yürütülebilir dosyanın uygun bölümüne yazmasını söyler. Ayrıca bu seçenek ile kaynak dosyadaki ofsetlerin ve satır numaralarının yazışmaları ile ilgili bilgiler çalıştırılabilir dosyaya yazılır.
Hata ayıklama gibi bir komutla başlatılır
gdb ./some-program -a -b
Hata ayıklayıcıyı başlattığınızda, aşağıdaki gibi bir komut satırı istemi görünür:
GNU gdb (GDB) 7.2-ubuntu Telif Hakkı (C) 2010 Free Software Foundation, Inc. Lisans GPLv3 +: GNU GPL sürüm 3 veya üstü Bu ücretsiz bir yazılımdır: onu değiştirmekte ve yeniden dağıtmakta özgürsünüz. Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR. Ayrıntılar için "kopyalamayı göster" ve "garantiyi göster" yazın. Bu GDB, "i686-linux-gnu" olarak yapılandırılmıştır. Hata raporlama talimatları için lütfen bakınız: ... /home/portnov/LUG/src/square...'den sembollerin okunması tamamlandı. (gdb)
Hata ayıklayıcıyla çalışmak, genel olarak komut kabuğuyla çalışmaya benzer. Komutları girersiniz, hata ayıklayıcı bunları yürütür. Komut kabuğunda olduğu gibi, Tab tuşu kullanılarak komut tamamlama çalışır. Ek olarak, kısa olması için, belirsizliği önlemek için komutları ilk birkaç harfe kısaltabilirsiniz.
En sık kullanılan komutlar şunlardır:
Kaynağın başka bir parçasını yazdırın (10 satır yazdırılır). Komut adından sonra belirli satır numaralarını belirtebilirsiniz, örneğin l 10,15.
Hata ayıklayıcı altında yürütmek için programı çalıştırın. Program en yakın kesme noktasına veya sonuna kadar çalışacaktır.
Bir kesme noktası ayarlayın. Kesme noktasını ayarlamak istediğiniz satır numarası, komut adından sonra görünür.
Bir satır program yürütün.
İfadeyi değerlendirin ve yazdırın. İfade, komuttan sonra belirtilir. Böylece örneğin bir değişkenin değerine bir kez bakabilirsiniz.
Sürekli görüntülenenler listesine bir ifade ekleyin. Bu ifadelerin değerleri her komut yürütüldükten sonra gösterilecektir. Her ifadenin yanında listedeki numarası yazdırılır. İfade numarasıyla birlikte undisplay komutunu kullanarak bir ifadeyi listeden kaldırabilirsiniz.
Hata ayıklayıcıdan çıkın.
GDB hakkında daha fazla bilgi için bkz. man gdb.
X11 pencereleme sistemi
Tarihsel olarak, UNIX, grafiksel görüntüler olmadığı için herhangi bir grafik ortamına sahip değildi ve olamazdı. UNIX'in grafik ortamı, ortak grafik ekranların ortaya çıkmasıyla aynı zamanda ortaya çıktı: 1984'te. İlk başta W (Pencere için) olarak adlandırıldı, daha sonra geliştirildi ve alfabenin bir sonraki harfi olarak adlandırıldı - X, sonraki sürüm X2 denir ... Şimdi X11'imiz var.
X11, öncelikle TCP/IP ve UDP/IP üzerinden bir ağ protokolüdür. Bir protokolün bir istemcisi ve bir sunucusu vardır. İstemci "benim için bir pencere çiz", "üzerine bir düğme çiz" gibi bir dizi istek gönderir ve sunucu bunları yürütür. X11'in ana ilkelerinden biri "politikaları değil mekanizmaları tanımlamak"tır. Protokol, örneğin pencere çizme yeteneği sağlar, ancak tam olarak nasıl görüntüleneceğini belirlemez.
Günümüzde en yaygın X sunucusu Xorg'dur (http://x.org); XFree86 hala hayatta; Xming, Windows için geçerlidir; donanımda X11 sunucu işlevselliği desteğinin uygulandığı donanım X sunucuları - "monitör + klavye + fare" kitleri vardır - bu tür kitler grafik terminalleri olarak kullanılır.
X11 protokolü, örneğin HTTP'den farklı olarak, metin değil ikilidir - bu, ağ bant genişliğinden tasarruf ve sunucu tarafından istekleri ayrıştırma kolaylığı nedenleriyle yapılır. Ancak bu, bu protokol için istemcilerin oluşturulmasını karmaşıklaştırır: karmaşık ikili X11 isteklerini toplamak, örneğin metinsel HTTP isteklerine göre açıkça daha zordur. Bu nedenle, X istemcileri yazmak için, sunucuya X istekleri oluşturan ve gönderen özel işlev kitaplıkları kullanılır. En yaygın kütüphane libX11'dir. Daha modern bir seçenek libxcb'dir.
X11 sorguları çok düşük seviyede. Örneğin, bir düğmenin işlevselliğini uygulamak için, pencereye bir dikdörtgen çizmeniz, içine metin yazmanız, fare düğmesini tıklamak için döngüde beklemeniz ve her tıklama ile tıkladığınız yeri kontrol etmeniz gerekir - dikdörtgenin içinde veya dışında o. Bu nedenle, sözde araç takımları ortaya çıkmaya başladı - libX11 üzerinde üst düzey sarmalayıcılar olan kitaplıklar.
Tarihsel olarak, ilk araç seti Athena3D idi. Sonra Motif ve Tk vardı. Şimdi en yaygın olanları GTK + ve Qt'dir (kesinlikle konuşursak, Qt bir X11 araç takımı değil, X11 araç takımı olarak kullanılabilecek çok amaçlı bir çapraz platform kitaplığıdır).
Merhaba, dünya GTK +
Örnek olarak aşağıdaki programı düşünün. Tek düğmeli bir pencere gösterir. Bu düğmeye tıkladığınızda, "Merhaba dünya" mesajı görünür.
#Dahil etmek
// Bu fonksiyon mesaj diyaloğunu görüntüler.
// main_window parametresi, iletişim kutusunun üst penceresine ayarlanmalıdır.
geçersiz mesaj_kutusu (GtkWindow * ana_pencere, gchar * mesaj) (
GtkWidget * iletişim kutusu, * etiket, * içerik_alanı;
// Bir diyalog oluştur
dialog = gtk_dialog_new_with_buttons ("Mesaj",
ana pencere,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_Tamam,
GTK_RESPONSE_NONE,
BOŞ);
// Bir etiket oluştur
content_area = gtk_dialog_get_content_area (GTK_DIALOG (iletişim kutusu));
etiket = gtk_label_new (mesaj);
// "Yanıt" sinyalinde (kullanıcı bir düğmeyi tıkladığında çağrılır
// diyalog), diyalogu yok et.
g_signal_connect_swapped (iletişim kutusu,
"cevap",
G_CALLBACK (gtk_widget_destroy),
diyalog);
// Bir etiket ekle
gtk_container_add (GTK_CONTAINER (içerik_alanı), etiket);
// İletişim kutusunu göster
gtk_widget_show_all (diyalog);
}
// Silme olayı sinyali için geri arama
statik gboolean delete_event (GtkWidget * widget'ı,
GdkEvent * olayı,
işaretçi verileri)
{
// TRUE dönerse pencere kapanmaz.
// Bu, bazı durumlarda pencerenin kapanmasını önlemek için kullanılabilir.
YANLIŞ döndür;
}
// Yok etme sinyali için geri arama
statik boşluk yok etme (GtkWidget * widget'ı,
işaretçi verileri)
{
// Ana GTK + olay döngüsünü sonlandır
gtk_main_quit();
}
// Düğme tıklaması için geri arama
statik void merhaba (GtkWidget * widget'ı,
işaretçi verileri)
{
// "data" parametresi burada ana pencereyi temsil eder
message_box (GTK_WINDOW (veri), "Merhaba dünya!");
}
int ana (int argc,
karakter * argv)
{
GtkWidget * penceresi;
GtkWidget * düğmesi;
// GTK +'yı başlat
gtk_init (& argc, & argv);
// Ana pencere oluştur
pencere = gtk_window_new (GTK_WINDOW_TOPLEVEL);
// Bazı sinyaller için geri aramaları ayarla
g_signal_connect (pencere, "delete-olay",
G_CALLBACK (delete_event), NULL);
G_signal_connect (pencere, "yok et",
G_CALLBACK (yok), NULL);
// Pencere kenarlıkları genişliğini ayarla
gtk_container_set_border_width (GTK_CONTAINER (pencere), 10);
// Etiketli buton oluştur
button = gtk_button_new_with_label ("Merhaba Dünya");
// Düğmenin "tıklanan" sinyali için geri aramayı ayarla.
// Ana pencereyi ikinci parametre olarak ilet.
g_signal_connect (düğme, "tıklandı", G_CALLBACK (merhaba), (gpointer) penceresi);
// Düğmeyi pencereye paketle
gtk_container_add (GTK_CONTAINER (pencere), buton);
// Düğmeyi göster
gtk_widget_show (düğme);
// Pencereyi göster
gtk_widget_show (pencere);
// Ana GTK + olay döngüsünü çalıştırın.
gtk_main();
Bu program, formun bir komutu ile birleştirilir
gcc -o gtk-hello $ (pkg-config --cflags gtk + -2.0) $ (pkg-config --libs gtk + -2.0) gtk-hello.c
ek literatür
Raymond, Eric S. UNIX Programlama Sanatı. - Per. İngilizceden - M.: Yayınevi "Williams", 2005. - 544p., Ill.
Kernighan B., Pike R. UNIX. Yazılım çevrilidir. - İngilizce'den Per. - SPb: Symbol-Plus, 2003 .-- 416s., Ill.
Kernighan B., Ritchie D. Programlama dili C. - Per. İngilizceden - Moskova: Williams, 2006 .-- 304 s.
Linux'a nasıl başlayacağınızı öğrenmeniz ve bu sistemin özelliklerini anlamanız için en iyi 10 video kursunu bir araya getirdik.
1. Yeni Başlayanlar için Linux
Size sistemi bir bütün olarak ve nasıl başlayacağınızı anlatan Linux hakkında bir video eğitimi ile başlayalım. Bu video kursu, Linux ile tanışmaya yeni başlayanlar için daha uygundur.
2. Bir dizi ders "Linux Öğrenin"
Bu video kursu, Linux'a başlamanız için tasarlanmıştır. Bu sistemi PC'nize kurmanıza yardımcı olacaktır. Bu video kursunun izleyicileri, Linux hakkında biraz bilgi sahibi olan kişilerdir.
3. Linux yönetimi üzerine bir ders dersi
Linux yönetimi hakkında ayrıntılı video kursu. Sistemin amacından MySQL yönetimine kadar değişen konularla ilgilenir. Hem yeni başlayanlar hem de deneyimli Linux kullanıcıları için uygundur.
4. Bash'te Programlama
Bash programlamayı öğrenmek için mükemmel bir İngilizce eğitimi. Linux ile çalışmanın çok önemli bir yönünü anlamanıza yardımcı olacaktır, ancak bu kursa önceki kurslardan birini izledikten sonra başlamak en iyisidir.
5. Linux yönetimi
Bu kurs size temel bir Linux bilgisi sağlayacak ve LPIC-1 sertifikalı olmanıza yardımcı olacaktır. LPIC-1 sertifikası ile bilginizi pekiştirmek istiyorsanız bu kurs tam size göre.
6. Linux temelleri
Linux ile çalışmanın temelleri üzerine kısa bir video kursu. Bu video kursuyla başlamak istiyorsanız, Linux kurulumuna aşina olmanızı tavsiye ederim, çünkü bu video kursu doğrudan sistemin kendisinde çalışmanın yönlerini tartışıyor.
7. Komut satırıyla çalışmanın temelleri
Linux komut satırıyla çalışma hakkında küçük ama çok kullanışlı bir İngilizce eğitimi. Bu video kursunda, dosya veya dizin oluşturma ve silme gibi basit işlemleri öğreneceksiniz. Linux'ta çalışma bilgilerini genişletmek isteyen herkes için uygundur.
8. Vladimir Mozhenkov'dan GNU / Linux üzerine video kursu
GNU / Linux ile çalışmanın temelleri üzerine basit ve anlaşılır bir video eğitimi. Bu video kursu hem acemi hem de deneyimli Linux kullanıcılarına yöneliktir.
9. Bir dizi ders "Linux dünyasına giden yolunuz!"
Bu eğitim videosu, sistem cron zamanlayıcısı ve yol değişkeni gibi şeylerle çalışmakla ilgilidir. Önceki derslerden birini okumadan bu kursa başlamamanızı tavsiye ederim.
10. Linux yönetimi
Listemizin sonuncusu, Linux ile çalışmanın tüm yönlerini detaylandıran bir video kursudur. Bu video kursu, deneyimli kullanıcıların bilgilerini genişletecek, kurs Linux'a zaten bir şekilde aşina olan ancak bu konuda daha fazla bilgi edinmek isteyenler için tasarlanmıştır.
Linux mükemmel bir uygulama geliştirme ortamına sahiptir.
Gambas programlama ortamı hakkında biraz. Programlama dili ve ortamı, Paris'in kenar mahallelerinden genç bir Fransız Benoit Minisini tarafından hem derleyicilerin yaratılmasından hem de flütten, oyunculuk öğretmekten ve profesyonel bir programcı olarak çalışmaktan aldığı zevk için yaratıldı.
Bir işletim sisteminin parçası olarak çalışmak üzere tasarlanmış herhangi bir program gibi, Gambas da kullanıcının aşina olduğu bir arayüzü destekler - bu, grafiksel kullanıcı ortamı ve günümüz işletim sistemlerinin onsuz yapamayacağı, kullanıcının aşina olduğu, bu da kullanıcının istediği bölümü hızlı bir şekilde bulmasına yardımcı olur. menüde, kendi göreviniz üzerinde hızla çalışmaya başlayın.
Menü seçeneği Dosya genellikle dosyalarla çalışmaya hizmet eden , bu durumda proje dosyalarıyla çalışmaya hizmet eder: Yeni proje ...(yeni bir proje oluşturma), Açık proje...(açık proje), En son aç(yeni bir proje açın), Açık örnek(açık örnek), Projeyi kaydet(projeyi kaydedin), Çıkış yapmak(ve çıkış).
Bir proje üzerinde çalışmak için bir bölüm var Proje:
Bunlar sırasıyla dosya derleme, proje derleme, yürütülebilir dosya oluşturma, kaynak arşiv oluşturma, kurulum paketi oluşturma, proje özellikleri, proje temizleme ve güncellemedir.
Windows kullanıcıları için iki menü öğesi alışılmadık olabilir - bir kaynak arşivi ve bir yükleme paketi oluşturmak. Ancak unutulmamalıdır ki hem programlar hem de Linux işletim sisteminin kendisi her zaman açık kaynak kodları şeklinde mevcuttur. Linux'ta bir programı, programı derlemek ve kurmak için kaynak kodu ve işletim sistemi araçlarını kullanarak veya Windows'ta Kurulum'a benzer şekilde hazır bir kurulum paketi kullanarak iki şekilde kurabilirsiniz. Ancak, farklı Linux dağıtımlarında böyle bir kurulum paketi farklı olabilir ve kurulum paketine çift tıklayarak kurulumu yapmak her zaman mümkün değildir.
Sonraki menü öğesi, yeni oluşturulan Gambas programının hata ayıklayıcısına atıfta bulunur ve başlat, duraklat, çalışan bir programı durdur, programı adımla ve ilerle ve tüm kesme noktalarını temizle gibi aşağı yukarı standart hata ayıklama araçlarına sahiptir.
Bunu formun bölümleri takip eder - görüş(çalışma alanının tüm iletişim pencerelerini açar ve kapatır), araçlar ( Aletler) ve ipuçları ( ? ). Son bölüm oldukça ayrıntılı Yardım tarayıcısı programın en son sürümündeki Wiki'ye dayanmaktadır.
Ana araç çubuğu, alışılageldiği gibi, ana menünün en sık kullanılan bölümlerini tekrarlar, tuşların atanması için araç ipuçlarına sahiptir.
Proje formundaki grafik çalışması ve program kodu, aşağıdaki şekilde kısayollar kullanılarak hızlı geçiş yapılarak gerçekleştirilebilir. fmain.form ve Fmain.class, üzerine tıklayarak bir grafik düzenleyiciye veya bir kod düzenleyiciye girebilirsiniz. Her birinin kendi ana araç menüsü vardır. Aşağıdaki şekil, grafik düzenleyicinin araç menüsünü göstermektedir.
Panodan kaydetme ve güncelleme, geri alma ve döndürme, silme ve yapıştırma gibi ana menü araçlarını tekrar eden olağan araçlara ek olarak, panelde ayrıca menü düzenleyiciye girme gibi bazı özel bileşenler de vardır. Sonuçta, program çalışması sırasında program penceresi haline gelen hemen hemen tüm formların bir ana menüsü olmalıdır. Bölümleri ve alt menüleri ile ana menünün hiyerarşisini oluşturmanızı sağlayan menü düzenleyicisidir.
Birçok şekil ve özel sınıf içeren karmaşık bir proje oluştururken proje ağacı penceresini kullanabilirsiniz.
Ana menü bölümünde bulunan Gambas'ı başlatın Uygulamalar:
Bölümlerde, yeni bir proje oluştur, mevcut bir projeyi aç, yakın zamanda kullanılan bir projeyi kullan gibi geleneksel ve gerekli eylemlere ek olarak, bir örnek bölümü vardır ( Örnekler). Orada bir çok örnek var, kendi projeleriniz üzerinde çalışırken bunları kullanabilirsiniz.
Yeni bir proje oluşturmak için öğesini seçin. Yeni proje.
Projenin adını, başlığını girebileceğiniz, projenin yerleştirileceği yeri belirtebileceğiniz bir iletişim kutusu açılır. Gambas, bir projeyle ilgili her şeyi, projeden sonra isimlendirilecek olan belirli bir dizinde saklar. İletişim kutusunda gezinmek için sadece tuşuna basın Sonraki, ancak en başta ne tür bir proje yaratmayı düşündüğünüzü seçmelisiniz. Seçilebilecek üç seçenek vardır - bir grafik proje, bir terminal projesi, mevcut (sizinki veya değil) bir projenin bir kopyasını kullanan bir proje
Örneğin bir grafik projesi seçelim.
Bir grafik proje seçtikten, ona bir isim ve ikamet yeri verdikten sonra, kendimizi ilk adımı atmamıza izin verecek bir programlama ortamında buluyoruz - bir form oluşturmak. Bunu yapmak için, projenin "ağacının" görüntülendiği proje yöneticisinin sağ penceresinde, bölüme sağ tıklayın. Formlar ve açılır menüden bölümü seçin Yeni bir öğeye sahip bir seçim menüsüne yol açan Biçim(yeni bir form oluşturun).Form, form bir miktar içerikle doldurulduğunda ve proje oluşturulduğunda görünecek olan programın ana penceresidir. Form oluşturma iletişim kutusunda, çok sayıda pencere içeren orta ve büyük projeler için önemli olan formun adını ayarlayabilir, bir dizi seçenek belirleyebilirsiniz.
Anahtarı tıklayarak Tamam, form ve program düzenleyicisi görünür. Görünüşe göre forma çeşitli düğmeler, pencereler ve programın diğer araçlarını yerleştirmek mümkün olacak. Ve editörde program kodu olacak her şey sığacak.
Form, birçok kontrol gibi şu özelliğe sahiptir: Metin, bu, resim yazısı yerine görünecek metindir Form1.Form programı yürütürken. Eğer senSağ fare tuşuyla forma tıklayın, öğe açılır menüde görünecektir kod hangi kod düzenleyiciyi çağırır.
Proje araç takımı tarafından ayrı bir alan işgal edilmiştir - araç kutusu... Çalışma alanına benzer şekilde inşa edilmiş olup, proje oluşturma araçlarının bulunduğu sayfaları açan çeşitli kısayollara da sahiptir.
Mevcut Gambas bileşenlerinin listesi
Program sezgisel ve çok kullanışlıdır, ayrıca araç ipuçları sayesinde program kodunu yazmanıza yardımcı olur.
Yorumunuzu bırakın!
Taramalı Atomik Kuvvet Mikroskobu Laboratuvar raporu şunları içermelidir:
Havai iletişim ağı için destek seçimi
AC katener tasarımı ve hesaplanması
Mikroişlemci sistemlerinin geliştirilmesi Mikroişlemci sistemlerinin tasarım aşamaları
mcs51 ailesinin mikrodenetleyicileri