CUDA 5.5, boost 1.55, update Caffe appears:
/boost_1_55_0/boost/assert.hpp:102: error: ?.oinline?.was not declared in this scope
See line 102th in/BOOST/ASSERT.HPP is
BOOST_NOINLINE void assertion_failed_msg(CharT const * expr, char const * msg, char const * function,
So the above error should be
/boost_1_55_0/boost/assert.hpp:102: error: boost_noinline was not declared in this scope
Google found that you need to add the following information:
CUDA_FLAGS_COMMON=-use_fast_math -DBOOST_NOINLINE=‘__attribute__ ((noinline))‘
So, add the following line to the Makefile.config file:
CUDA_FLAGS_COMMON=-use_fast_math -DBOOST_NOINLINE=‘__attribute__ ((noinline))‘
Then add the Cuda_flags_common defined above to the nvccflags in the makefile file:
Put NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
Switch
NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(CUDA_FLAGS_COMMON) $(COMMON_FLAGS)
You can also add them directly to the makefile without changing the Makefile.config file:
NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC -DBOOST_NOINLINE=‘__attribute__ ((noinline))‘ $(COMMON_FLAGS)
------- 记录备忘。
' Noinline ' is not declared