2016-03-24 4 views
2

Ich versuche, den Silikonwebserver hallo Welt example auf FreeBSD 10.2 RELEASE unter Verwendung des clang ++ 38 zu kompilieren. Das Framework verwendet C++ 14. Ich habe libmicrohttpd installiert.Silicon webserver mit libmicrohttpd backend verbinden

Wenn ich versuche, das Programm zu kompilieren mit

clang++38 -O2 -Wall -std=c++14 -I/usr/local/include -L/usr/local/lib -lmicrohttpd -o sws01 sws01.cpp 

Ich erhalte den Fehler

In file included from sws01.cpp:2: 
/usr/local/include/silicon/backends/mhd.hh:158:22: error: use of undeclared identifier 'MHD_http_unescape' 
    value.resize(MHD_http_unescape(&value[0])); 

Die sws01.cpp:

#include <silicon/api.hh> 
#include <silicon/backends/mhd.hh> 
#include "symbols.hpp" 

using namespace sl; 
using namespace s; 

auto hello_api = http_api(
     GET/_hello = [](){ return D(_message = "Hello from Silicon Webserver!"); } 
); 

int main() { 
    sl::mhd_json_serve(hello_api, 9876); 
} 

ich versucht, diese SO thread Antwort anwenden aber -Wl und spezifizierend /usr/local/lib/libmicrohttpd.a wie

clang++38 -O2 -Wall -std=c++14 -I/usr/local/include /usr/local/lib/libmicrohttpd.a -o sws01 sws01.cpp 

hat auch nicht funktioniert.

Funktioniert auf x mit xcode 7.3.

Antwort

2

Stellt sich der libmicrohttpd-Server, der mit dem FreeBSD-Ports-System ausgeliefert wird, ver. 0.9.37 und libmicrohttpd.so hat nicht MHD_http_unescape() aber libmicrohttpd.a tut. Das neueste ist derzeit 0.9.48. Ersetzen der Port-Version mit diesem Problem löst mein Problem mit der Kompilierung.