2016-05-08 19 views
5

Haskell'de görünecek ancak C++ uygulamasında uygulanacak bir veri yapısı oluşturmaya çalışıyorum. Şimdiye kadar ben bir .cpp dosyasında uyguladım, extern "C" olarak ihtiyacım olan tüm işlevleri bildirdim ve .cabal dosyasındaki c-sources alanına kaynak dosyasını ekledim. Projeyi oluşturduğumda (bu durumda stack build ile) iyi görünüyor.Bir Haskell projesinde C++ kaynakları dahil

Hatalar varsa derlemediğinden, C++ dosyasına bir şey yaptıklarını biliyorum.

Henüz bir kitaplık olduğu için projeyi çalıştırmayı denemiyorum ve şu ana kadar "runnable" yazılan hiçbir şey yok, ancak repl işe yaramaz. (Bu durumda stack repl)

bunu denemenizi Benim veya dosyada bir isme atıfta olabilir veya olmayabilir bazı ezilmiş adla bir eksik sembol hatası alıyorum.

unknown symbol `_ZdlPv' 
linking extra libraries/objects failed 

Bu sorunu nasıl düzeltebilirim? Daha önce benzer bir sorunla karşılaştım, kaynağı dinamik bir kütüphaneye manuel olarak derledim ve sonra bu kütüphaneyi projemde kullanıyorum. Bunu bir platformla bağladığımdan ve GHC'nin zaten sahip olduğu araçları kullanarak proje ile basit bir C++ derlenemediğinden hiçbir şey ifade etmediğinden bunu yapmak istemiyorum. Bunu hackage üzerine koymak istiyorum.

Eksik olduğum bir şey var mı? Değilse, bir hata mıdır ve düzeltmek için planlar var mı?

+0

Lütfen tam hata mesajını ve bir [mcve] ekleyiniz. – Zeta

+2

, C++ kaynaklarını içeren bir cabal paketi için bir örnektir. Https://github.com/jbransen/minisat-bundle/blob/master/minisat.cabal – d8d0d65b3f7cf42

+0

@Zeta Bu bir soru türü değil. –

cevap

2

Tamam, şimdilik bunu düzeltmeyi başardım.

Kömür dosyama bir extra-libraries: stdc++-6, gcc_s_seh-1 ekledim ve şimdi çalışıyor. Platform bağımsızsa bu bir fikir yok, ancak yığınlar halinde kurduğumda bu kütüphaneler GHC ile gönderilir.

İlgili konular