luabind 下載官網的luabind-0.9.1.tar.gz
1.安裝boost (官網最新1.61)
基本的安裝在boost的README或者INSTALL裏面都有,不多說
我安裝了5.1 ,5.2,5.3
只有安裝5.1的時候,luabind纔可以編譯通過(鬼知道)
問題:
64位機器需要在src/Makefile下面CFLAGS裏添加加上-fPIC,不然後面luabind編譯時候會出現下面
/usr/bin/ld: /usr/local/lib/liblua.a(lapi.o):
relocation R_X86_64_32 against `luaO_nilobject_' can not be used when making a shared object;
recompile with -fPIC
/usr/local/lib/liblua.a: could not read symbols: Bad value
3.編譯luabind
基本就是一個bjam
難解決的問題兩個:
1.object.hpp:556: error: no matching function for call to ‘operator==( ...
最終就是LUABIND_OPERATOR_ADL_WKND(==) 這兩行,我直接註釋了(只爲編譯過。。。)
//LUABIND_OPERATOR_ADL_WKND(==)
//LUABIND_OPERATOR_ADL_WKND(!=)
2.call_member.hpp:319: error: missing binary operator before token "(" ...
這個問題網上可以搜到,是宏定義用了
#elif BOOST_PP_ITERATION_DEPTH() == 1
...
#endif
修改方式是拆分:
#else
#if BOOST_PP_ITERATION_DEPTH() == 1
...
#endif
#endif
然後在使用bjam 和 bjam install
編譯安裝可以通過