Riey / kime

Korean IME
GNU General Public License v3.0
503 stars 53 forks source link

설치중 모듈 ffi 관련 에러 #675

Closed xvzc closed 1 month ago

xvzc commented 1 month ago

Arch Linux 환경입니다. 도커파일에 기재되어있는 의존성을 모두 설치하고 시도해봐도 똑같은 에러 메시지를 겪고있습니다. 제가 뭔가 빼먹은게 있을까요?

메뉴얼 빌드 및 yay -Sy kime로 진행했을 때 동일한 현상을 겪고있습니다.

에러 로그 첨부드립니다.

error[E0425]: cannot find function `kime_api_version` in module `ffi`
  --> src/engine/cffi/src/lib.rs:22:19
   |
22 |     unsafe { ffi::kime_api_version() == ffi::KIME_API_VERSION }
   |                   ^^^^^^^^^^^^^^^^ help: a constant with a similar name exists: `KIME_API_VERSION`
   |
  ::: /usr/src/debug/kime/kime-3.0.2/target/release/build/kime-engine-cffi-41956559bc3de3e8/out/bindings.rs:3:1
   |
3  | pub const KIME_API_VERSION: usize = 7;
   | -------------------------------------- similarly named constant `KIME_API_VERSION` defined here

error[E0425]: cannot find function `kime_engine_new` in module `ffi`
  --> src/engine/cffi/src/lib.rs:32:35
   |
32 |             engine: unsafe { ffi::kime_engine_new(config.config) },
   |                                   ^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_update_layout_state` in module `ffi`
  --> src/engine/cffi/src/lib.rs:37:23
   |
37 |         unsafe { ffi::kime_engine_update_layout_state(self.engine) }
   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_end_ready` in module `ffi`
  --> src/engine/cffi/src/lib.rs:41:23
   |
41 |         unsafe { ffi::kime_engine_end_ready(self.engine) }
   |                       ^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_check_ready` in module `ffi`
  --> src/engine/cffi/src/lib.rs:45:23
   |
45 |         unsafe { ffi::kime_engine_check_ready(self.engine) }
   |                       ^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_set_input_category` in module `ffi`
  --> src/engine/cffi/src/lib.rs:49:23
   |
49 |         unsafe { ffi::kime_engine_set_input_category(self.engine, category) };
   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_press_key` in module `ffi`
  --> src/engine/cffi/src/lib.rs:60:18
   |
60 |             ffi::kime_engine_press_key(self.engine, config.config, hardware_code, numlock, state)
   |                  ^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_preedit_str` in module `ffi`
  --> src/engine/cffi/src/lib.rs:66:26
   |
66 |             let s = ffi::kime_engine_preedit_str(self.engine);
   |                          ^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_commit_str` in module `ffi`
  --> src/engine/cffi/src/lib.rs:73:26
   |
73 |             let s = ffi::kime_engine_commit_str(self.engine);
   |                          ^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_clear_commit` in module `ffi`
  --> src/engine/cffi/src/lib.rs:80:18
   |
80 |             ffi::kime_engine_clear_commit(self.engine);
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_clear_preedit` in module `ffi`
  --> src/engine/cffi/src/lib.rs:86:18
   |
86 |             ffi::kime_engine_clear_preedit(self.engine);
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_remove_preedit` in module `ffi`
  --> src/engine/cffi/src/lib.rs:92:18
   |
92 |             ffi::kime_engine_remove_preedit(self.engine);
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_reset` in module `ffi`
  --> src/engine/cffi/src/lib.rs:98:18
   |
98 |             ffi::kime_engine_reset(self.engine);
   |                  ^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_engine_delete` in module `ffi`
   --> src/engine/cffi/src/lib.rs:106:18
    |
106 |             ffi::kime_engine_delete(self.engine);
    |                  ^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_config_default` in module `ffi`
   --> src/engine/cffi/src/lib.rs:118:35
    |
118 |             config: unsafe { ffi::kime_config_default() },
    |                                   ^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_config_load` in module `ffi`
   --> src/engine/cffi/src/lib.rs:127:35
    |
127 |             config: unsafe { ffi::kime_config_load() },
    |                                   ^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_config_candidate_font` in module `ffi`
   --> src/engine/cffi/src/lib.rs:133:29
    |
133 |             let font = ffi::kime_config_candidate_font(self.config);
    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_config_xim_preedit_font` in module `ffi`
   --> src/engine/cffi/src/lib.rs:144:29
    |
144 |             let font = ffi::kime_config_xim_preedit_font(self.config);
    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_config_delete` in module `ffi`
   --> src/engine/cffi/src/lib.rs:158:18
    |
158 |             ffi::kime_config_delete(self.config);
    |                  ^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_daemon_config_load` in module `ffi`
   --> src/engine/cffi/src/lib.rs:171:35
    |
171 |             config: unsafe { ffi::kime_daemon_config_load() },
    |                                   ^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_daemon_config_modules` in module `ffi`
   --> src/engine/cffi/src/lib.rs:176:41
    |
176 |         EnumSet::from_u32(unsafe { ffi::kime_daemon_config_modules(self.config) })
    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_daemon_config_default` in module `ffi`
   --> src/engine/cffi/src/lib.rs:183:35
    |
183 |             config: unsafe { ffi::kime_daemon_config_default() },
    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_daemon_config_delete` in module `ffi`
   --> src/engine/cffi/src/lib.rs:191:18
    |
191 |             ffi::kime_daemon_config_delete(self.config);
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_indicator_config_load` in module `ffi`
   --> src/engine/cffi/src/lib.rs:204:35
    |
204 |             config: unsafe { ffi::kime_indicator_config_load() },
    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_indicator_config_icon_color` in module `ffi`
   --> src/engine/cffi/src/lib.rs:209:23
    |
209 |         unsafe { ffi::kime_indicator_config_icon_color(self.config) }
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_indicator_config_default` in module `ffi`
   --> src/engine/cffi/src/lib.rs:216:35
    |
216 |             config: unsafe { ffi::kime_indicator_config_default() },
    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_indicator_config_delete` in module `ffi`
   --> src/engine/cffi/src/lib.rs:224:18
    |
224 |             ffi::kime_indicator_config_delete(self.config);
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_log_config_load` in module `ffi`
   --> src/engine/cffi/src/lib.rs:237:35
    |
237 |             config: unsafe { ffi::kime_log_config_load() },
    |                                   ^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_log_config_global_level` in module `ffi`
   --> src/engine/cffi/src/lib.rs:243:26
    |
243 |             let s = ffi::kime_log_config_global_level(self.config);
    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_log_config_default` in module `ffi`
   --> src/engine/cffi/src/lib.rs:252:35
    |
252 |             config: unsafe { ffi::kime_log_config_default() },
    |                                   ^^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

error[E0425]: cannot find function `kime_log_config_delete` in module `ffi`
   --> src/engine/cffi/src/lib.rs:260:18
    |
260 |             ffi::kime_log_config_delete(self.config);
    |                  ^^^^^^^^^^^^^^^^^^^^^^ not found in `ffi`

For more information about this error, try `rustc --explain E0425`.
error: could not compile `kime-engine-cffi` due to 31 previous errors
warning: build failed, waiting for other jobs to finish...
==> ERROR: A failure occurred in build().
chwnam commented 1 month ago

Linux Mint 22 베타에서도 같은 문제가 발생했습니다.

qi777xj commented 1 month ago

bindgen과 cbindgen이 구버전이라 생기는 오류인 것 같은데, src/engine/cffi/Cargo.toml에서 bindgen과 cbindgen의 버전을 최신 버전인 0.69와 0.24로 바꿔주니 해결되었습니다.

555

이 이슈에서 마지막 코멘트 참고하였습니다.

nakoo commented 1 month ago

@Riey Can you bump up the package version?

Riey commented 4 weeks ago

@Riey Can you bump up the package version?

@nakoo I'll try to update this weekend.