Nolbir01 / rimeime

Automatically exported from code.google.com/p/rimeime
1 stars 0 forks source link

Librime is not Compatible with the newest yaml-cpp 0.5 #335

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
請寫下能夠重現此狀況的操作步驟:
1. Download yaml-cpp 0.5 source and compile it
2. Compile librime
3. Error occurs

所得的結果是這個樣:

Compile the librime

預期結果該是那個樣:

Compilation falied.

請提供以下信息,幫我們定位問題。

1. 輸入法的款式:(請選擇)中州韻 / 鼠鬚管 / 小狼毫
   輸入法版本號:(請填寫)小狼毫

2. 操作系統類型:(請選擇)Linux / Mac / Windows
   操作系統版本:(請填寫)Chakra

3. 輸入方案名稱:(如果問題涉及交互方式、輸入效果等
,請填寫)

還想再說幾句:

Original issue reported on code.google.com by Nuk...@gmail.com on 4 Jan 2013 at 7:49

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Confirmed in Arch:

[ 20%] Building CXX object src/CMakeFiles/rime.dir/config.cc.o
/build/src/librime/src/config.cc: In member function 'bool rime::ConfigData::Loa
dFromFile(const string&)':
/build/src/librime/src/config.cc:556:17: error: 'class YAML::Parser' has no memb
er named 'GetNextDocument'
/build/src/librime/src/config.cc: In static member function 'static rime::Config
ItemPtr rime::ConfigData::ConvertFromYaml(const YAML::Node&)':
/build/src/librime/src/config.cc:607:49: error: 'const class YAML::Node' has no 
member named 'to'
/build/src/librime/src/config.cc:607:63: error: expected primary-expression befo
re '>' token
/build/src/librime/src/config.cc:607:65: error: expected primary-expression befo
re ')' token
/build/src/librime/src/config.cc:611:5: error: 'Iterator' is not a member of 'YA
ML'
/build/src/librime/src/config.cc:611:20: error: expected ';' before 'it'
/build/src/librime/src/config.cc:612:5: error: 'Iterator' is not a member of 'YA
ML'
/build/src/librime/src/config.cc:612:20: error: expected ';' before 'end'
/build/src/librime/src/config.cc:613:13: error: 'it' was not declared in this sc
ope
/build/src/librime/src/config.cc:613:19: error: 'end' was not declared in this s
cope
/build/src/librime/src/config.cc:613:19: note: suggested alternatives:
In file included from /usr/include/boost/algorithm/string/trim.hpp:17:0,
                 from /usr/include/boost/algorithm/string.hpp:19,
                 from /build/src/librime/src/config.cc:11:
/usr/include/boost/range/end.hpp:106:61: note:   'boost::range_adl_barrier::end'

In file included from /usr/include/boost/mpl/list/aux_/begin_end.hpp:17:0,
                 from /usr/include/boost/mpl/list/list0.hpp:27,
                 from /usr/include/boost/mpl/list/list10.hpp:18,
                 from /usr/include/boost/mpl/list/list20.hpp:18,
                 from /usr/include/boost/mpl/list.hpp:36,
                 from /usr/include/boost/math/policies/policy.hpp:9,
                 from /usr/include/boost/math/special_functions/math_fwd.hpp:28,

                 from /usr/include/boost/math/special_functions/sign.hpp:17,
                 from /usr/include/boost/lexical_cast.hpp:165,
                 from /build/src/librime/src/config.cc:14:
/usr/include/boost/mpl/begin_end_fwd.hpp:23:38: note:   'boost::mpl::end'
In file included from /usr/include/boost/algorithm/string/trim.hpp:17:0,
                 from /usr/include/boost/algorithm/string.hpp:19,
                 from /build/src/librime/src/config.cc:11:
/usr/include/boost/range/end.hpp:106:61: note:   'boost::range_adl_barrier::end'

/build/src/librime/src/config.cc:620:5: error: 'Iterator' is not a member of 'YA
ML'
/build/src/librime/src/config.cc:620:20: error: expected ';' before 'it'
/build/src/librime/src/config.cc:621:5: error: 'Iterator' is not a member of 'YA
ML'
/build/src/librime/src/config.cc:621:20: error: expected ';' before 'end'
/build/src/librime/src/config.cc:622:13: error: 'it' was not declared in this sc
ope
/build/src/librime/src/config.cc:622:19: error: 'end' was not declared in this s
cope
/build/src/librime/src/config.cc:622:19: note: suggested alternatives:
In file included from /usr/include/boost/algorithm/string/trim.hpp:17:0,
                 from /usr/include/boost/algorithm/string.hpp:19,
                 from /build/src/librime/src/config.cc:11:
/usr/include/boost/range/end.hpp:106:61: note:   'boost::range_adl_barrier::end'

In file included from /usr/include/boost/mpl/list/aux_/begin_end.hpp:17:0,
                 from /usr/include/boost/mpl/list/list0.hpp:27,
                 from /usr/include/boost/mpl/list/list10.hpp:18,
                 from /usr/include/boost/mpl/list/list20.hpp:18,
                 from /usr/include/boost/mpl/list.hpp:36,
                 from /usr/include/boost/math/policies/policy.hpp:9,
                 from /usr/include/boost/math/special_functions/math_fwd.hpp:28,

                 from /usr/include/boost/math/special_functions/sign.hpp:17,
                 from /usr/include/boost/lexical_cast.hpp:165,
                 from /build/src/librime/src/config.cc:14:
/usr/include/boost/mpl/begin_end_fwd.hpp:23:38: note:   'boost::mpl::end'
In file included from /usr/include/boost/algorithm/string/trim.hpp:17:0,
                 from /usr/include/boost/algorithm/string.hpp:19,
                 from /build/src/librime/src/config.cc:11:
/usr/include/boost/range/end.hpp:106:61: note:   'boost::range_adl_barrier::end'

/build/src/librime/src/config.cc:623:50: error: expected primary-expression befo
re '>' token
/build/src/librime/src/config.cc:623:52: error: expected primary-expression befo
re ')' token
make[3]: *** [src/CMakeFiles/rime.dir/config.cc.o] Error 1
make[3]: Leaving directory `/build/src/librime/build'
make[2]: *** [src/CMakeFiles/rime.dir/all] Error 2
make[2]: Leaving directory `/build/src/librime/build'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/build/src/librime/build'
make: *** [librime] Error 2

Original comment by felixonm...@gmail.com on 15 Feb 2013 at 11:38

GoogleCodeExporter commented 9 years ago
What to do with it?

yaml-cpp 0.5 itself has an incompatible API with version 0.3.

Actually, earlier I wrote an improved, more C++-like API for rime::Config that 
is similar to what's new in yaml-cpp 0.5.

I guess both versions of yaml-cpp should be maintained by the package manager, 
since yaml-cpp 0.5 doesn't support the old API.

Original comment by chen....@gmail.com on 16 Feb 2013 at 9:44

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I compile yaml-cpp 0.5.1 and install it secuccessfully.

then I cd ibus-rime and ./install.sh

and it failed. The last lines is:

[ 95%] Building CXX object src/CMakeFiles/rime.dir/lever/user_dict_manager.cc.o
Linking CXX shared library ../lib/librime.so
make[3]: Leaving directory `/home/xiaochi/Downloads/rimeime/librime/build'
[ 95%] Built target rime
make[3]: Entering directory `/home/xiaochi/Downloads/rimeime/librime/build'
Scanning dependencies of target rime_api_console
make[3]: Leaving directory `/home/xiaochi/Downloads/rimeime/librime/build'
make[3]: Entering directory `/home/xiaochi/Downloads/rimeime/librime/build'
[ 96%] Building CXX object 
tools/CMakeFiles/rime_api_console.dir/rime_api_console.cc.o
Linking CXX executable ../bin/rime_api_console
../lib/librime.so.1.0.0: undefined reference to `YAML::detail::node_data::end()'
../lib/librime.so.1.0.0: undefined reference to `YAML::LoadFile(std::string 
const&)'
../lib/librime.so.1.0.0: undefined reference to 
`YAML::detail::node_data::begin()'
../lib/librime.so.1.0.0: undefined reference to 
`YAML::detail::node_data::empty_scalar'
../lib/librime.so.1.0.0: undefined reference to 
`YAML::Emitter::Emitter(std::ostream&)'
../lib/librime.so.1.0.0: undefined reference to `YAML::Load(std::istream&)'
collect2: error: ld returned 1 exit status
make[3]: *** [bin/rime_api_console] 错误 1
make[3]: Leaving directory `/home/xiaochi/Downloads/rimeime/librime/build'
make[2]: *** [tools/CMakeFiles/rime_api_console.dir/all] 错误 2
make[2]: Leaving directory `/home/xiaochi/Downloads/rimeime/librime/build'
make[1]: *** [all] 错误 2
make[1]: Leaving directory `/home/xiaochi/Downloads/rimeime/librime/build'
make: *** [librime] 错误 2

Original comment by cumt.xia...@gmail.com on 9 Dec 2013 at 8:35

GoogleCodeExporter commented 9 years ago
After compile and install of yaml-cpp 0.5.1, please re-compile and install 
librime before trying to install ibus-rime

Original comment by felixonm...@gmail.com on 9 Dec 2013 at 8:37

GoogleCodeExporter commented 9 years ago
soryy, I forget to run:

sudo ldconfig

so, after I run, it is ok now.

sorry about that.

Original comment by cumt.xia...@gmail.com on 9 Dec 2013 at 8:39

GoogleCodeExporter commented 9 years ago
OK, now I guess this issue is closed.

Original comment by contral...@gmail.com on 9 Dec 2013 at 8:40