2012-02-05 67 views
0

我是初學者,當涉及到編寫makefiles時,但我遇到了與我的程序有關的鏈接問題。基本上我在嘗試在遠程機器上構建它時遇到了上述錯誤。 這裏是我的makefile:獲取GCC鏈接器錯誤:鏈接器輸入文件未使用,因爲未完成鏈接

SRCS = gt_cfs.c gt_kthread.c gt_matrix.c gt_pq.c gt_signal.c gt_spinlock.c \ 
    gt_uthread.c red_black_tree.c stack.c misc.c 

HDRS = gt_bitops.h gt_cfs.h gt_include.h gt_kthread.h gt_pq.h gt_signal.h \ 
    gt_tailq.h gt_uthread.h red_black_tree.h stack.h misc.h 

OBJS = gt_cfs.o gt_kthread.o gt_matrix.o gt_pq.o gt_signal.o gt_spinlock.o \ 
    gt_uthread.o red_black_tree.o stack.o misc.o 

CC = gcc 

CFLAGS = -Wall -pedantic -lrt -lm 

PROGRAM = cfs_gtthreads 

.PHONY: clean 

all: $(PROGRAM) 

$(PROGRAM):  $(OBJS) 
    $(CC) $(CFLAGS) $(OBJS) -o $(PROGRAM) 

gt_include.h: gt_bitops.h gt_cfs.h gt_kthread.h gt_pq.h \ 
      gt_signal.h gt_tailq.h gt_uthread.h 

gt_cfs.o: gt_cfs.c 

gt_kthread.o: gt_kthread.c 

gt_matrix.o: gt_matrix.c 

gt_pq.o: gt_pq.c 

gt_signal.o: gt_signal.c 

gt_spinlock.o: gt_spinlock.c 

gt_uthread.o: gt_uthread.c 

red_black_tree.o: red_black_tree.c 

stack.o:  stack.c 

clean:   
rm -f *.o *~ $(PROGRAM) 

下面這段代碼工作在我的筆記本電腦,但我必須通過SSH遠程機器上運行我的程序。無論如何,在那臺機器上我得到這個錯誤,所以我很困惑,爲什麼它不能鏈接兩個庫:數學和時間(-lm和-lrt)。 gcc版本不同,我的版本是4.5.2,而羣集機器版本是4.1.2。我也在Ubuntu上運行我的,集羣機器是Red-Hat。我不知道什麼差異會導致這個錯誤,因爲這些是標準庫。任何幫助表示讚賞。

在此先感謝。

回答

1

嘗試使用LDFLAGS變量與-lrt -lm並把後$(OBJS)

+0

感謝您的快速解決。 – Aladdin 2012-02-05 17:21:57

+0

@阿拉丁不客氣! – ouah 2012-02-05 17:29:43

0

嘗試將$(CFLAGS)置於行尾。有時它有幫助。

相關問題