Wie kann ich eine benutzerdefinierte Objektdatei mit der Haskell-Bibliothek verknüpfen?

Ich habe ein Haskell-Paket erstellt, mit dem FFI-Aufrufe für im CUDA-Code definierte Funktionen ausgeführt werden. Ich möchte die .cu-Datei während der Paketerstellung in eine Objektdatei (.o) kompilieren und den Linker zwingen, sie zu verknüpfen.

Bisher habe ich versucht, eine gefundene Technik anzuwendendiese Frage. Ich habe buildHook angepasst an:

nvcc ausführenFühren Sie den Standard-BuildHook ausErstelle eine Bibliotheksdatei mit nvcc kompiliertem Code.

Setup.hs ist verfügbarHier.

Diese Lösung hat einen großen Nachteil darin, dass sie dieses Paket auf statische Verknüpfungen beschränkt. Obwohl cabal eine gemeinsam genutzte Bibliothek erstellt, funktioniert dies nicht, da Symbole in der Objektdatei nicht aufgelöst werden können.

Gibt es eine einfachere Möglichkeit, benutzerdefinierten Code während der Erstellung zu verknüpfen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage