Kłaniam się
Przy kompilacji poliqarp-2.0.2 dostaję błędy:
[...]
ibtool: compile: g++ -DHAVE_CONFIG_H -I. -I../.. -I../../src/common -I../../src/query_execution_optimizer -I../../src/query_runner -I../../src/utils -I../../third-party/jsoncpp -I../../src/corpus_reader -I../../src/server -I../.. -I../../src/query_parser -I../../src/storage_engine -I../../src/corpus_indexer -I../../src/all_objs_manager -I/usr/include/python3.5m -pthread -I/usr/local/include -I/usr/local/include/httpserver -I/usr/include/p11-kit-1 -std=c++11 -I../../src/common -I../../src/query_execution_optimizer -I../../src/query_runner -I../../src/utils -I../../third-party/jsoncpp -I../../src/corpus_reader -I../../src/server -I../.. -I../../src/query_parser -I../../src/storage_engine -I../../src/corpus_indexer -I../../src/all_objs_manager -I/usr/include/python3.5m -pthread -I/usr/local/include -I/usr/local/include/httpserver -I/usr/include/p11-kit-1 -g -O2 -std=c++11 -MT server.lo -MD -MP -MF .deps/server.Tpo -c server.cc -fPIC -DPIC -o .libs/server.o
In file included from server.cc:22:0:
server.h:101:56: error: expected template-name before '<' token
class entry_resource : public httpserver::http_resource<entry_resource>{
^
server.h:101:56: error: expected '{' before '<' token
server.h:101:56: error: expected unqualified-id before '<' token
server.h:110:58: error: expected template-name before '<' token
class corpora_resource : public httpserver::http_resource<corpora_resource> {
^
server.h:110:58: error: expected '{' before '<' token
server.h:110:58: error: expected unqualified-id before '<' token
server.h:117:57: error: expected template-name before '<' token
class corpus_resource : public httpserver::http_resource<corpus_resource> {
^
server.h:117:57: error: expected '{' before '<' token
server.h:117:57: error: expected unqualified-id before '<' token
server.h:124:58: error: expected template-name before '<' token
class session_resource : public httpserver::http_resource<session_resource> {
^
server.h:124:58: error: expected '{' before '<' token
server.h:124:58: error: expected unqualified-id before '<' token
server.h:133:66: error: expected template-name before '<' token
class session_queries_resource : public httpserver::http_resource<session_queries_resource> {
^
server.h:133:66: error: expected '{' before '<' token
server.h:133:66: error: expected unqualified-id before '<' token
server.h:141:64: error: expected template-name before '<' token
class session_query_resource : public httpserver::http_resource<session_query_resource> {
^
server.h:141:64: error: expected '{' before '<' token
server.h:141:64: error: expected unqualified-id before '<' token
server.h:149:60: error: expected template-name before '<' token
class query_job_resource : public httpserver::http_resource<query_job_resource> {
^
server.h:149:60: error: expected '{' before '<' token
server.h:149:60: error: expected unqualified-id before '<' token
server.h:157:63: error: expected template-name before '<' token
class query_result_resource : public httpserver::http_resource<query_result_resource> {
^
server.h:157:63: error: expected '{' before '<' token
server.h:157:63: error: expected unqualified-id before '<' token
server.h:164:71: error: expected template-name before '<' token
class query_result_context_resource : public httpserver::http_resource<query_result_context_resource> {
^
server.h:164:71: error: expected '{' before '<' token
server.h:164:71: error: expected unqualified-id before '<' token
server.cc:190:37: error: invalid use of incomplete type 'class entry_resource'
string entry_resource::get_template(){
^
In file included from server.cc:22:0:
server.h:101:7: note: forward declaration of 'class entry_resource'
class entry_resource : public httpserver::http_resource<entry_resource>{
^
server.cc:193:39: error: invalid use of incomplete type 'class corpora_resource'
string corpora_resource::get_template(){
^
In file included from server.cc:22:0:
server.h:110:7: note: forward declaration of 'class corpora_resource'
class corpora_resource : public httpserver::http_resource<corpora_resource> {
^
server.cc:196:38: error: invalid use of incomplete type 'class corpus_resource'
string corpus_resource::get_template(){
^
In file included from server.cc:22:0:
server.h:117:7: note: forward declaration of 'class corpus_resource'
class corpus_resource : public httpserver::http_resource<corpus_resource> {
^
server.cc:199:39: error: invalid use of incomplete type 'class session_resource'
string session_resource::get_template(){
^
In file included from server.cc:22:0:
server.h:124:7: note: forward declaration of 'class session_resource'
class session_resource : public httpserver::http_resource<session_resource> {
^
server.cc:202:47: error: invalid use of incomplete type 'class session_queries_resource'
string session_queries_resource::get_template(){
^
In file included from server.cc:22:0:
server.h:133:7: note: forward declaration of 'class session_queries_resource'
class session_queries_resource : public httpserver::http_resource<session_queries_resource> {
^
server.cc:205:45: error: invalid use of incomplete type 'class session_query_resource'
string session_query_resource::get_template(){
^
In file included from server.cc:22:0:
server.h:141:7: note: forward declaration of 'class session_query_resource'
class session_query_resource : public httpserver::http_resource<session_query_resource> {
^
server.cc:208:41: error: invalid use of incomplete type 'class query_job_resource'
string query_job_resource::get_template(){
^
In file included from server.cc:22:0:
server.h:149:7: note: forward declaration of 'class query_job_resource'
class query_job_resource : public httpserver::http_resource<query_job_resource> {
^
server.cc:211:44: error: invalid use of incomplete type 'class query_result_resource'
string query_result_resource::get_template(){
^
In file included from server.cc:22:0:
server.h:157:7: note: forward declaration of 'class query_result_resource'
class query_result_resource : public httpserver::http_resource<query_result_resource> {
^
server.cc:214:52: error: invalid use of incomplete type 'class query_result_context_resource'
string query_result_context_resource::get_template(){
^
In file included from server.cc:22:0:
server.h:164:7: note: forward declaration of 'class query_result_context_resource'
class query_result_context_resource : public httpserver::http_resource<query_result_context_resource> {
^
server.cc:219:77: error: invalid use of incomplete type 'class entry_resource'
void entry_resource::render_GET(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:101:7: note: forward declaration of 'class entry_resource'
class entry_resource : public httpserver::http_resource<entry_resource>{
^
server.cc:227:78: error: invalid use of incomplete type 'class entry_resource'
void entry_resource::render_POST(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:101:7: note: forward declaration of 'class entry_resource'
class entry_resource : public httpserver::http_resource<entry_resource>{
^
server.cc:243:78: error: invalid use of incomplete type 'class entry_resource'
void entry_resource::render_OPTIONS(const http_request &, http_response res){
^
In file included from server.cc:22:0:
server.h:101:7: note: forward declaration of 'class entry_resource'
class entry_resource : public httpserver::http_resource<entry_resource>{
^
server.cc:248:76: error: invalid use of incomplete type 'class corpora_resource'
void corpora_resource::render_GET(const http_request &, http_response res){
^
In file included from server.cc:22:0:
server.h:110:7: note: forward declaration of 'class corpora_resource'
class corpora_resource : public httpserver::http_resource<corpora_resource> {
^
server.cc:268:78: error: invalid use of incomplete type 'class corpus_resource'
void corpus_resource::render_GET(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:117:7: note: forward declaration of 'class corpus_resource'
class corpus_resource : public httpserver::http_resource<corpus_resource> {
^
server.cc:284:79: error: invalid use of incomplete type 'class session_resource'
void session_resource::render_GET(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:124:7: note: forward declaration of 'class session_resource'
class session_resource : public httpserver::http_resource<session_resource> {
^
server.cc:301:79: error: invalid use of incomplete type 'class session_resource'
void session_resource::render_PUT(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:124:7: note: forward declaration of 'class session_resource'
class session_resource : public httpserver::http_resource<session_resource> {
^
server.cc:370:82: error: invalid use of incomplete type 'class session_resource'
void session_resource::render_DELETE(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:124:7: note: forward declaration of 'class session_resource'
class session_resource : public httpserver::http_resource<session_resource> {
^
server.cc:393:87: error: invalid use of incomplete type 'class session_queries_resource'
void session_queries_resource::render_GET(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:133:7: note: forward declaration of 'class session_queries_resource'
class session_queries_resource : public httpserver::http_resource<session_queries_resource> {
^
server.cc:409:88: error: invalid use of incomplete type 'class session_queries_resource'
void session_queries_resource::render_POST(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:133:7: note: forward declaration of 'class session_queries_resource'
class session_queries_resource : public httpserver::http_resource<session_queries_resource> {
^
server.cc:465:85: error: invalid use of incomplete type 'class session_query_resource'
void session_query_resource::render_GET(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:141:7: note: forward declaration of 'class session_query_resource'
class session_query_resource : public httpserver::http_resource<session_query_resource> {
^
server.cc:510:86: error: invalid use of incomplete type 'class session_query_resource'
void session_query_resource::render_POST(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:141:7: note: forward declaration of 'class session_query_resource'
class session_query_resource : public httpserver::http_resource<session_query_resource> {
^
server.cc:556:81: error: invalid use of incomplete type 'class query_job_resource'
void query_job_resource::render_GET(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:149:7: note: forward declaration of 'class query_job_resource'
class query_job_resource : public httpserver::http_resource<query_job_resource> {
^
server.cc:629:84: error: invalid use of incomplete type 'class query_job_resource'
void query_job_resource::render_DELETE(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:149:7: note: forward declaration of 'class query_job_resource'
class query_job_resource : public httpserver::http_resource<query_job_resource> {
^
server.cc:654:84: error: invalid use of incomplete type 'class query_result_resource'
void query_result_resource::render_GET(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:157:7: note: forward declaration of 'class query_result_resource'
class query_result_resource : public httpserver::http_resource<query_result_resource> {
^
server.cc:738:92: error: invalid use of incomplete type 'class query_result_context_resource'
void query_result_context_resource::render_GET(const http_request &req, http_response res){
^
In file included from server.cc:22:0:
server.h:164:7: note: forward declaration of 'class query_result_context_resource'
class query_result_context_resource : public httpserver::http_resource<query_result_context_resource> {
^
server.cc: In function 'int runserver()':
server.cc:869:18: error: aggregate 'entry_resource er' has incomplete type and cannot be defined
entry_resource er;
^
server.cc:872:20: error: aggregate 'corpora_resource car' has incomplete type and cannot be defined
corpora_resource car;
^
server.cc:875:19: error: aggregate 'corpus_resource cr' has incomplete type and cannot be defined
corpus_resource cr;
^
server.cc:878:20: error: aggregate 'session_resource sr' has incomplete type and cannot be defined
session_resource sr;
^
server.cc:881:28: error: aggregate 'session_queries_resource sqsr' has incomplete type and cannot be defined
session_queries_resource sqsr;
^
server.cc:884:26: error: aggregate 'session_query_resource sqr' has incomplete type and cannot be defined
session_query_resource sqr;
^
server.cc:887:22: error: aggregate 'query_job_resource qjr' has incomplete type and cannot be defined
query_job_resource qjr;
^
server.cc:890:25: error: aggregate 'query_result_resource qrr' has incomplete type and cannot be defined
query_result_resource qrr;
^
server.cc:893:33: error: aggregate 'query_result_context_resource qrcr' has incomplete type and cannot be defined
query_result_context_resource qrcr;
^
In file included from server.cc:22:0:
server.h: In instantiation of 'std::cxx11::string url_template_for(std::cxx11::string, std::cxx11::string, int, int) [with resource_class = query_result_context_resource; std::cxx11::string = std::cxx11::basic_string<char>]':
server.cc:63:89: required from here
server.h:86:49: error: incomplete type 'query_result_context_resource' used in nested name specifier
std::string ret = resource_class::get_template();
^
server.h: In instantiation of 'std::cxx11::string url_for(std::cxx11::string, std::cxx11::string, int, int) [with resource_class = query_result_resource; std::cxx11::string = std::cxx11::basic_string<char>]':
server.cc:64:72: required from here
server.h:67:49: error: incomplete type 'query_result_resource' used in nested name specifier
std::string ret = resource_class::get_template();
^
server.h: In instantiation of 'std::cxx11::string url_for(std::cxx11::string, std::cxx11::string) [with resource_class = query_job_resource; std::cxx11::string = std::cxx11::basic_string<char>]':
server.cc:65:59: required from here
server.h:52:49: error: incomplete type 'query_job_resource' used in nested name specifier
std::string ret = resource_class::get_template();
^
server.h: In instantiation of 'std::cxx11::string url_for(std::cxx11::string, std::cxx11::string) [with resource_class = session_query_resource; std::cxx11::string = std::cxx11::basic_string<char>]':
server.cc:66:63: required from here
server.h:52:49: error: incomplete type 'session_query_resource' used in nested name specifier
server.h: In instantiation of 'std::cxx11::string url_for(std::cxx11::string) [with resource_class = session_queries_resource; std::cxx11::string = std::cxx11::basic_string<char>]':
server.cc:67:57: required from here
server.h:43:49: error: incomplete type 'session_queries_resource' used in nested name specifier
std::string ret = resource_class::get_template();
^
server.h: In instantiation of 'std::cxx11::string url_for(std::cxx11::string) [with resource_class = session_resource; std::cxx11::string = std::cxx11::basic_string<char>]':
server.cc:68:49: required from here
server.h:43:49: error: incomplete type 'session_resource' used in nested name specifier
server.h: In instantiation of 'std::cxx11::string url_for(std::cxx11::string) [with resource_class = corpus_resource; std::cxx11::string = std::cxx11::basic_string<char>]':
server.cc:69:48: required from here
server.h:43:49: error: incomplete type 'corpus_resource' used in nested name specifier
server.h: In instantiation of 'std::cxx11::string url_for() [with resource_class = corpora_resource; std::cxx11::string = std::cxx11::basic_string<char>]':
server.cc:70:43: required from here
server.h:36:49: error: incomplete type 'corpora_resource' used in nested name specifier
std::string ret = resource_class::get_template();
^
server.h: In instantiation of 'std::cxx11::string url_for() [with resource_class = entry_resource; std::cxx11::string = std::cxx11::basic_string<char>]':
server.cc:71:41: required from here
server.h:36:49: error: incomplete type 'entry_resource' used in nested name specifier
Makefile:423: recipe for target 'server.lo' failed
make[3]: [server.lo] Error 1
make[3]: Leaving directory '/ARCHIWUM/DOWNLOAD/poliqarp-2.0.2/src/server'
Makefile:389: recipe for target 'all-recursive' failed
make[2]: [all-recursive] Error 1
make[2]: Leaving directory '/ARCHIWUM/DOWNLOAD/poliqarp-2.0.2/src'
Makefile:1252: recipe for target 'all-recursive' failed
make[1]: [all-recursive] Error 1
make[1]: Leaving directory '/ARCHIWUM/DOWNLOAD/poliqarp-2.0.2'
Makefile:627: recipe for target 'all' failed
make: [all] Error 2
Etap przygotwania do kompilacji ./confgiure nie zwraca żadnych błedów i informacji o brakach.
Platforma Ubuntu 16.04 Linux 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Co mogę zrobić żeby skompilować poliqarp'a?
Pozdrawiam
Witam,
najprawdopodobniej winna jest zła (zbyt nowa) wersja biblioteki libhttpserver. Tak jak podaliśmy w instrukcji, musi ona być w wersji tam podanej. To pewnie powinno byc już wykrywane na etapie configure, ale aktualnie nie ma komu rozbudować skryptów.
Sugestia była słuszna. Chodziło o wersję libhttpserver'a. Kompilacja udała się. Poliqarp działa.
Dziękuję za pomoc.