2012-12-26 17 views
7

मैं फ्लेक्स (शाब्दिक विश्लेषक) का उपयोग करना सीख गया है और मैं निम्न आदेश के साथ संकलन किया गया है `yywrap 'के लिए अपरिभाषित संदर्भ और सब ठीक है। हालांकि, मैं अन्य फाइलों के साथ यह लिंक करना चाहते हैं, तो मैं संकलन और इसे अलग से लिंकफ्लेक्स:</p> <p><code>gcc -lfl -o test lex.yy.c</code></p> <p>: केवल जब/संकलन अलग से जोड़ने

gcc -c lex.yy.c

gcc -lfl -o test lex.yy.o

द्वारा पीछा लेकिन जीसीसी मुझसे कहता है के लिए एक अपरिभाषित संदर्भ है कि वहाँ yywrap()। तो, यहाँ क्या चल रहा है?

मैं फ्लेक्स 2.5.35, जीसीसी 4.7.2 और ld उपयोग कर रहा हूँ 2.22

+5

क्या आपने शुरुआत के बजाय अंत में '-lfl' जोड़ने का प्रयास किया था? – Raj

+0

यह काम किया। धन्यवाद! – Flukiluke

+0

ठीक है, मैं इसे उत्तर के रूप में पोस्ट करूंगा। – Raj

उत्तर

15

शुरुआत के बजाय अंत में -lfl जोड़ें।

1

वैकल्पिक रूप से, तुम सिर्फ #define yywrap() 1 अपने .l फ़ाइल में पुस्तकालय का उपयोग करें, या एक yywrap() विधि है कि रिटर्न 1.

यह दस्तावेज़ीकरण किया गया है प्रदान करने के लिए नहीं करना चाहते हैं।

1

मेरे समाधान किया गया था:

sudo फ्लेक्स

+4

कृपया बताएं कि आपने पहले से ही flexx के बिना lex.yy.c फ़ाइल जेनरेट की है। – EJP

1

उपयोग gcc lex.yy.c -ll उपयुक्त-मिल स्थापित करें। अन्यथा यह yywrap के लिए एक अनिर्धारित संदर्भ प्रदान करेगा।

0

मैं एक फ़ाइल addon.c

int yywrap (void) 
{ 
    return 1; 
} 

बनाया है और लक्ष्य में जोड़ा।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^