我很難搞清楚如何創建兩個硬鏈接到我的目標程序。我的目標程序是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 [email protected] $^
%.o : %.c
$(CC) $(CFLAGS) -c $< -o [email protected]
bar: ${TARGET}
${LN_F} ${TARGET} bar
baz: ${TARGET}
${LN_F} ${TARGET} baz
的問題是,我現在必須創建硬鏈接手動富,通過輸入"ln -s foo bar"
和"ln -s foo baz"
小點:ln -s是一個符號鏈接,不是硬鏈接。儘管你可能不想要硬鏈接。您是否嘗試在'$ {CC}'...行之後添加'ln -s $(TARGET)bar'? – 2014-11-08 04:15:22
@GregBowser哦,好的,我沒有意識到-s是一個符號鏈接。但我絕對想要一個硬鏈接,因爲我想要bar和baz代表與foo相同的程序,但只是有不同的名稱。 – Apollo 2014-11-08 04:24:08
符號鏈接將做到這一點。例如在我的系統上:'/ bin/sh'是'/ bin/bash'的符號鏈接,這基本上就是你想要做的。符號鏈接是99%的時間。無論如何,只需在'$(TARGET)'目標中添加'ln -s ...'行就可以了。 – 2014-11-08 04:32:13