के लिए अनिर्धारित संदर्भ मैं मेकफ़ाइल का उपयोग करके कुछ परीक्षण सी कोड को संकलित करने की कोशिश कर रहा हूं। main.c
फ़ाइल दो हेडर है:सरल मेकफ़ाइल के साथ समस्या: प्रतीक 'cos @@ GLIBC_2.2.5'
#include "circle_buffer.h"
#include "window.h"
और जब मैं निम्नलिखित Makefile निष्पादित
# compiler
CC=gcc
# compiler flags:
# -g adds debugging information to the executable file
# -Wall turns on most, but not all, compiler warnings
CFLAGS=
# include path
INCLUDES =
# library path and names
LIBS=-L/usr/lib/x86_64-linux-gnu -lsndfile
MAIN = test
$(MAIN): main.o circle_buffer.o window.o
$(CC) main.o circle_buffer.o window.o -o $(MAIN) $(LIBS)
main.o: main.c circle_buffer.h window.h
$(CC) -c main.c $(INCLUDES)
circle_buffer.o: circle_buffer.c circle_buffer.h
$(CC) -c circle_buffer.c $(INCLUDES)
window.o: window.h
$(CC) -c window.c $(INCLUDES)
.PHONY: clean
clean:
rm -rf *o $(MAIN)
मैं
[email protected]:~/source$ make
gcc -c main.c
gcc -c circle_buffer.c
gcc -c window.c
gcc main.o circle_buffer.o window.o -o test -L/usr/lib/x86_64-linux-gnu -lsndfile
/usr/bin/ld: window.o: undefined reference to symbol '[email protected]@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [test] Error 1
मिलता है मैं main.c
से #include "window.h"
निकालने के लिए, और सभी के लिए संदर्भ मेकफ़ाइल में window.o/h/c, यह काम करता है।
मुझे क्या याद आ रही है? मैं नियम
target: dependencies
[tab] system command
कहां तोड़ रहा हूं?