प्रसंग पहले makefile साथ संयोजित करते समय: मैं एक हैडर (event.h), एक कार्यक्रम बुलाया event.c, और मुख्य कार्यक्रम main.c. है यह प्रोग्राम संकलित किया जाएगा, पहले एक ऑब्जेक्ट प्रोग्राम (event.o), फिर एक स्थिर लाइब्रेरी (libevent.a) को एक अलग फ़ोल्डर में उत्पन्न करेगा, और उसके बाद निष्पादन योग्य प्रोग्राम work1.exe/usr/bin/ld: -lc नहीं मिल सकता है
ऐसा करने के लिए मैंने यह मेकफ़ाइल बनाया :
work1 : main.c libevent.a
gcc -static main.c -L./lib -levent -o work1 -Wall
event.o: event.c
gcc -c event.c -Wall
libevent.a: event.o
ar rcs lib/libevento.a event.o
clean:
rm work1 *.o
makefile को क्रियान्वित करने का परिणाम इस त्रुटि की ओर जाता है:
$ make
gcc -c event.c -Wall
ar rcs lib/libevent.a event.o
gcc -static main.c -L./lib -levent -o work1 -Wall
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
make: *** [work1] Error 1
किसी भी विचार यहाँ क्या चल रहा है? क्या कुछ भी इंस्टॉल किए बिना इसे संकलित करने का कोई तरीका है?
/usr/bin/ld: cannot find -lc
लिंकर सी स्थिर अपने पुस्तकालय को जोड़ने के लिए आवश्यक पुस्तकालयों नहीं मिल सकता है:
'ar आरसीएस lib/libevento.a event.o' <- यहाँ या वास्तविक makefile में लेखन त्रुटि है? –
ऐसा प्रतीत होता है कि आपके पास स्थिर लिंकिंग के लिए आवश्यक सी पुस्तकालय नहीं हैं। आप इसे किस प्लेटफॉर्म पर संकलित कर रहे हैं? – hoxworth
इस पल में मैं CentOS के साथ संकलित कर रहा हूँ। उबंटू के साथ एक ही कार्यक्रम का परीक्षण किया गया और यह काम किया। – SealCuadrado