2013-11-25 76 views
1

我已經看遍了整個互聯網這個問題,似乎並不是一個經常性錯誤。編譯libmicrohttpd程序時出錯。 (MHD_RESPMEM_PERSISTENT)

問題是當我嘗試編譯(我工作在Ubuntu 12.04發行版)與G ++包含的lib主文件,連帶所有除MHD_RESPMEM_PERSISTENT可變的變量和函數:

response = MHD_create_response_from_buffer(strlen(page), (void*)page, MHD_RESPMEM_PERSISTENT);

我已經檢查了鏈接器和所有要用-lmicrohttpd編譯的東西。 我的Makefile文件看起來是這樣的:

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) 

我沒有附上鍊接FOT $對象,但其確定。 其實,它非常奇怪的問題,因爲當我在其他PC上安裝軟件包(libmicrohttpd-dev和libmicrohttpd-dbg)時,它確實沒問題,但在某些情況下會出現此問題。我帶來的唯一解決方案是重新安裝操作系統並重新開始,因爲一切都沒有問題。

它在以前工作在同一臺計算機上,具有相同的操作系統,但由於我不得不格式化它,我不知道要糾正這個問題。

有什麼想法?

+0

確定安裝的libmicrohttpd-dev版本不是太舊? – Mali

+0

其實我不能使用apt-get命令獲得任何更新的版本。 Aparentely我正在使用0.4.6-1版本。可能是這可能是其原因。你知道如何進行升級嗎? – Kragan

回答

0

MHD_RESPMEM_PERSISTENT已添加到libmicrohttpd 0.9.x中,因此版本0.4.6-1太舊。

對於Ubuntu,我並不確切知道如何升級,但作爲很少依賴的libmicrohttpd,可能只需添加另一個Ubuntu repo,或下載.deb並使用依賴項手動安裝它。
或apt-get刪除安裝的,並手動安裝最新版本gnu.org

+0

是的。我現在知道發佈日期。 現在的問題是升級該軟件包。我已經下載了正確的軟件包,但系統不允許我安裝它。 – Kragan