Libmicrohttpd प्रोग्राम को संकलित करने में त्रुटि। (MHD_RESPMEM_PERSISTENT)

मैंने इस मुद्दे के लिए पूरे इंटरनेट पर देखा है और यह एक आवर्ती त्रुटि प्रतीत नहीं होता है।

समस्या तब आती है जब मैं संकलित करने की कोशिश करता हूं (मैं उबंटू 12.04 डिस्ट्रो पर काम कर रहा हूं) जी ++ मुख्य फ़ाइल जिसमें lib शामिल है, और यह MHD_RESPMEM_PERSISTENT चर को छोड़कर सभी चर और कार्यों को प्राप्त करता है:

प्रतिक्रिया = MHD_create_response_from_buffer (strlen (पृष्ठ), (शून्य *) पृष्ठ, MHD_RESPMEM_PERSISTENT);

मैंने पहले से ही लिंकर्स और सबकुछ जांच लिया है -lmicrohttpd के साथ संकलित करने के लिए। मेरा मेकफ़ाइल इस तरह दिखता है:

CC = g++ -std=c++11
INCLUDE = -I. -I/opt/local/include 
CFLAGS = -g -Wall $(INCLUDE)
#CFLAGS = -g -Wall $(INCLUDE) -coverage
LDFLAGS = -L/opt/local/lib -lmicrohttpd 

all: $(TARGET)

$(OBJECTS): %.o: %.cc
$(CC) $(CFLAGS) -c $< -o [email protected]

$(TARGET): $(OBJECTS)
$(CC) $(CFLAGS) -o $(TARGET) $(OBJECTS) $(LDFLAGS)

मैंने $ ऑब्जेक्ट्स को लिंकर संलग्न नहीं किया है, लेकिन यह ठीक है। असल में, यह बहुत अजीब समस्या है, क्योंकि जब मैंने अन्य पीसी पर संकुल (libmicrohttpd-dev और libmicrohttpd-dbg) स्थापित किया है, तो यह ठीक काम करता है, लेकिन कुछ मामलों में यह समस्या आती है। एकमात्र समाधान जो मैं आया था वह फिर से ओएस को फिर से स्थापित करना था और शुरू करना था, क्योंकि सब कुछ अप्रभावी था।

यह एक ही ओएस के साथ इस कंप्यूटर पर पहले काम करता था, लेकिन जब से मुझे इसे प्रारूपित करना पड़ा, मुझे इस मुद्दे को सही करने का कोई विचार नहीं है।

कोई विचार?।

0
दरअसल मैं apt-get कमांड का उपयोग कर कोई नया संस्करण नहीं प्राप्त कर सकता हूं। स्पष्ट रूप से मैं 0.4.6-1 संस्करण का उपयोग कर रहा हूं। संभवतः यह कारण हो सकता है। क्या आप जानते हैं कि अपग्रेड कैसे करें?
जोड़ा लेखक Kragan, स्रोत
क्या आप वाकई libmicrohttpd-dev स्थापित संस्करण का पुराना नहीं है?
जोड़ा लेखक Mali, स्रोत

1 उत्तर

MHD_RESPMEM_PERSISTENT को libmicrohttpd 0.9.x में जोड़ा गया है, इसलिए संस्करण 0.4.6-1 बहुत पुराना है।

With Ubuntu, I don't know exactly how you can upgrade, but as libmicrohttpd as very few dependencies, maybe just add another ubuntu repo, or download a .deb and install it manually with dependencies.
Or apt-get remove the installed one, and manually install the latest version from gnu.org

0
जोड़ा
हाँ। मैं इसे रिलीज की तारीख के बारे में समझता हूं। समस्या अब उस पैकेज को अपग्रेड करना है। मैंने सही पैकेज डाउनलोड किया है, लेकिन सिस्टम मुझे इसे स्थापित करने नहीं देता है।
जोड़ा लेखक Kragan, स्रोत