简体   繁体   English

Yesod haskell-stack安装-fPIC

[英]Yesod haskell-stack installing -fPIC

This is the first time I try to install Haskell yesod but I run through some problems when I use these commands on Arch Linux 这是我第一次尝试安装Haskell yesod,但是在Arch Linux上使用这些命令时遇到了一些问题

yesod devel 

or 要么

stack exec -- yesod devel


/usr/bin/ld: /home/romano/.stack/programs/x86_64-linux/ghc-tinfo6-7.10.3/lib/ghc-7.10.3/rts/libHSrts.a(Scav.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /home/romano/.stack/programs/x86_64-linux/ghc-tinfo6-7.10.3/lib/ghc-7.10.3/rts/libHSrts.a(Compact.o): relocation R_X86_64_32S against symbol `mblock_cache' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /home/romano/.stack/programs/x86_64-linux/ghc-tinfo6-7.10.3/lib/ghc-7.10.3/rts/libHSrts.a(GCAux.o): relocation R_X86_64_32S against symbol `mblock_cache' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /home/romano/.stack/programs/x86_64-linux/ghc-tinfo6-7.10.3/lib/ghc-7.10.3/rts/libHSrts.a(MarkWeak.o): relocation R_X86_64_32S against symbol `stg_DEAD_WEAK_info' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /home/romano/.stack/programs/x86_64-linux/ghc-tinfo6-7.10.3/lib/ghc-7.10.3/rts/libCffi.a(closures.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /home/romano/.stack/programs/x86_64-linux/ghc-tinfo6-7.10.3/lib/ghc-7.10.3/rts/libCffi.a(ffi64.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
Exit code ExitFailure 1 while running ["ghc","-clear-package-db","-global-package-db","-hide-all-packages","-package","base","-package","Cabal-1.22.5.0","/tmp/stack16245/Setup.hs","-o","/home/romano/.stack/setup-exe-cache/x86_64-linux-tinfo6/tmp-setup-Simple-Cabal-1.22.5.0-ghc-7.10.3","-rtsopts"] in /tmp/stack16245/
ExitFailure 1
Type help for available commands. Press enter to force a rebuild.

Now I am not sure why this happens but I think my database settings are wrong 现在我不确定为什么会发生这种情况,但是我认为我的数据库设置错误

Some users have come across a linker errors that seem to be dependent on the local environment, ie the package may compile on a different machine. 一些用户遇到了链接器错误,这些错误似乎取决于本地环境,即,程序包可能在不同的计算机上编译。 The issue has been reported to be non-deterministic in some cases. 据报道,在某些情况下,该问题是不确定的。

The issue may be related to the use of hardening flags in some cases, specifically those related to producing position independent executables (PIE). 在某些情况下,该问题可能与使用硬化标志有关,特别是与生成位置独立可执行文件(PIE)有关的硬化标志。

In Arch Linux, the support for this is provided by the hardening-wrapper package . 在Arch Linux中, hardening-wrapper软件包对此提供了支持。 Possible workaround: 可能的解决方法:

sudo vim /etc/hardening-wrapper.conf

* vim, nan, emacs or whatever editor you prefer. * vim,nan,emacs或您喜欢的任何编辑器。

Change HARDENING_PIE=1 to HARDENING_PIE=0 HARDENING_PIE=1更改为HARDENING_PIE=0
save it. 保存。

That's it. 而已。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM