🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

2回答

836閲覧

neovimをソースコードからビルドできない原因が知りたい

samidare_chan

総合スコア18

CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

0クリップ

投稿2024/03/19 09:56

質問内容

以下のエラーなのですが公式リポジトリからダウンロードしてきたneovimなのですが以下のコマンドを実行すると以下のエラーが出ますこれはどう対処すればいいのでしょうか?

mdkir build cd build cmake .. cmake --build .

実現したいこと

正常にビルドしたい

前提

OS: ubuntu

> lsb_release -a 18:52:18 No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal

発生している問題・エラーメッセージ

29%] Building C object src/nvim/CMakeFiles/nvim_bin.dir/viml/parser/expressions.c.o [ 29%] Building C object src/nvim/CMakeFiles/nvim_bin.dir/window.c.o [ 29%] Linking C executable ../../bin/nvim /usr/bin/ld: ../../../.deps/usr/lib/libuv.a(threadpool.c.o): in function `init_once': threadpool.c:(.text+0x350): undefined reference to `__isoc23_strtol' /usr/bin/ld: ../../../.deps/usr/lib/libuv.a(thread.c.o): in function `glibc_version_check': thread.c:(.text+0x32): undefined reference to `__isoc23_strtol' /usr/bin/ld: ../../../.deps/usr/lib/libuv.a(linux.c.o): in function `uv__iou_init': linux.c:(.text+0xd3a): undefined reference to `__isoc23_strtol' /usr/bin/ld: ../../../.deps/usr/lib/libuv.a(linux.c.o): in function `uv_resident_set_memory': linux.c:(.text+0x2c21): undefined reference to `__isoc23_strtol' /usr/bin/ld: CMakeFiles/nvim_bin.dir/charset.c.o: in function `try_getdigits': /home/shigurechan/ダウンロード/neovim/src/nvim/charset.c:1087: undefined reference to `__isoc23_strtoimax' /usr/bin/ld: CMakeFiles/nvim_bin.dir/eval/window.c.o: in function `get_winnr': /home/shigurechan/ダウンロード/neovim/src/nvim/eval/window.c:269: undefined reference to `__isoc23_strtol' /usr/bin/ld: CMakeFiles/nvim_bin.dir/file_search.c.o: in function `vim_findfile_init': /home/shigurechan/ダウンロード/neovim/src/nvim/file_search.c:406: undefined reference to `__isoc23_strtol' /usr/bin/ld: CMakeFiles/nvim_bin.dir/highlight_group.c.o: in function `do_highlight': /home/shigurechan/ダウンロード/neovim/src/nvim/highlight_group.c:1436: undefined reference to `__isoc23_strtol' /usr/bin/ld: CMakeFiles/nvim_bin.dir/highlight_group.c.o: in function `name_to_color': /home/shigurechan/ダウンロード/neovim/src/nvim/highlight_group.c:3117: undefined reference to `__isoc23_strtol' /usr/bin/ld: CMakeFiles/nvim_bin.dir/indent.c.o: in function `tabstop_set': /home/shigurechan/ダウンロード/neovim/src/nvim/indent.c:71: undefined reference to `__isoc23_strtol' /usr/bin/ld: CMakeFiles/nvim_bin.dir/os/input.c.o: in function `handle_mouse_event': /home/shigurechan/ダウンロード/neovim/src/nvim/os/input.c:382: undefined reference to `__isoc23_sscanf' /usr/bin/ld: CMakeFiles/nvim_bin.dir/os/process.c.o: in function `os_proc_children': /home/shigurechan/ダウンロード/neovim/src/nvim/os/process.c:216: undefined reference to `__isoc23_fscanf' /usr/bin/ld: CMakeFiles/nvim_bin.dir/tui/tui.c.o: in function `terminfo_start': /home/shigurechan/ダウンロード/neovim/src/nvim/tui/tui.c:340: undefined reference to `__isoc23_strtol' /usr/bin/ld: /home/shigurechan/ダウンロード/neovim/src/nvim/tui/tui.c:348: undefined reference to `__isoc23_strtol' /usr/bin/ld: CMakeFiles/nvim_bin.dir/tui/tui.c.o: in function `tui_guess_size': /home/shigurechan/ダウンロード/neovim/src/nvim/tui/tui.c:1669: undefined reference to `__isoc23_sscanf' /usr/bin/ld: /home/shigurechan/ダウンロード/neovim/src/nvim/tui/tui.c:1671: undefined reference to `__isoc23_sscanf' /usr/bin/ld: CMakeFiles/nvim_bin.dir/__/termkey/termkey.c.o: in function `termkey_strpkey': /home/shigurechan/ダウンロード/neovim/src/termkey/termkey.c:1493: undefined reference to `__isoc23_sscanf' /usr/bin/ld: /home/shigurechan/ダウンロード/neovim/src/termkey/termkey.c:1497: undefined reference to `__isoc23_sscanf' /usr/bin/ld: /home/shigurechan/ダウンロード/neovim/src/termkey/termkey.c:1528: undefined reference to `__isoc23_sscanf' collect2: error: ld returned 1 exit status make[2]: *** [src/nvim/CMakeFiles/nvim_bin.dir/build.make:4953: bin/nvim] エラー 1 make[1]: *** [CMakeFiles/Makefile2:814: src/nvim/CMakeFiles/nvim_bin.dir/all] エラー 2 make: *** [Makefile:152: all] エラー 2

試したこと

1,CMakeLists.txtのファイルの最後にtarget_link_libraries(nvim_bin PUBLIC -lstdc++ -lm)を追加してcmake .. cmake --buildを実行
2,sudo apt update sudo apt upgradeを実行
3,libuvをコンパイルしてインストールhttps://github.com/libuv/libuv

調べたこと

どうやらlibcというファイルがのバージョンが古いか、うまくリンクされていないことが原因らいしいです。
Ubuntuのバージョンが古いからでしょうか?

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2024/03/19 12:04

glibc に __isoc23_* 系の関数が導入されたのは glic-2.38 からの様です。 sourceware.org Git - glibc.git/blob - include/stdlib.h https://sourceware.org/git/?p=glibc.git;a=blob;f=include/stdlib.h;h=7deb8193d746ff0b87e06ebf8abf9637bf866e26;hb=36f2487f13e3540be9ee0fb51876b1da72176d3f 導入の経緯に関しては以下のドキュメントで説明されています。 sourceware.org Git - glibc.git/commit - include/stdlib.h https://sourceware.org/git/?p=glibc.git;a=commit;f=include/stdlib.h;h=64924422a99690d147a166b4de3103f3bf3eaf6c ただ、focal の glibc は version 2.31 なので、link error は起こらないはずです。実際、Ubuntu 22.04(Jammy Jellyfish) glibc 2.35 でビルドしても本件の様な link error は発生しません。
int32_t

2024/03/19 13:27

libc 関連のパッケージは何をインストールしてありますか?
samidare_chan

2024/03/19 14:05

こちらのコマンドでインストールしました。 > sudo apt-get install --reinstall libc6
int32_t

2024/03/19 14:44

libc6-dev は入ってないのですか?
samidare_chan

2024/03/20 06:04

> sudo apt install libc6-dev ``` パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 libc6-dev はすでに最新バージョン (2.31-0ubuntu9.14) です。 libc6-dev は手動でインストールしたと設定されました。 以下のパッケージが自動でインストールされましたが、もう必要とされていません: ``` と表示されます
int32_t

2024/03/20 09:12

libc6 (libc6-devではない) のバージョンはいくつですか。
guest

回答2

0

自己解決

原因

不明

対処方法

ubuntu 22.04LTSをインストール

投稿2024/03/24 01:15

samidare_chan

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

GitHubではリポジトリ直下でmakeを叩くように記載されていますね。
普段私はこの手順でビルドしていますが、それでは解決しませんか?
https://github.com/neovim/neovim/blob/master/BUILD.md#quick-start

投稿2024/03/19 10:18

編集2024/03/19 10:28
peacock0803sz

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

samidare_chan

2024/03/19 14:03 編集

再クローンしてneovimディレクトリに移動後以下のコマンドを実行しましたが 同じエラーに遭遇します。 > make CMAKE_BUILD_TYPE=RelWithDebInfo # Error console ``` ium.a ../.deps/usr/lib/libluajit-5.1.a -fstack-protector-strong -lm -lutil ../.deps/usr/lib/libuv.a -ldl -lnsl -lrt -lpthread && : /usr/bin/ld: ../.deps/usr/lib/libuv.a(threadpool.c.o): in function `init_once': threadpool.c:(.text+0x350): undefined reference to `__isoc23_strtol' /usr/bin/ld: ../.deps/usr/lib/libuv.a(thread.c.o): in function `glibc_version_check': thread.c:(.text+0x32): undefined reference to `__isoc23_strtol' /usr/bin/ld: ../.deps/usr/lib/libuv.a(linux.c.o): in function `uv__iou_init': linux.c:(.text+0xd3a): undefined reference to `__isoc23_strtol' /usr/bin/ld: ../.deps/usr/lib/libuv.a(linux.c.o): in function `uv_resident_set_memory': linux.c:(.text+0x2c21): undefined reference to `__isoc23_strtol' /usr/bin/ld: /tmp/nvim.a7Bhmr.ltrans0.ltrans.o: in function `termkey_strpkey': ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問