haskell – 如何调用“–enable-stdcall-fixup”选项?


Windows下构建DLL时,我得到以下输出:

Linking main.exe ...
Warning: resolving _findPeaksWrapper by linking to _findPeaksWrapper@16
Use --enable-stdcall-fixup to disable these warnings
Creating library file: HSdll.dll.a
Use --disable-stdcall-fixup to disable these fixups

我不清楚我应该在哪里放置–enable-stdcall-fixup标志.将它放入我的.cabal文件的ghc-options字段会产生GHC错误,而将其放入cc-options或ld-options似乎没有做任何事情(警告仍然显示).这面旗子应该去哪儿?

最佳答案 谷歌搜索表明–enable-stdcall-fixup是ld的一个选项. cabal的最终链接步骤可能会有一些不同的途径,但在你的情况下显然是这样

Cabal -> ghc (link step) -> gcc -> ld

所以要匹配这个你必须指定

ghc-options: -optl-Wl,--enable-stdcall-fixup
点赞