Подтвердить что ты не робот

Какая разница между параметрами GHC -c и -no-link?

Справка говорит:

 -c  Do not link

и

 -no-link  Omit linking

Я понимаю, что -c полностью предотвращает связывание. Но какая разница, если я укажу -no-link? Действительно ли фаза связывания делает что-то помимо ссылки?

Обновление: Интересно, что -no-link устарел в GHC 6.12, но недосчитан в GHC 7.

4b9b3361

Ответ 1

AFAK -c не обрабатывает зависимости. Например.

Main.hs:

module Main
where

import Test

main :: IO ()
main = test

Test.hs:

module Test
where

test :: IO ()
test = print 123

Попытка скомпилировать с помощью -c:

$ ghc -c Main.hs

Main.hs:5:1:
    Failed to load interface for `Test'
    Use -v to see a list of the files searched for.

С -no-link:

$ ghc -no-link Main.hs
[1 of 2] Compiling Test             ( Test.hs, Test.o )
[2 of 2] Compiling Main             ( Main.hs, Main.o )