2017-01-04 8 views
1

Я пытаюсь скомпилировать пример простого REST API от Crow RESTful APIполе «buffer_» имеет incoplete типа «повышение :: массив <голец, 4096ul>»

, но когда я запускаю сделать все или просто сделать я получить следующее сообщение об ошибке

[ 55%] Building CXX object 

examples/CMakeFiles/example_with_all.dir/example_with_all.cpp.o 
In file included from /home/hinach4n/Project-Alpha/libs/crow/examples/example_with_all.cpp:1:0: 
/home/hinach4n/Project-Alpha/libs/crow/examples/../amalgamate/crow_all.h:5026:42: error: field ‘buffer_’ has incomplete type ‘boost::array<char, 4096ul>’ 
       boost::array<char, 4096> buffer_; 
             ^
In file included from /usr/include/boost/asio/buffer.hpp:23:0, 
       from /usr/include/boost/asio/detail/reactive_socket_service.hpp:22, 
       from /usr/include/boost/asio/datagram_socket_service.hpp:30, 
       from /usr/include/boost/asio/basic_datagram_socket.hpp:21, 
       from /usr/include/boost/asio.hpp:21, 
       from /home/hinach4n/Project-Alpha/libs/crow/examples/../amalgamate/crow_all.h:242, 
       from /home/hinach4n/Project-Alpha/libs/crow/examples/example_with_all.cpp:1: 
/usr/include/boost/asio/detail/array_fwd.hpp:23:7: note: declaration of ‘class boost::array<char, 4096ul>’ 
class array; 
    ^
examples/CMakeFiles/example_with_all.dir/build.make:62: recipe for target 'examples/CMakeFiles/example_with_all.dir/example_with_all.cpp.o' failed 
make[2]: *** [examples/CMakeFiles/example_with_all.dir/example_with_all.cpp.o] Error 1 
CMakeFiles/Makefile2:321: recipe for target 'examples/CMakeFiles/example_with_all.dir/all' failed 
make[1]: *** [examples/CMakeFiles/example_with_all.dir/all] Error 2 
Makefile:94: recipe for target 'all' failed 
make: *** [all] Error 2 

и я просматривал файлы заголовков и я не могу понять, в чем проблема! Спасибо за вашу помощь!

+0

Его здание отлично на моем компьютере (повышение 1.60, gcc 6.2.1, cmake 3.6.2). – vordhosbn

+0

mhm im using boost 1.58 и example_with_all.cpp - единственный файл, который не хочет сотрудничать. другие файлы компилируются и работают –

ответ

3

Это сообщение об ошибке означает, что заголовочный файл с определением из boost::array<> не был включен.

Возможное исправление: добавить #include <boost/array.hpp> в начало crow_all.h.