Gönderen Konu: Linux'ta C++ ile exe derleme  (Okunma sayısı 5167 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı dev@mehmet

  • Çaylak Penguen
  • **
  • İleti: 189
  • Dağıtım: Linux Mint 19
  • Masaüstü: Cinnamon
Linux'ta C++ ile exe derleme
« : 17 Temmuz 2014, 22:38:10 »
C++ Windows Kütüphanelerini Linux Altında Kullanma
Windows altında C++ programlama yapan bir kişi Linux altında programlamaya devam etmek isterse kütüphane sorunları yaşaması muhtemeldir. Hatta bu sorunlar yüzünden Windows'a bile geri dönebilir. Aslında Windows'a dönmesine hiç gerek yok çünkü Linux platformunda da Windows kütüphaneleri kullanarak exe dosyaları derlenebiliyor. Bu yazı derleme işleminin nasıl yapıldığını anlatmak üzere yazılmıştır.

Yazdığımız kaynak kod dosyasını derleyebilmek için aşağıdaki komutla derleyiciyi kurmanız gerekiyor.

Kod: [Seç]
sudo apt-get install mingw32
Derleyicimiz kurulduktan sonra derleme işlemi için aşağıdaki kodu kullanmanız yeterli.

Kod: [Seç]
i586-mingw32msvc-g++ -s -o output.exe main.cpp
Kaynak :http://metrekup.host22.com/linuxta-c-ile-exe-derleme/

Derlediğiniz dosyayı çalıştırabilmek için bilgisayarınızda wine yüklü olmalıdır. Eğer wine yüklü değilse aşağıdaki komutla kurabilirsiniz.

Kod: [Seç]
sudo apt-get install wine
Programınızı çalıştırabilmek için aşağıdaki komutu kullanmanız yeterli

Kod: [Seç]
wine output.exe
Eğer derleme işlemini yaparken kod kullanmak istemiyorsanız bu işlemleri Geany üzrinden grafiksel arayüz ile de yapabilirsiniz.

Geany Derleyicisini Ayarlama İşlemi

Eğer yukarıdaki yöntemi kullanarak yapılan derleme işlemini direk grafiksel arayüz üzerinden butonlara basarak yapmak istiyorsanız Geany'de küçük bir ayarlama yapmanız gerekiyor.
Geany derleyicisinde bulunan derle , inşa et ve çalıştır komutları düzenlenebilir bir yapıya sahip. Bu sayede derleyici üzerinde bulunan  komutları düzenleyip derleme işlemini Windows kütüphaneleri üzerinden exe olarak yapabilir ve dosyamızı açmak için komut yazmamıza gerek kalmadan direk tıklayarak yapabiliriz.

Ayarlamayı yapmak için önce Geany açıyoruz.


Daha sonra inşa et ile çalıştır butonları arasında bulunan küçük oka tıklıyoruz.



Çıkan menüde “İnşa Komutlarını Seç”i tıkladıktan sonra aşağıdaki gibi bir pencere gelecektir.



Bu pencere üzerinden derleme ve inşa etme komutları üzerinde küçük bir değişiklik yapacağız.
Derle ve inşa et kısmındaki komutların başına aşağıdaki satırı ekliyoruz.

Kod: [Seç]
İ586-mingw32msvc-
Derle komutunu düzenledikten sonra şöyle gözükmesi lazım.

Kod: [Seç]
i586-mingw32msvc-g++ -Wall -c "%f"
İnşa et komutunu düzenledikten sonra şöyle gözükmesi lazım.

Kod: [Seç]
i586-mingw32msvc-g++ -Wall -o "%e" "%f"
Bunun dışında başka bir düzenleme yapmanıza gerek yok. Artık sadece butonlara tıklayarak komut yazmadan derleme işlemini gerçekleştirip programınızı çalıştırabilirsiniz.
Herkese iyi günler dilerim. İyi kodlamalar.

Kaynak : http://metrekup.host22.com/linuxta-c-ile-exe-derleme/
« Son Düzenleme: 11 Eylül 2014, 15:57:24 Gönderen: metrekup »

Çevrimdışı hwpplayer1

  • Çaylak Penguen
  • **
  • İleti: 139
  • Linux Mint 17.1 Rebecca KDE :)
    • hwpplayer1 Free Software and GNU/Linux Blog
  • Dağıtım: Linux Mint 17.1 Rebecca KDE / PTS 3.0 KDE Kararlı
Ynt: Linux'ta C++ ile exe derleme
« Yanıtla #1 : 21 Ekim 2014, 21:54:40 »
Kod: [Seç]
hwpplayer1[member=612]hwpplayer1[/member]-Aspire-V3-772G:~ > sudo apt-get install mingw32
[sudo] password for hwpplayer1:
Paket listeleri okunuyor... Bitti
Bağımlılık ağacı oluşturuluyor       
Durum bilgisi okunuyor... Bitti     
mingw32 zaten en yeni sürümde.
0 paket yükseltilecek, 0 yeni paket kurulacak, 0 paket kaldırılacak ve 10 paket yükseltilmeyecek.

Kod: [Seç]
hwpplayer1[member=612]hwpplayer1[/member]-Aspire-V3-772G:~ > i586-mingw32msvc-g++ -s -o output.exe main.cpp
i586-mingw32msvc-g++: main.cpp: Böyle bir dosya ya da dizin yok
i586-mingw32msvc-g++: no input files

Kod: [Seç]
hwpplayer1[member=612]hwpplayer1[/member]-Aspire-V3-772G:~ > sudo apt-get install wine
Paket listeleri okunuyor... Bitti
Bağımlılık ağacı oluşturuluyor       
Durum bilgisi okunuyor... Bitti     
wine zaten en yeni sürümde.
0 paket yükseltilecek, 0 yeni paket kurulacak, 0 paket kaldırılacak ve 10 paket yükseltilmeyecek.

Kod: [Seç]
hwpplayer1[member=612]hwpplayer1[/member]-Aspire-V3-772G:~ > wine output.exe
wine: cannot find L"C:\\windows\\system32\\output.exe"

C++ için .cxx uzantısı var ancak C# için http://www.erickjohncuevas.com/how-tos/how-to-run-c-codes-using-geany/ paketini kurdum Geany'de C# da göremiyorum.

Kod: [Seç]
hwpplayer1[member=612]hwpplayer1[/member]-Aspire-V3-772G:~ > sudo aptitude install monodevelop
[sudo] password for hwpplayer1:
Hiçbir paket kurulmayacak, yükseltilmeyecek ya da kaldırılmayacak.
0 paket yükseltildi, 0 yeni kuruldu, 0 kaldırıldı, 21 yükseltilmedi.
Arşivlerden 0 B veri alınacak. Paketler açıldıktan sonra 0 B yer kullanılacak.

Yaptığım eksik bir işlem var mıdır nasıl kontrol edebiliriz ? Teşekkürler.

Düzeltme : .cs C# konusunda bir aşama kaydettim dosya oluşturup düzenledim.Diğerini de çözerim herhalde bir hata alırsam ileteceğim.Teşekkürler.
« Son Düzenleme: 21 Ekim 2014, 22:04:58 Gönderen: hwpplayer1 »
GNU Emacs :)

Çevrimdışı Toor

  • Yeni Penguen
  • *
  • İleti: 64
  • Dağıtım: Debian Stretch 9.0
  • Masaüstü: LXDE
  • Grafik Kartı: Intel HD Graphics
  • İşlemci: Intel Pentium P6100 2.0GHZ
Ynt: Linux'ta C++ ile exe derleme
« Yanıtla #2 : 21 Ekim 2014, 22:08:20 »
hwpplayer1 Sorununu yanlış anlamadıysam eğer, sanırım bu kaynaktan yararlanarak C# kodları derlemeye çalışmışsın. Bu konu C++ için yazılmış.

C# Microsoft tarafından geliştirilen ve sadece Microsoft firmasının sistemlerinde(Windows, Windows Phone..) verimli çalışan bir programlama dilidir.

Lakin Mono kaynaklarını kullanarak da Linux ortamında .net dilleri(C#, Vb.net) ile uygulama geliştirebilirsiniz ve geliştirdiğiniz uygulamalar hem Windows hemde Linux ortamında çalışır.

Çevrimdışı hwpplayer1

  • Çaylak Penguen
  • **
  • İleti: 139
  • Linux Mint 17.1 Rebecca KDE :)
    • hwpplayer1 Free Software and GNU/Linux Blog
  • Dağıtım: Linux Mint 17.1 Rebecca KDE / PTS 3.0 KDE Kararlı
Ynt: Linux'ta C++ ile exe derleme
« Yanıtla #3 : 21 Ekim 2014, 22:13:17 »
Evet ben de öncelikli hedef olarak C++ ile exe derlemeyi koydum ancak C# ile de iş görülebildiğini görünce derslerimde C# göreceğimden denemek istedim ve monodevelop yükledim.Konu başlığını yanlış kullandığımın farkına vardım ancak mesajı atmış oldum.İsterseniz C# konusunu ayrıca konuşalım.Konu exe derleme olunca konuları birbirine benzettim kusura bakmayın.

Not: Bu konu başlığını C++ için kullandım.C# için bir benzetme yaparak soru sormak istedim.

Not 2 : Öyle zannediyorum ki ne C++'ta ne de C#'ta bir sorunum yok çünkü ayarlamaları yaptım.Ve dosya yazılabilir durumda.Konuya yanlış içerik soktum kusura bakmayın.Teşekkürler.

Not 3 :
Kod: [Seç]
İ586-mingw32msvc- kısmını kaldırınca exe olarak değil de GNU/Linux ortamı için C++ derleniyor sanırım doğru mu ?
« Son Düzenleme: 21 Ekim 2014, 22:40:53 Gönderen: hwpplayer1 »
GNU Emacs :)

Çevrimdışı Toor

  • Yeni Penguen
  • *
  • İleti: 64
  • Dağıtım: Debian Stretch 9.0
  • Masaüstü: LXDE
  • Grafik Kartı: Intel HD Graphics
  • İşlemci: Intel Pentium P6100 2.0GHZ
Ynt: Linux'ta C++ ile exe derleme
« Yanıtla #4 : 21 Ekim 2014, 22:41:03 »
Bilemiyorum.. Konuda wine adındaki yazılımın yardımıyla Windowsa özel kütüphanelerle birlikte derlenmiş olan .exe uzantılı cpp uygulamalarını çalıştırmayı gösteriyor.

Eğer Linux'a özel olarak kodlarını derlemek istiyorsan bu yazı işine yarayabilir.

Çevrimdışı hwpplayer1

  • Çaylak Penguen
  • **
  • İleti: 139
  • Linux Mint 17.1 Rebecca KDE :)
    • hwpplayer1 Free Software and GNU/Linux Blog
  • Dağıtım: Linux Mint 17.1 Rebecca KDE / PTS 3.0 KDE Kararlı
Ynt: Linux'ta C++ ile exe derleme
« Yanıtla #5 : 21 Ekim 2014, 22:50:06 »
Bilemiyorum.. Konuda wine adındaki yazılımın yardımıyla Windowsa özel kütüphanelerle birlikte derlenmiş olan .exe uzantılı cpp uygulamalarını çalıştırmayı gösteriyor.

Eğer Linux'a özel olarak kodlarını derlemek istiyorsan bu yazı işine yarayabilir.

Teşekkür ederim.Amacım eksik dosyaları kurup öğrenme aşamasında sorun yaşamamaktı.Yarın tekrardan konuyu inceleyeceğim.

Not : Yazınızı okudum ben .cpp uzantılı dosyamı direk grafik arayüzünden Geany ile yazabilirim.En azından başlangıçta.Şu aşamada amacım herhangi bir dosyanın nasıl oluşturulduğunu görmekti.Bunu öğrenmiş oldum.Ayrıca bir sorunum olduğunda araştırmak kaydıyla bu başlık altında ya da başka bir başlık altında yazacağım.Teşekkürler.

Not:Arkadaşlarım bana code blocks IDE'sini önerdi.Ayrıca bir konu başlığı açmadan önce buraya not düşeyim dedim.

Kod: [Seç]
sudo apt-get install codeblocks diyerek kuruyoruz.Teşekkürler.
« Son Düzenleme: 22 Ekim 2014, 21:13:31 Gönderen: hwpplayer1 »
GNU Emacs :)