2016-03-26 41 views
0

GMP'yi bağımsız bir ortamda kullanmak mümkün mü?Bağımsız programlarda GMP kullanımı

Çıplak metal üzerinde çalışması gereken bir program üzerinde çalışıyorum (ek yükü azaltmak için ve ayrıca güvenlik amaçlarıyla - dış kodlara izin verilmiyor), ancak beni minimalist bir çekirdek oluşturmaya zorluyorum, ayrıca GMP kullanmam gerekiyor keyfi büyük tamsayılar için. Mini-GMP'ye baktım, ancak gerçek (tam) GMP'den daha yavaş büyüklükteki emirler gibi görünüyor.

unutmayın: Ben this soruya baktım, ancak OP o mini GMP memnun olduğunu söyledi hangi birine .. dışında hiçbir cevaplar orada görünmek

Statik bağlamak gerekir
+0

GMP'ye karşı/bağlantısını kullanmaya çalıştığınızda karşılaştığınız sorunlar nelerdir? –

+0

@OliverCharlesworth GMP, normal programlar için iyi çalışır, ancak bir programda kullanıldığında, bir GMP işlevi kullanıldığında linker tanımlanmamış referans hatalarını bildirir. – aleks

+0

Bağımsız bir ortam mutlaka C standart kütüphanesini sağlamamaktadır. Böyle bir ortamda standart kütüphane işlevlerini kullanmak veya bunu yapan bir üçüncü taraf kitaplığı kullanmak istiyorsanız, gerekli işlevler için kendi uygulamalarınızı sağlamaya hazır olmanız gerekir. Bu kesinlikle mümkündür, ancak sağlanması gereken oldukça fazla sayıda fonksiyona dönüşebilir ve uygulamalarınızın uyumlu olmasına dikkat etmelisiniz. –

cevap

0

kütüphaneleri bağımsız bir yürütülebilir dosyaya dönüştürür. Tıpkı daha fazla nesne dosyasını birbirine bağlamak gibi.

Dolayısıyla, bir GMP'nin statik sürümünü oluşturun (ideal olarak -march=atom ile veya hedef donanımınız için uygun olan her şey). Bir yere libgmp.a girin ve derleyiciye nerede olduğunu öğrenmek için -Ldir kullanın.

Bunu GMP için denemedim, bu yüzden statik bir GMP oluşturmada herhangi bir komplikasyon olmadığını garanti edemiyorum, ancak çoğu paket için derleme komut dosyaları statik kitaplıklar oluşturma seçeneği içerir. (ör. --enable-static)