में एलडीएफएलजीएस का उपयोग कैसे करें मैं लिनक्स ओएस में नया हूं। मैं मेकफ़ाइल का उपयोग कर .c
फ़ाइल को संकलित करने का प्रयास कर रहा हूं। गणित पुस्तकालय को जोड़ा जाना है। मेरे makefile इस तरह दिखता है:मेकफ़ाइल
"undefined reference to rint"
तो यह गणित पुस्तकालय लिंक करने में सक्षम नहीं है:
CC=gcc
CFLAGS=-Wall -lm
all:client
.PHONY: clean
clean:
rm *~ *.o client
जब मैं make
चलाने के लिए, मैं निम्नलिखित त्रुटि मिलती है।
लेकिन जब मैं स्पष्ट रूप से
gcc client.c -lm -o client
इसे सफलतापूर्वक संकलित का उपयोग कर संकलित करें।
तो मुझे अपनी मेकफ़ाइल कैसे बदलनी चाहिए ताकि यह काम करे। मैंने पहले ही LDFLAGS=-lm
जोड़ने का प्रयास किया है। लेकिन मुझे एक ही त्रुटि मिलती है।
मैं भी जोड़ना चाहिए कि जब मैं make
चलाने के लिए, यह
gcc -Wall -lm client.c -o client
(सूचना है कि जब मैं अंत में स्पष्ट रूप से gcc
चलाने -lm
के साथ, यह काम करता है) करने के लिए फैलता है।
LDLIBS पुस्तकालयों के लिए है के साथ करने के लिए कुछ मिल गया है, LDFLAGS झंडे/खोज पथ (एल) – falstaff
[आप स्पष्ट रूप से परिभाषित करने के लिए की जरूरत नहीं है के लिए इस्तेमाल किया जाना चाहिए 'सीसी'।] (Http://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html) – 0xcaff
मैंने यह भी सोचा कि -एलएम एलडीएफएलजीएस में होना चाहिए लेकिन जैसा कि यह निकला है (देखें लैनदिर का जवाब और https://www.gnu.org/software/make/manual/html_node/Catalogue-of-Rules.html), यह बजाय LOADLIBES में होना चाहिए, और फिर सब कुछ (यानी बॉक्स से बाहर काम करता है स्पष्ट नियमों को परिभाषित करने के बिना) ! –