Bazı OS API'leriyle konuşmak için Windows'da bir özel .dll ve .lib gerektiren bir Haskell kitaplık paketi üzerinde çalışıyorum. .lib kütüphaneye extra-libraries
alanı ile bağlanır ve DLL, data-files
ile cabal paket dizinine yüklenir.Statik .lib kütüphane kullanıcıları için de gereklidir?
Nedense (build-depends
alanında) paketimi kullanan bir sınama yürütülebilir dosyası oluşturursam, aynı şekilde bağlantı kurmak istiyorsa (herhangi bir şekilde bağlantı kurma konusunda uzman değilim, ancak bu garip görünüyor). lib kütüphaneyi derlerdi - kütüphane işlevlerini çağırıyor olsa da, .lib'nin gösterdiği hiçbir şey değil. Açıkçası, çalışma zamanında .dll erişim gerekir, ancak beklenen. .lib'ye ihtiyaç duyulması garip görünüyor.
Yüklendiğinde, kitaplığım için .lib dosyasının Cabal/GHC tarafından oluşturulan .a dosyasına zaten bağlanmasını beklerim. Durum böyle değil mi? Ve eğer öyleyse, biri neden böyle olduğunu açıklayabilir mi?
Vanilya kütüphaneleri için 'ar' yerine' ld -r' kullanmak için onu zorlamak için bir yol var mı? Ld-options: -r 'yi eklemeyi denedim ama hiçbir şey yapmıyor gibi görünüyor (muhtemelen' ld 'kullanılmıyor mu?) –
@TomSavage Hayır, bence mümkün değil. Ama ben kabile konusunda uzman değilim. – Yuras