我很难搞清楚如何创建两个硬链接到我的目标程序。我的目标程序是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