메이크 파일 내 하드 링크

아폴로

내 대상 프로그램에 대한 두 개의 하드 링크를 만드는 방법을 파악하는 데 어려움이 있습니다. 내 목표 프로그램입니다 foo, 나는 두 foo는에 하드 링크라는 하나 만들려고 baz하고라는 다른 bar. 현재 내 makefile은 다음과 같습니다.

CC = gcc
CFLAGS = -g -std=c99 -pedantic -Wall
HOME = /my/home/dir
SOURCES = main.c bar.c baz.c datastructure.c ${HOME}/addNodes.c
OBJECTS = $(SOURCES:.c=.o)
TARGET = foo
LN_F = ln -f

$(TARGET): $(OBJECTS)
    ${CC} ${CFLAGS} -o $@ $^

%.o : %.c
    $(CC) $(CFLAGS) -c $< -o $@

bar: ${TARGET}
    ${LN_F} ${TARGET} bar

baz: ${TARGET}
    ${LN_F} ${TARGET} baz

문제는 이제 입력 "ln -s foo bar"하고 입력하여 foo에 대한 하드 링크를 수동으로 만들어야한다는 것입니다."ln -s foo baz"

조나단 레플러

심볼릭 링크를 사용하는 경우 :

TARGET = foo
AUX1   = bar
AUX2   = baz
LN_S   = ln -s -f

all: ${TARGET} ${AUX1} ${AUX2}

${TARGET}: $(OBJECTS)                                                           
    ${CC} ${CFLAGS} -o $@ $^                                                    

${AUX1}: ${TARGET}
    ${LN_S} ${TARGET} ${AUX1}

${AUX2}: ${TARGET}
    ${LN_S} ${TARGET} ${AUX2}

하드 링크를 사용하는 경우 ln -f(없이 -s)를 사용합니다. 참고 A (매우) 오래 전,이에 한 번하는 것이 -f지원되지 않았다 ln(그 일에, -s하나의 옵션이 아니었다 - 나는 오래 전에 그것에 대해 이야기하고있다),이 연결 규칙과 같은 규칙을 사용하는 것이 rm -fln명령을 실행하기 전에 링크를 제거하십시오 .

또한 링크 라인은 일반적인 매크로를 사용하여 쓸 수 $@$?(이러한 신뢰성, POSIX 지원 매크로입니다) :

${AUX2}: ${TARGET}
    ${LN_S} $? $@

에 대한 전제 조건이 하나뿐이기 때문에 이것은 정상적으로 작동합니다 ${AUX2}. 하나 이상의 전제 조건 $?이있는 경우 작동하지 않습니다.주의하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Jenkins가 링크에서 PDF를 다운로드하여 이메일 첨부 파일로 보내기

분류에서Dev

내 웹 페이지 내 링크에서 파일 다운로드

분류에서Dev

UIActivityViewController를 사용하여 이메일로 링크 보내기

분류에서Dev

HTML 이메일 보내기 (링크가 작동하지 않음)

분류에서Dev

이메일 템플릿 : 내부 링크

분류에서Dev

strings.xml 파일의 하이퍼 링크 이메일 주소?

분류에서Dev

내 하드 드라이브에있는 두 .mp3 파일 사이의 이상한 "링크"

분류에서Dev

하드 링크가 동일한 파일 시스템 내에서만 유효한 이유는 무엇입니까?

분류에서Dev

파일에 하드 링크 인쇄

분류에서Dev

파일 하드 링크 수 변경

분류에서Dev

셀 내용을 기반으로 파일에 대한 하이퍼 링크

분류에서Dev

OpenGL을 사용하는 메이크 파일의 링커 오류

분류에서Dev

내 데스크탑 PC에서 하드 링크 된 파일의 함정은 무엇입니까?

분류에서Dev

여러 파일을 하나의 파일로 하드 링크 / 소프트 링크

분류에서Dev

여러 파일을 하나의 파일로 하드 링크 / 소프트 링크

분류에서Dev

Mailgun이 내 이메일의 링크를 변경했습니다.

분류에서Dev

kv 파일의 Kivy 하이퍼 링크

분류에서Dev

파일 이름에 #이있는 하이퍼 링크 필드

분류에서Dev

링크를 클릭 할 때 이메일 보내기

분류에서Dev

팔로우 링크를 긁어 내고 이메일 수집

분류에서Dev

<a> mailgun을 사용하여 PHP 이메일에서 URL의 일부만 보내는 링크

분류에서Dev

파일이없는 경우 이메일을 보내는 크론

분류에서Dev

Python을 사용하여 Excel 내보내기의 하이퍼 링크에서 파일을 다운로드하는 방법

분류에서Dev

이메일의 하이퍼 링크에 텍스트 링크 추가

분류에서Dev

Dropbox 링크는 실행하는 대신 내 PHP 파일의 코드를 표시합니다.

분류에서Dev

텍스트 내에 링크 된 모든 파일을 다운로드하는 방법은 무엇입니까?

분류에서Dev

링크로 검색하기 위해 파일 업로드 내용을 MySQL DB에 올바르게 저장

분류에서Dev

두 파일 사이의 하드 링크 삭제

분류에서Dev

파일이 하드 링크인지 확인

Related 관련 기사

  1. 1

    Jenkins가 링크에서 PDF를 다운로드하여 이메일 첨부 파일로 보내기

  2. 2

    내 웹 페이지 내 링크에서 파일 다운로드

  3. 3

    UIActivityViewController를 사용하여 이메일로 링크 보내기

  4. 4

    HTML 이메일 보내기 (링크가 작동하지 않음)

  5. 5

    이메일 템플릿 : 내부 링크

  6. 6

    strings.xml 파일의 하이퍼 링크 이메일 주소?

  7. 7

    내 하드 드라이브에있는 두 .mp3 파일 사이의 이상한 "링크"

  8. 8

    하드 링크가 동일한 파일 시스템 내에서만 유효한 이유는 무엇입니까?

  9. 9

    파일에 하드 링크 인쇄

  10. 10

    파일 하드 링크 수 변경

  11. 11

    셀 내용을 기반으로 파일에 대한 하이퍼 링크

  12. 12

    OpenGL을 사용하는 메이크 파일의 링커 오류

  13. 13

    내 데스크탑 PC에서 하드 링크 된 파일의 함정은 무엇입니까?

  14. 14

    여러 파일을 하나의 파일로 하드 링크 / 소프트 링크

  15. 15

    여러 파일을 하나의 파일로 하드 링크 / 소프트 링크

  16. 16

    Mailgun이 내 이메일의 링크를 변경했습니다.

  17. 17

    kv 파일의 Kivy 하이퍼 링크

  18. 18

    파일 이름에 #이있는 하이퍼 링크 필드

  19. 19

    링크를 클릭 할 때 이메일 보내기

  20. 20

    팔로우 링크를 긁어 내고 이메일 수집

  21. 21

    <a> mailgun을 사용하여 PHP 이메일에서 URL의 일부만 보내는 링크

  22. 22

    파일이없는 경우 이메일을 보내는 크론

  23. 23

    Python을 사용하여 Excel 내보내기의 하이퍼 링크에서 파일을 다운로드하는 방법

  24. 24

    이메일의 하이퍼 링크에 텍스트 링크 추가

  25. 25

    Dropbox 링크는 실행하는 대신 내 PHP 파일의 코드를 표시합니다.

  26. 26

    텍스트 내에 링크 된 모든 파일을 다운로드하는 방법은 무엇입니까?

  27. 27

    링크로 검색하기 위해 파일 업로드 내용을 MySQL DB에 올바르게 저장

  28. 28

    두 파일 사이의 하드 링크 삭제

  29. 29

    파일이 하드 링크인지 확인

뜨겁다태그

보관