Statik İkili Oluşturma


14

Bir uygulama yükledim [örn. Fdisk]. Ancak yürütmek için kütüphaneler gerekiyordu. Zaten yüklü ikili dosyalardan statik bir ikili oluşturmak için bana yardımcı olacak yardımcı programı / aracı arıyorum . Böylece her yerde kullanabilirim.

Ben bulduğu tek güvenilir araçları ErmineLightdan burada , ama bu bir pay-ware olduğunu.

Bunun için açık kaynaklı bir yazılım var mı?

EDIT fdisk sadece bir örnektir. Çoğu zaman LFS üzerinde çalışıyorum, bu yüzden herhangi bir yardımcı programı kullanmam gerekirse, adımları aşağıdaki gibi izlemem gerekir

  1. Kaynağı indir
  2. yapılandır
  3. Yapmak
  4. test yapmak
  5. kurulum yap,

Yani sadece tasarruf için zaman, ben debian veya fedora veya diğer güvensizlik statik bir ikili yapacağım bir çözüm arıyorum, LFS üzerinde deneyin, ve eğer iyi çalışır veya benim şartının gibi, ben yapacağım derleme için kaynak kodu ile gidin.


1
hedef aktarım kolaylığı mı (yani bir usb'ye koyun, bu işlemci kemeriyle herhangi bir yere taşıyın)?
Mike Pennington

Yanıtlar:


15

Eğer fdisk sadece bir örnekse ve hedefiniz gerçekten dinamik yürütülebilir dosyalardan statik yürütülebilir dosyalar oluşturmaksa, Elf dengeleyicisini deneyin . Ermine ile bir karşılaştırma bile var (Ermine satıcısı tarafından, bu yüzden uyarı (emptor olmayan) . Bunu not et

  • Çok sayıda yürütülebilir dosyaya sahipseniz, birleşik boyutlarının, dinamik olarak bağlı yürütülebilir dosyaların ve gerekli dinamik kitaplıkların birleştirilmiş boyutundan daha büyük olması muhtemeldir.
  • NSS (kullanıcı adları, ana bilgisayar adları, vb.) Ve yerel ayarlarla ilgili özellikler gibi statik olarak bağlı yürütülebilir dosyalarda çalışmayabilen GNU libc özellikleri vardır.

Amacınız küçük, taşınabilir bir sistem araçları paketine sahip olmaksa , gömülü sistemler (dahil fdisk) için tasarlanmış bir çekirdek araç paketi olan BusyBox'ı arıyorsunuz . Glibc'den daha küçük bir standart kütüphane, örneğin dietlibc veya µClibc ile de ilgilenebilirsiniz .


1
Elf'leri çok sevdim ama şaşkınlıkla. İşe yaramadı. Segfaultlar. Birçok yardımcı program ile birçok dağıtım ile birçok kez denedim.
SHW

1
Muhtemelen adres rastgele hale getirilmesi için segfaults: burada açıklanmıştır: linux-magazine.com/Issues/2009/105/Ermine-vs.-Statifier
Rmano

0

Şey ... bu çok kötü bir fikir gibi görünüyor. Ama mümkün.

Fdisk açık kaynak olduğundan, sadece kaynağını alın ve Makefile'a bakın. Derleme sırasında gcc'ye "-static" iletecek bir seçenek bulmalısınız.

Ben bir C / C ++ guru değilim ama bildiğim kadarıyla dinamik olarak bağlı mevcut bir ikili dosyadan statik olarak bağlı bir ikili oluşturmak mümkün değildir.

Herhangi bir yerde kullanmak isterseniz, saniyeler içinde başlayan ve her şeyi değiştirmenize izin veren küçük bir bakım dağıtımı kullanmanızı öneririm.

Bana daha mantıklı geliyor çünkü muhtemelen Linux / UNIX kurulumunuzu çalıştıran diski değiştirmek isteyeceksiniz.


Cevabınız çelişkili görünüyor, dediniz ki "... çok kötü bir fikir. Ama bu mümkün" ve sonra da "... mevcut dinamik olarak bağlı bir ikili dosyadan statik olarak bağlı bir ikili oluşturmak mümkün değildir". Lütfen cevabınızı açıklığa kavuşturun, en yararlı olacaktır.
JM Becker

@TechZilla: dinamik olarak bağlı bir ikili dosyadan statik bir ikili dosya oluşturmak mümkündür . Ancak, ikincisini yapmanın bazı olası yetenekleri için kabul edilen cevaba bakınız. [Not: Yorum, gelecekteki okuyucular için burada olan her şeyi eleştirmekten daha çok amaçlanmıştır.]
Eylül'ü

-3

Ayrıca ELFex Linker , onun sadece keşfettiğim oldukça güzel bir program, gui kullanabilirsiniz ve dinamik yürütülebilir statik yürütülebilir dosyalar oluşturabilirsiniz.


bağlantı çalışmıyor.
Jakuje

Link benim için çalışıyor ve soruyu doğrudan cevaplıyor gibi görünüyor. Spam olmadığını öneririm.
roaima

Bağlantı benim için çalışıyor. Sayfa, profesyonel bir programcının çalışmasından bekleyebileceğiniz yazım hataları / dilbilgisi / yazım hatalarının sayısına sahiptir - profesyonel bir web sitesinden beklediğinizden daha fazla, kimlik avı e-postasından beklediğinizden daha az. Yukarıdaki yazı ile hemen hemen aynı düşünün. Bu yeni kullanıcının, yepyeni bir web sitesi gibi görünen bir bağlantı yayınlamak için tam zamanında Stack Exchange'e katılması şüpheli görünüyor.
G-Man, 'Monica'yı Yeniden Başlat' diyor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.