rime / librime

Rime Input Method Engine, the core library
https://rime.im
BSD 3-Clause "New" or "Revised" License
3.37k stars 552 forks source link

make && make install 問題 #853

Closed shewer closed 7 months ago

shewer commented 7 months ago

Describe the bug 編譯 lib 路逕異常 os: archlinux librime : 51076a8e (fork/master) fix(rime_api): deploy_schema type cast failure

cmake . -Bbuild \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_MERGED_PLUGINS=OFF \
-DENABLE_EXTERNAL_PLUGINS=ON
-- Found Boost: /usr/lib/cmake/Boost-1.83.0/BoostConfig.cmake (found suitable version "1.83.0", minimum required is "1.74.0") found components: regex 
-- Found gflags: /usr/lib/libgflags.so
-- Found glog: /usr/lib/libglog.so
-- Found yaml-cpp: /usr/lib/libyaml-cpp.so
-- Found leveldb: /usr/lib/libleveldb.so
-- Found marisa: /usr/lib/libmarisa.so
-- Found opencc: /usr/lib/libopencc.so
-- Found X11/keysym.h at /home/xxxxxxxxxxx/proj/librime-12/include
-- Found plugin: /home/xxxxxxxxxxx/proj/librime-12/plugins/charcode
-- Found plugin: /home/xxxxxxxxxxx/proj/librime-12/plugins/lua
-- Found plugin: /home/xxxxxxxxxxx/proj/librime-12/plugins/octagram
-- Found plugin: /home/xxxxxxxxxxx/proj/librime-12/plugins/predict
-- Found plugin: /home/xxxxxxxxxxx/proj/librime-12/plugins/proto
-- Iconv was not found. Make sure ICONV_LIBRARY and ICONV_INCLUDE_DIR are
set.
-- Found Boost: /usr/lib/cmake/Boost-1.83.0/BoostConfig.cmake (found suitable version "1.83.0", minimum required is "1.46.0") found components: locale 
-- Plugin rime-charcode provides modules: charcode
-- Plugin rime-lua provides modules: lua
-- Plugin rime-octagram provides modules: octagram
-- Plugin rime-predict provides modules: predict
-- compiled capnproto schemata (sources): /home/xxxxxxxxxxx/proj/librime-12/build/plugins/proto//rime_proto.capnp.c++;/home/xxxxxxxxxxx/proj/librime-12/build/plugins/proto//rime_ipc.capnp.c++
-- compiled capnproto schemata (headers): /home/xxxxxxxxxxx/proj/librime-12/build/plugins/proto//rime_proto.capnp.h;/home/xxxxxxxxxxx/proj/librime-12/build/plugins/proto//rime_ipc.capnp.h
-- Plugin rime-proto provides modules: proto
-- rime_plugins_libs: 
-- rime_plugins_modules: plugins
-- Configuring done (0.9s)
-- Generating done (0.3s)
-- Build files have been written to: /home/xxxxxxxxxxx/proj/librime-12/build
cmake --build build
make[1]: 進入目錄「/home/xxxxxxxxxxx/proj/librime-12/build」
[  3%] Built target rime-proto-objs
[  6%] Built target rime-predict-objs
[  7%] Built target rime-plugins-objs
[  9%] Built target rime-charcode-objs
[ 11%] Built target rime-octagram-objs
[ 16%] Built target rime-lua-objs
[ 72%] Built target rime
[ 73%] Built target build_predict
[ 74%] Built target rime-octagram
[ 75%] Built target rime_api_console
[ 77%] Built target rime-proto
[ 77%] Built target rime-charcode
[ 78%] Built target rime_proto_console
[ 79%] Built target rime_dict_manager
[ 80%] Built target rime-predict
[ 81%] Built target rime-lua
[ 82%] Built target rime_deployer
[ 85%] Built target rime_table_decompiler
[ 86%] Built target build_grammar
[ 87%] Built target charcode_test
[ 88%] Built target rime_patch
[ 89%] Built target rime_console
[100%] Built target rime_test
make[1]: 離開目錄「/home/xxxxxxxxxxx/proj/librime-12/build」
cmake --build build --target install
make[1]: 進入目錄「/home/xxxxxxxxxxx/proj/librime-12/build」
[  1%] Built target rime-plugins-objs
[  4%] Built target rime-proto-objs
[  9%] Built target rime-lua-objs
[ 11%] Built target rime-charcode-objs
[ 13%] Built target rime-octagram-objs
[ 16%] Built target rime-predict-objs
[ 72%] Built target rime
[ 73%] Built target rime-charcode
[ 74%] Built target rime-lua
[ 75%] Built target rime-proto
[ 76%] Built target rime_api_console
[ 79%] Built target rime_table_decompiler
[ 80%] Built target rime-octagram
[ 81%] Built target rime-predict
[ 82%] Built target build_predict
[ 83%] Built target charcode_test
[ 84%] Built target rime_deployer
[ 85%] Built target rime_dict_manager
[ 86%] Built target rime_proto_console
[ 87%] Built target rime_patch
[ 88%] Built target build_grammar
[ 89%] Built target rime_console
[100%] Built target rime_test
Install the project...
-- Install configuration: "Release"
-- Up-to-date: /usr/lib/pkgconfig/rime.pc
-- Up-to-date: /usr/share/cmake/rime/RimeConfig.cmake
-- Up-to-date: /usr/include/rime_api.h
-- Up-to-date: /usr/include/rime_levers_api.h
========  問題============
-- Up-to-date: /usr/lib/usr/lib/rime-plugins/librime-charcode.so
-- Up-to-date: /usr/lib/usr/lib/rime-plugins/librime-lua.so
-- Up-to-date: /usr/lib/usr/lib/rime-plugins/librime-octagram.so
-- Up-to-date: /usr/lib/usr/lib/rime-plugins/librime-predict.so
-- Up-to-date: /usr/lib/usr/lib/rime-plugins/librime-proto.so
=================================================
-- Up-to-date: /usr/lib/librime.so.1.10.0
-- Up-to-date: /usr/lib/librime.so.1
-- Up-to-date: /usr/lib/librime.so
-- Up-to-date: /usr/bin/rime_deployer
-- Up-to-date: /usr/bin/rime_dict_manager
-- Up-to-date: /usr/bin/rime_table_decompiler
-- Up-to-date: /usr/bin/rime_patch

* make[1]: 離開目錄「/home/xxxxxxxxxxx/proj/librime-12/build」

build/lib tree

   lib   git:(master) ✗ tree
.
├── librime.so -> librime.so.1
├── librime.so.1 -> librime.so.1.10.0
├── librime.so.1.10.0
└── usr
    └── lib
        └── rime-plugins
            ├── librime-charcode.so
            ├── librime-lua.so
            ├── librime-octagram.so
            ├── librime-predict.so
            └── librime-proto.so

/usr/lib/pkgconfig/rime.pc

prefix=/usr
exec_prefix=/usr
libdir=/usr/lib
includedir=/usr/include
pkgdatadir=/usr/share//usr/share/rime-data # <<------
pluginsdir=/usr/lib//usr/lib/rime-plugins # <<-----

Name: Rime
Description: Rime Input Method Engine
Version: 1.10.0
Cflags: -I${includedir}
Libs: -L${libdir} -lrime
lotem commented 7 months ago

What's the content of build/CMakeCache.txt ?

I suspect values of RIME_DATA_DIR and RIME_PLUGINS_DIR from an old build are cached. Their default values are updated to not include the prefix.

shewer commented 7 months ago

thks.
fixed.

rm build
make && sudo make install

< RIME_DATA_DIR:STRING=/usr/share/rime-data
---
> RIME_DATA_DIR:STRING=rime-data
396c396
< RIME_PLUGINS_DIR:STRING=/usr/lib/rime-plugins
---
> RIME_PLUGINS_DIR:STRING=rime-plugins