我一直在开发一个Haskell库包,它需要在Windows平台上使用自定义的.dll和.lib与一些操作系统API交互。.lib被链接到库中的
由于某种原因(我不是任何意义上的链接专家,但这似乎很奇怪),如果我创建一个测试可执行文件,该文件使用我的包(在
我希望当我的库被安装时,.lib已经被链接到Cabal/GHC生成的.a文件中。这是否是事实?如果是,有人能解释为什么会这样吗?
extra-libraries
字段中,而DLL被安装在Cabal软件包目录中的data-files
字段中。由于某种原因(我不是任何意义上的链接专家,但这似乎很奇怪),如果我创建一个测试可执行文件,该文件使用我的包(在
build-depends
字段中),它想要链接编译库时使用的同一个.lib——尽管它只是调用库函数,并没有使用.lib暴露的任何内容。显然它在运行时需要访问.dll,但这是可以预料的,需要.lib也很奇怪。我希望当我的库被安装时,.lib已经被链接到Cabal/GHC生成的.a文件中。这是否是事实?如果是,有人能解释为什么会这样吗?