我正在尝试从 Ludum Dare 构建一个 haskell 项目,但是每当我尝试构建时,我都会收到一条错误消息,指出目标文件包含太多部分。这是错误:
C:\Users\REDACTED\AppData\Local\Programs\stack\x86_64-windows\ghc-8.10.2\lib\../mingw/bin\ld.exe: .stack-work\dist\a3a5fe88\build\HSsingletons-2.7-J1xRPYS9ah3kGEIOoeLuX.o: too many sections (90295)
singletons > C:\Users\REDACTED\AppData\Local\Programs\stack\x86_64-windows\ghc-8.10.2\lib\../mingw/bin\ld.exe: final link failed: file too big
-- While building package singletons-2.7 using:
C:\Users\REDACTED\AppData\Local\Temp\stack-5ba10ebdb151d9fa\singletons-2.7\.stack-work\dist\a3a5fe88\setup\setup --builddir=.stack-work\dist\a3a5fe88 build --ghc-options " -fdiagnostics-color=always"
Process exited with code: ExitFailure 1
我正在使用堆栈 2.3.3 和 Windows 10。该项目使用 vulkan 库。我尝试添加
-opta-mbig-obj
,但是 gcc 然后失败了 error: unrecognized command line option '-mbig-obj'
最佳答案
看起来您可能需要尝试显式使用“大对象”文件格式,我相信您可以通过将 -opta-mbig-obj
或 -Wa,-mbig-obj
添加到项目构建配置( package.yaml
或 .cabal
文件)中的 GHC 标志来将 -mbig-obj
添加到汇编程序中选项。您可能还需要使用(我认为) --oformat pe-bigobj-x86-64
或 -optl--oformat -optlpe-bigobj-x86-64
将 -Wl,--oformat,pe-bigobj-x86-64
添加到链接器标志。您使用的是 32 位 MinGW 吗?我希望 MinGW64 默认处理这个。 (而且我实际上不确定 32 位是否支持这些标志,因此您可能需要升级。)
关于windows - ld : too many sections (90295),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64287505/