Linking main executable with lvgl(?) failed on Mac (M1)
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- cmake, cpp
- 領域
- build-system, desktop
調査の方向性
cmake -S . -B build と cmake --build build -j4 を使って arm64 の失敗を再現し、InfiniTime リポジトリと src/libs/lvgl サブモジュールが存在することを確認します。infinisim ターゲットの CMake 設定と、LVGL 関連の依存関係を調査します。報告された Mac の構成でシミュレーターのリンクとビルドが正常に成功すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
I've been trying to get the simulator working on my Mac (M1), but it keeps failing when linking the main infinisim executable to what I assume is the lvgl library:
[100%] Linking CXX executable infinisim
Undefined symbols for architecture arm64:
"__lv_anim_ll", referenced from:
__lv_anim_core_init in libsim-base.a(lv_anim.c.o)
_anim_task in libsim-base.a(lv_anim.c.o)
_anim_mark_list_change in libsim-base.a(lv_anim.c.o)
_lv_anim_start in libsim-base.a(lv_anim.c.o)
_lv_anim_del in libsim-base.a(lv_anim.c.o)
_lv_anim_del_all in libsim-base.a(lv_anim.c.o)
_lv_anim_get in libsim-base.a(lv_anim.c.o)
...
"__lv_disp_ll", referenced from:
_lv_init in libsim-base.a(lv_obj.c.o)
_lv_obj_get_disp in libsim-base.a(lv_obj.c.o)
_lv_disp_drv_register in libsim-base.a(lv_hal_disp.c.o)
_lv_disp_remove in libsim-base.a(lv_hal_disp.c.o)
_lv_disp_get_next in libsim-base.a(lv_hal_disp.c.o)
"__lv_draw_mask_list", referenced from:
_lv_draw_mask_add in libsim-base.a(lv_draw_mask.c.o)
_lv_draw_mask_apply in libsim-base.a(lv_draw_mask.c.o)
_lv_draw_mask_remove_id in libsim-base.a(lv_draw_mask.c.o)
_lv_draw_mask_remove_custom in libsim-base.a(lv_draw_mask.c.o)
_lv_draw_mask_get_cnt in libsim-base.a(lv_draw_mask.c.o)
"__lv_drv_ll", referenced from:
__lv_fs_init in libsim-base.a(lv_fs.c.o)
_lv_fs_get_drv in libsim-base.a(lv_fs.c.o)
_lv_fs_drv_register in libsim-base.a(lv_fs.c.o)
_lv_fs_get_letters in libsim-base.a(lv_fs.c.o)
"__lv_font_decompr_buf", referenced from:
_lv_font_get_bitmap_fmt_txt in libsim-base.a(lv_font_fmt_txt.c.o)
__lv_font_clean_up_fmt_txt in libsim-base.a(lv_font_fmt_txt.c.o)
"__lv_img_cache_array", referenced from:
__lv_img_cache_open in libsim-base.a(lv_img_cache.c.o)
_lv_img_cache_set_size in libsim-base.a(lv_img_cache.c.o)
_lv_img_cache_invalidate_src in libsim-base.a(lv_img_cache.c.o)
"__lv_img_defoder_ll", referenced from:
__lv_img_decoder_init in libsim-base.a(lv_img_decoder.c.o)
_lv_img_decoder_create in libsim-base.a(lv_img_decoder.c.o)
_lv_img_decoder_get_info in libsim-base.a(lv_img_decoder.c.o)
_lv_img_decoder_open in libsim-base.a(lv_img_decoder.c.o)
_lv_img_decoder_delete in libsim-base.a(lv_img_decoder.c.o)
"__lv_indev_ll", referenced from:
_lv_init in libsim-base.a(lv_obj.c.o)
_lv_indev_drv_register in libsim-base.a(lv_hal_indev.c.o)
_lv_indev_get_next in libsim-base.a(lv_hal_indev.c.o)
"__lv_mem_buf", referenced from:
__lv_mem_buf_get in libsim-base.a(lv_mem.c.o)
__lv_mem_buf_release in libsim-base.a(lv_mem.c.o)
__lv_mem_buf_free_all in libsim-base.a(lv_mem.c.o)
(maybe you meant: __lv_mem_buf_free_all, __lv_mem_buf_release , __lv_mem_buf_get )
"__lv_obj_style_trans_ll", referenced from:
_lv_init in libsim-base.a(lv_obj.c.o)
_trans_del in libsim-base.a(lv_obj.c.o)
_trans_create in libsim-base.a(lv_obj.c.o)
_trans_anim_ready_cb in libsim-base.a(lv_obj.c.o)
_lv_obj_finish_transitions in libsim-base.a(lv_obj.c.o)
"__lv_task_act", referenced from:
_lv_task_handler in libsim-base.a(lv_task.c.o)
_lv_task_del in libsim-base.a(lv_task.c.o)
"__lv_task_ll", referenced from:
__lv_task_core_init in libsim-base.a(lv_task.c.o)
_lv_task_handler in libsim-base.a(lv_task.c.o)
_lv_task_create in libsim-base.a(lv_task.c.o)
_lv_task_del in libsim-base.a(lv_task.c.o)
_lv_task_set_prio in libsim-base.a(lv_task.c.o)
_lv_task_get_next in libsim-base.a(lv_task.c.o)
"__lv_theme_empty_styles", referenced from:
_lv_theme_empty_init in libsim-base.a(lv_theme_empty.c.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [infinisim] Error 1
make[1]: *** [CMakeFiles/infinisim.dir/all] Error 2
make: *** [all] Error 2
In the readme it says:
-DInfiniTime_DIR=InfiniTime: a full path to an existing InfiniTime repository checked out. Inside that directory thesrc/libs/lvglsubmodule must be checked out as well. The default value points to the InfiniTime submodule in this repository.
I verified that the submodule is indeed checked out. Also, I can build the main firmware itself without problems. For the simulator's dependencies I just ran npm install from the repo root, since there's a package.json. For building I simply used the given instructions:
cmake -S . -B build
cmake --build build -j4
- 主要言語
- C++
- スター
- 203
- フォーク
- 99
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
InfiniTimeOrg/InfiniSim のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
InfiniTimeOrg/InfiniSim#202 · コメント 1 件 ·
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
InfiniTimeOrg/InfiniSim#189 · コメント 3 件 ·
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
InfiniTimeOrg/InfiniSim#162 · コメント 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
InfiniTimeOrg/InfiniSim#160 · コメント 3 件 · リアクション 1 件 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
InfiniTimeOrg/InfiniSim#128 · コメント 1 件 ·
InfiniTimeOrg/InfiniSim の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 91/100
FujiNetWIFI/fujinet-firmware#2045 ·
メンテナーはふだん 1 日以内に返信
-
(S1 - Need confirmation)
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
CleverRaven/Cataclysm-DDA#89159 ·
メンテナーはふだん 1 日以内に返信
-
area:libnvmpi bug P3
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
gjrtimmer/jetson-nvmpi#33 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
bug(wasi_crypto): ArrayOutput::pull reports the wrong all-pulled flag対応中かも @Yashbhu が今日担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信