Arama butonu
Bu konudaki kullanıcılar: 2 misafir
5
Cevap
244
Tıklama
0
Öne Çıkarma
Fortran programini .so olarak compile etmek icin ne gerekiyor?
R
8 yıl
Yarbay
Konu Sahibi

Arkadaslar, fortran ile yazilmis birkac subroutine baska bir yazilim icinde kullanilmak üzere .so dosyasi olarak compile etmeliyim. Linux hakkinda hicbir bilgim yok diyebiliriz neredeyse. Windows yüklü bir makine ile bunu yapmaliyim. Hicbir bilgim olmadigini göz önünde bulundurursak yapmam gerekenler nelerdir? Kullanilan yazilimin hangi linux sürümü ile compile edilmis olmasi dikkat etmem gerken bir durum mu? Yani uyumsuzluk sorunu olusabilir mi? Entegre edilecek yazilim ile ilgili hangi bilgilere sahip olmaliyim ki .so dosyasinin uyumlu olacagini garanti altina alabileyim?

Sanirim Virtual Box gibi bir emulator yüklemeliyim. Linux sürümü icinde fortran compiler varsayilan olarak geliyor mu bilmiyorum ama linux altinda calisan bir fortran compiler kullanmaliyim galiba. Bilen varsa kisaca bana yapmam gerekenleri adim adim özetleyebilir mi?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



T
8 yıl
Yarbay

Ha yok, o Windows makinada Linux'ta çalışacak so derleme komutu. Cross compile soyut bir deyim ve sadece derlemenin yapıldığı sistemden (=build) farklı işletim sisteminde (=host) çalışacak kod derlendiği zaman yapılan derleme işlemine verilen ad yoksa 'cross-compiler' gibi bir compiler yok, sadece normal GCC derleyici ile cross compile işlemi yapmak var. Bu arada bahsettiğim örnek linki:http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html ve o örnek tamamen Linux üzerinde yani Linux üzerinde ve Linux için .so oluşturuluyor. Cross-compile en cok mobil cihazlar için binary oluştururken kullanılıyor örneğin Android app yaparken Laptop'ta 'javac' ile Java kodunu derlerken yapılan işlemin adı da cross-compile.



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
R
8 yıl
Yarbay
Konu Sahibi

quote:

Orijinalden alıntı: revivo72

Ha yok, o Windows makinada Linux'ta çalışacak so derleme komutu. Cross compile soyut bir deyim ve sadece derlemenin yapıldığı sistemden (=build) farklı işletim sisteminde (=host) çalışacak kod derlendiği zaman yapılan derleme işlemine verilen ad yoksa 'cross-compiler' gibi bir compiler yok, sadece normal GCC derleyici ile cross compile işlemi yapmak var. Bu arada bahsettiğim örnek linki:http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html ve o örnek tamamen Linux üzerinde yani Linux üzerinde ve Linux için .so oluşturuluyor. Cross-compile en cok mobil cihazlar için binary oluştururken kullanılıyor örneğin Android app yaparken Laptop'ta 'javac' ile Java kodunu derlerken yapılan işlemin adı da cross-compile.

Tekrar tesekkürler cevabiniz icin. Cross compiling yapilmasi icin o zaman gfortran yüklendikten sonra örnek verdiginiz sekilde 2 komut satiriyla .so dosyasini derleyebilirim. Lisanli intel fortran compiler var ama sanirim linux icin cross compiling yapamaz, dogru muyum?


Linux makinede yada emulator üzerinde .so dosyasi derleme hakkinda anladigimi kisaca özetleyecek olursam:

1- Virtual box gibi bir emulator yükleyecegim ve bu fortran destekli bir Linux GCC icerecek.
2- Gönderdiginiz sitedeki örnege benzer bir sekilde 2 asamali olarak .so dosyasini olusturacagim. Bu adim sizin örneginizde oldugu gibi 2 asamli ve önce object dosayasinin olusturulmasi ve daha sonra o object dosyasi ile shared object library olusturuyoruz.

Peki .so dosyasini derlerken entegre edilecegi yazilim ile alakali ayarlar yada komutlar yazilmasi gerekmiyor mu? Entegre edilecegi yazilim da (bir yapisal analiz programi) dogal olarak linux üzerinde calisiyor.

Ayrica windows icin dll dosyasi derlerken bir library dosaysi olustugunu gördüm ve kodun icine DLLEXPORT ALIAS falan gibi komutlar yazilmasi gerekiyordu ki windows üzerinde calisan yazilim onu DLLIMPORT ile import edebilsin. Bu durumun .so dosyasi icin de gecerli olmasi lazim diye düsünüyorum ama artik .so derlenecegi icin kullanmam gereken komut nedir bilmiyorum. Cross compiling yada linux makinede direk linux icin derleme yapilmasi durumu farketmeksizin böyle olacagini düsünüyorum, dogru mudur?



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.