Ale*_*lex 3 linker haskell sdl
如何告诉ghc告诉ld将已编译的二进制文件链接到SDL库?
我有一个source.hs:
import Prelude
import Graphics.UI.SDL as SDL
import Data.Maybe
import GHC.Word
import Control.Applicative
...
Run Code Online (Sandbox Code Playgroud)
当我做:
ghc source.hs
Run Code Online (Sandbox Code Playgroud)
我得到了一堆与此类似的链接错误:
pong.o: In function `s1Ww_info':
(.text+0x449): undefined reference to `SDLzm0zi5zi9_GraphicsziUIziSDLziRect_Rect_con_info'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
如果由于某种原因你不想使用GHC的--make选项,这应该工作:ghc source.hs -lSDL -package SDL
如果您需要一些非核心SDL子库,则必须单独包含这些子库,例如: ghc source.hs -lSDL -SDL_ttf -package SDL -package SDL-ttf
您可能还需要考虑使用cabal(Haskell打包系统)设置构建文件,特别是如果您的程序扩展到几个源文件之外.
还有一个警告 - 你没有提到你正在使用的操作系统,但是上次我尝试Haskell的SDL绑定只能在Linux上"开箱即用" - Windows和OS X都会导致问题,到期SDL在这些平台上启动时使用的丑陋黑客.
| 归档时间: |
|
| 查看次数: |
889 次 |
| 最近记录: |