在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
似乎不会执行任何操作(警告仍会显示)。这面旗帜应该在哪里?
答案 0 :(得分:2)
Google搜索表示--enable-stdcall-fixup
是ld的选项。 cabal的最终链接步骤可能会有一些不同的途径,但在你的情况下显然是
Cabal -> ghc (link step) -> gcc -> ld
所以为了匹配这个,你必须指定
ghc-options: -optl-Wl,--enable-stdcall-fixup