When I try to compile your code, error occurs like this.
examples/mnist examples/siamese examples/cpp_classification examples/cifar10 matlab/+caffe/private python/caffe src/caffe src/caffe/layers src/caffe/solvers src/caffe/proto src/caffe/util src/caffe/test src/gtest tools
PROTOC src/caffe/proto/caffe.proto
CXX src/caffe/layers/inner_product_layer.cpp
CXX src/caffe/layers/window_data_layer.cpp
CXX src/caffe/layers/input_layer.cpp
CXX src/caffe/layers/cudnn_relu_layer.cpp
CXX src/caffe/layers/silence_layer.cpp
CXX src/caffe/layers/absval_layer.cpp
CXX src/caffe/layers/neg_relu_layer.cpp
CXX src/caffe/layers/recurrent_layer.cpp
CXX src/caffe/layers/bnll_layer.cpp
CXX src/caffe/layers/prelu_layer.cpp
CXX src/caffe/layers/base_data_layer.cpp
CXX src/caffe/layers/imgreader_layer.cpp
CXX src/caffe/layers/slice_layer.cpp
CXX src/caffe/layers/sigmoid_layer.cpp
CXX src/caffe/layers/lrn_layer.cpp
CXX src/caffe/layers/tanh_layer.cpp
CXX src/caffe/layers/mean_layer.cpp
CXX src/caffe/layers/batch_norm_layer.cpp
CXX src/caffe/layers/pooling_layer.cpp
CXX src/caffe/layers/cudnn_sigmoid_layer.cpp
CXX src/caffe/layers/flatten_layer.cpp
CXX src/caffe/layers/hdf5_output_layer.cpp
CXX src/caffe/layers/softmax_layer.cpp
CXX src/caffe/layers/contrastive_loss_layer.cpp
CXX src/caffe/layers/downsample_layer.cpp
CXX src/caffe/layers/cudnn_pooling_layer.cpp
CXX src/caffe/layers/hdf5_data_layer.cpp
CXX src/caffe/layers/data_layer.cpp
CXX src/caffe/layers/cudnn_conv_layer.cpp
CXX src/caffe/layers/channel_norm_layer.cpp
CXX src/caffe/layers/custom_data_layer.cpp
CXX src/caffe/layers/neuron_layer.cpp
CXX src/caffe/layers/tile_layer.cpp
CXX src/caffe/layers/l1loss_layer.cpp
CXX src/caffe/layers/batch_reindex_layer.cpp
CXX src/caffe/layers/dummy_data_layer.cpp
CXX src/caffe/layers/im2col_layer.cpp
CXX src/caffe/layers/deconv_layer.cpp
CXX src/caffe/layers/euclidean_loss_layer.cpp
CXX src/caffe/layers/conv_layer.cpp
CXX src/caffe/layers/flow_warp_layer.cpp
CXX src/caffe/layers/correlation_layer1d.cpp
CXX src/caffe/layers/accum_layer.cpp
CXX src/caffe/layers/mvn_layer.cpp
CXX src/caffe/layers/multinomial_logistic_loss_layer.cpp
CXX src/caffe/layers/spp_layer.cpp
CXX src/caffe/layers/log_layer.cpp
CXX src/caffe/layers/exp_layer.cpp
CXX src/caffe/layers/image_data_layer.cpp
CXX src/caffe/layers/parameter_layer.cpp
CXX src/caffe/layers/cudnn_lcn_layer.cpp
src/caffe/layers/channel_norm_layer.cpp: In instantiation of ‘void caffe::ChannelNormLayer<Dtype>::Reshape(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<caffe::Blob<Dtype>*>&) [with Dtype = float]’:
src/caffe/layers/channel_norm_layer.cpp:193:1: required from here
src/caffe/layers/channel_norm_layer.cpp:34:13: warning: unused variable ‘channels’ [-Wunused-variable]
const int channels = bottom[0]->channels();
^
src/caffe/layers/channel_norm_layer.cpp: In instantiation of ‘void caffe::ChannelNormLayer<Dtype>::Reshape(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<caffe::Blob<Dtype>*>&) [with Dtype = double]’:
src/caffe/layers/channel_norm_layer.cpp:193:1: required from here
src/caffe/layers/channel_norm_layer.cpp:34:13: warning: unused variable ‘channels’ [-Wunused-variable]
CXX src/caffe/layers/base_conv_layer.cpp
CXX src/caffe/layers/split_layer.cpp
CXX src/caffe/layers/augmentation_layer_base.cpp
CXX src/caffe/layers/generate_augmentation_parameters_layer.cpp
CXX src/caffe/layers/resample_layer.cpp
CXX src/caffe/layers/memory_data_layer.cpp
CXX src/caffe/layers/sigmoid_cross_entropy_loss_layer.cpp
CXX src/caffe/layers/data_augmentation_layer.cpp
CXX src/caffe/layers/reshape_layer.cpp
CXX src/caffe/layers/flowriter_layer.cpp
CXX src/caffe/layers/pfmwriter_layer.cpp
CXX src/caffe/layers/lpq_loss_layer.cpp
CXX src/caffe/layers/floatreader_layer.cpp
CXX src/caffe/layers/lstm_unit_layer.cpp
CXX src/caffe/layers/argmax_layer.cpp
CXX src/caffe/layers/power_layer.cpp
CXX src/caffe/layers/lstm_layer.cpp
CXX src/caffe/layers/accuracy_layer.cpp
CXX src/caffe/layers/scale_layer.cpp
CXX src/caffe/layers/eltwise_layer.cpp
CXX src/caffe/layers/crop_layer.cpp
CXX src/caffe/layers/elu_layer.cpp
CXX src/caffe/layers/bias_layer.cpp
CXX src/caffe/layers/flow_augmentation_layer.cpp
CXX src/caffe/layers/threshold_layer.cpp
CXX src/caffe/layers/relu_layer.cpp
CXX src/caffe/layers/filter_layer.cpp
CXX src/caffe/layers/disparity_data_layer.cpp
CXX src/caffe/layers/softmax_loss_layer.cpp
src/caffe/layers/flow_warp_layer.cpp: In instantiation of ‘void caffe::FlowWarpLayer<Dtype>::Backward_cpu(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<bool>&, const std::vector<caffe::Blob<Dtype>*>&) [with Dtype = float]’:
src/caffe/layers/flow_warp_layer.cpp:259:1: required from here
src/caffe/layers/flow_warp_layer.cpp:130:18: warning: unused variable ‘warped_data’ [-Wunused-variable]
const Dtype* warped_data = top[0]->cpu_data(); // dest
^
src/caffe/layers/flow_warp_layer.cpp: In instantiation of ‘void caffe::FlowWarpLayer<Dtype>::Backward_cpu(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<bool>&, const std::vector<caffe::Blob<Dtype>*>&) [with Dtype = double]’:
src/caffe/layers/flow_warp_layer.cpp:259:1: required from here
src/caffe/layers/flow_warp_layer.cpp:130:18: warning: unused variable ‘warped_data’ [-Wunused-variable]
CXX src/caffe/layers/hinge_loss_layer.cpp
CXX src/caffe/layers/cudnn_tanh_layer.cpp
CXX src/caffe/layers/rnn_layer.cpp
CXX src/caffe/layers/floatwriter_layer.cpp
CXX src/caffe/layers/infogain_loss_layer.cpp
CXX src/caffe/layers/reduction_layer.cpp
CXX src/caffe/layers/concat_layer.cpp
CXX src/caffe/layers/cudnn_lrn_layer.cpp
CXX src/caffe/layers/correlation_layer.cpp
CXX src/caffe/layers/dropout_layer.cpp
CXX src/caffe/layers/loss_layer.cpp
CXX src/caffe/layers/imgwriter_layer.cpp
CXX src/caffe/layers/embed_layer.cpp
CXX src/caffe/layers/cudnn_softmax_layer.cpp
CXX src/caffe/common.cpp
CXX src/caffe/layer.cpp
CXX src/caffe/syncedmem.cpp
CXX src/caffe/parallel.cpp
CXX src/caffe/layer_factory.cpp
CXX src/caffe/solvers/adagrad_solver.cpp
CXX src/caffe/solvers/adam_solver.cpp
CXX src/caffe/solvers/adadelta_solver.cpp
CXX src/caffe/solvers/rmsprop_solver.cpp
CXX src/caffe/solvers/sgd_solver.cpp
CXX src/caffe/solvers/nesterov_solver.cpp
CXX src/caffe/data_reader.cpp
CXX src/caffe/blob.cpp
CXX src/caffe/internal_thread.cpp
CXX src/caffe/net.cpp
CXX src/caffe/data_transformer.cpp
CXX src/caffe/util/io.cpp
CXX src/caffe/util/rng.cpp
CXX src/caffe/util/upgrade_proto.cpp
CXX src/caffe/util/output.cpp
CXX src/caffe/util/math_functions.cpp
CXX src/caffe/util/benchmark.cpp
CXX src/caffe/util/db_leveldb.cpp
CXX src/caffe/util/hdf5.cpp
CXX src/caffe/util/insert_splits.cpp
CXX src/caffe/util/db.cpp
In file included from src/caffe/util/rng.cpp:1:0:
./include/caffe/util/rng.hpp:20:79: error: ‘RandomGeneratorParameter’ does not name a type
template <typename Dtype,typename Randtype> Randtype caffe_rng_generate(const RandomGeneratorParameter& param, Dtype discount_coeff = 1,Dtype prob0_value = NAN);
^
./include/caffe/util/rng.hpp:20:105: error: ISO C++ forbids declaration of ‘param’ with no type [-fpermissive]
template <typename Dtype,typename Randtype> Randtype caffe_rng_generate(const RandomGeneratorParameter& param, Dtype discount_coeff = 1,Dtype prob0_value = NAN);
^
src/caffe/util/rng.cpp:8:35: error: ‘RandomGeneratorParameter’ does not name a type
Randtype caffe_rng_generate(const RandomGeneratorParameter& param, Dtype discount_coeff, Dtype prob0_value) {
^
src/caffe/util/rng.cpp:8:61: error: ISO C++ forbids declaration of ‘param’ with no type [-fpermissive]
Randtype caffe_rng_generate(const RandomGeneratorParameter& param, Dtype discount_coeff, Dtype prob0_value) {
^
src/caffe/util/rng.cpp: In function ‘Randtype caffe::caffe_rng_generate(const int&, Dtype, Dtype)’:
src/caffe/util/rng.cpp:10:13: error: request for member ‘apply_schedule’ in ‘param’, which is of non-class type ‘const int’
if (param.apply_schedule())
^
src/caffe/util/rng.cpp:11:20: error: request for member ‘spread’ in ‘param’, which is of non-class type ‘const int’
spread = param.spread() * discount_coeff;
^
src/caffe/util/rng.cpp:13:20: error: request for member ‘spread’ in ‘param’, which is of non-class type ‘const int’
spread = param.spread();
^
src/caffe/util/rng.cpp:14:40: error: request for member ‘rand_type’ in ‘param’, which is of non-class type ‘const int’
const std::string rand_type = param.rand_type();
^
src/caffe/util/rng.cpp:20:34: error: request for member ‘mean’ in ‘param’, which is of non-class type ‘const int’
caffe_rng_uniform(1, param.mean() - spread, param.mean() + spread, &tmp);
^
src/caffe/util/rng.cpp:20:57: error: request for member ‘mean’ in ‘param’, which is of non-class type ‘const int’
caffe_rng_uniform(1, param.mean() - spread, param.mean() + spread, &tmp);
^
src/caffe/util/rng.cpp:22:19: error: request for member ‘mean’ in ‘param’, which is of non-class type ‘const int’
tmp = param.mean();
^
src/caffe/util/rng.cpp:23:15: error: request for member ‘exp’ in ‘param’, which is of non-class type ‘const int’
if (param.exp())
^
src/caffe/util/rng.cpp:30:35: error: request for member ‘mean’ in ‘param’, which is of non-class type ‘const int’
caffe_rng_gaussian(1, param.mean(), spread, &tmp);
^
src/caffe/util/rng.cpp:32:19: error: request for member ‘mean’ in ‘param’, which is of non-class type ‘const int’
tmp = param.mean();
^
src/caffe/util/rng.cpp:33:15: error: request for member ‘exp’ in ‘param’, which is of non-class type ‘const int’
if (param.exp())
^
src/caffe/util/rng.cpp:39:15: error: request for member ‘prob’ in ‘param’, which is of non-class type ‘const int’
if (param.prob() > 0.)
^
src/caffe/util/rng.cpp:40:36: error: request for member ‘prob’ in ‘param’, which is of non-class type ‘const int’
caffe_rng_bernoulli(1, param.prob(), &tmp);
^
src/caffe/util/rng.cpp:53:15: error: request for member ‘prob’ in ‘param’, which is of non-class type ‘const int’
if (param.prob() > 0.)
^
src/caffe/util/rng.cpp:54:36: error: request for member ‘prob’ in ‘param’, which is of non-class type ‘const int’
caffe_rng_bernoulli(1, param.prob(), &tmp2);
^
src/caffe/util/rng.cpp:65:36: error: request for member ‘mean’ in ‘param’, which is of non-class type ‘const int’
caffe_rng_uniform(1, param.mean() - spread, param.mean() + spread, &tmp1);
^
src/caffe/util/rng.cpp:65:59: error: request for member ‘mean’ in ‘param’, which is of non-class type ‘const int’
caffe_rng_uniform(1, param.mean() - spread, param.mean() + spread, &tmp1);
^
src/caffe/util/rng.cpp:67:22: error: request for member ‘mean’ in ‘param’, which is of non-class type ‘const int’
tmp1 = param.mean();
^
src/caffe/util/rng.cpp:70:15: error: request for member ‘exp’ in ‘param’, which is of non-class type ‘const int’
if (param.exp())
^
src/caffe/util/rng.cpp:83:15: error: request for member ‘prob’ in ‘param’, which is of non-class type ‘const int’
if (param.prob() > 0.)
^
src/caffe/util/rng.cpp:84:36: error: request for member ‘prob’ in ‘param’, which is of non-class type ‘const int’
caffe_rng_bernoulli(1, param.prob(), &tmp2);
^
src/caffe/util/rng.cpp:95:37: error: request for member ‘mean’ in ‘param’, which is of non-class type ‘const int’
caffe_rng_gaussian(1, param.mean(), spread, &tmp1);
^
src/caffe/util/rng.cpp:97:22: error: request for member ‘mean’ in ‘param’, which is of non-class type ‘const int’
tmp1 = param.mean();
^
src/caffe/util/rng.cpp:100:15: error: request for member ‘exp’ in ‘param’, which is of non-class type ‘const int’
if (param.exp())
^
src/caffe/util/rng.cpp:110:12: error: request for member ‘discretize’ in ‘param’, which is of non-class type ‘const int’
if(param.discretize()) rand = round(rand);
^
src/caffe/util/rng.cpp:111:16: error: request for member ‘multiplier’ in ‘param’, which is of non-class type ‘const int’
rand = param.multiplier() * rand;
^
src/caffe/util/rng.cpp: At global scope:
src/caffe/util/rng.cpp:116:54: error: ‘RandomGeneratorParameter’ does not name a type
template float caffe_rng_generate<float,float>(const RandomGeneratorParameter& param, float discount_coeff, float prob0_value);
^
src/caffe/util/rng.cpp:116:80: error: ISO C++ forbids declaration of ‘param’ with no type [-fpermissive]
template float caffe_rng_generate<float,float>(const RandomGeneratorParameter& param, float discount_coeff, float prob0_value);
^
src/caffe/util/rng.cpp:117:52: error: ‘RandomGeneratorParameter’ does not name a type
template bool caffe_rng_generate<float,bool>(const RandomGeneratorParameter& param, float discount_coeff, float prob0_value);
^
src/caffe/util/rng.cpp:117:78: error: ISO C++ forbids declaration of ‘param’ with no type [-fpermissive]
template bool caffe_rng_generate<float,bool>(const RandomGeneratorParameter& param, float discount_coeff, float prob0_value);
^
src/caffe/util/rng.cpp:118:55: error: ‘RandomGeneratorParameter’ does not name a type
template float caffe_rng_generate<double,float>(const RandomGeneratorParameter& param, double discount_coeff, double prob0_value);
^
src/caffe/util/rng.cpp:118:81: error: ISO C++ forbids declaration of ‘param’ with no type [-fpermissive]
template float caffe_rng_generate<double,float>(const RandomGeneratorParameter& param, double discount_coeff, double prob0_value);
^
src/caffe/util/rng.cpp:119:57: error: ‘RandomGeneratorParameter’ does not name a type
template double caffe_rng_generate<double,double>(const RandomGeneratorParameter& param, double discount_coeff, double prob0_value);
^
src/caffe/util/rng.cpp:119:83: error: ISO C++ forbids declaration of ‘param’ with no type [-fpermissive]
template double caffe_rng_generate<double,double>(const RandomGeneratorParameter& param, double discount_coeff, double prob0_value);
^
src/caffe/util/rng.cpp:120:53: error: ‘RandomGeneratorParameter’ does not name a type
template bool caffe_rng_generate<double,bool>(const RandomGeneratorParameter& param, double discount_coeff, double prob0_value);
^
src/caffe/util/rng.cpp:120:79: error: ISO C++ forbids declaration of ‘param’ with no type [-fpermissive]
template bool caffe_rng_generate<double,bool>(const RandomGeneratorParameter& param, double discount_coeff, double prob0_value);
^
make: *** [.build_release/src/caffe/util/rng.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from src/caffe/common.cpp:8:0:
./include/caffe/util/rng.hpp:20:79: error: ‘RandomGeneratorParameter’ does not name a type
template <typename Dtype,typename Randtype> Randtype caffe_rng_generate(const RandomGeneratorParameter& param, Dtype discount_coeff = 1,Dtype prob0_value = NAN);
^
./include/caffe/util/rng.hpp:20:105: error: ISO C++ forbids declaration of ‘param’ with no type [-fpermissive]
template <typename Dtype,typename Randtype> Randtype caffe_rng_generate(const RandomGeneratorParameter& param, Dtype discount_coeff = 1,Dtype prob0_value = NAN);
^
make: *** [.build_release/src/caffe/common.o] Error 1
In file included from src/caffe/util/math_functions.cpp:8:0:
./include/caffe/util/rng.hpp:20:79: error: ‘RandomGeneratorParameter’ does not name a type
template <typename Dtype,typename Randtype> Randtype caffe_rng_generate(const RandomGeneratorParameter& param, Dtype discount_coeff = 1,Dtype prob0_value = NAN);
^
./include/caffe/util/rng.hpp:20:105: error: ISO C++ forbids declaration of ‘param’ with no type [-fpermissive]
template <typename Dtype,typename Randtype> Randtype caffe_rng_generate(const RandomGeneratorParameter& param, Dtype discount_coeff = 1,Dtype prob0_value = NAN);
^
make: *** [.build_release/src/caffe/util/math_functions.o] Error 1
My environment is Ubuntu 14.04.1LTS with CUDA8.0. GCC version is 4.8.4