cmakeがlibuv-1.dll: cannot open shared object file: No such file or directoryなどと申してきたので原因を探った結果qt5をpacmanから入れることで解決した。
・・・いや、エラーメッセージ仕事しろや、libuv関係ないやんかい!
Conversation
Notices
-
yumetodo (yumetodo@qiitadon.com)'s status on Monday, 13-Aug-2018 17:58:52 JST
yumetodo
-
せのお (妹尾 賢) (senooken@social.senooken.jp)'s status on Monday, 13-Aug-2018 18:06:08 JST
せのお (妹尾 賢)
おそらく,Qt5の依存関係にlibuvがあったので解決したのでしょう。例えば,シェルから `type libuv-1.dll` またはcmd.exeから `where libuv-1.dll` で存在場所を確認できます。
Qt5は巨大なパッケージなので,無関係なライブラリーも大量にインストールされたはずです。
libuvを自力でビルドして,libuv-1.dllの存在ディレクトリーをPATH変数に追加すれば,解決すると思います。 -
yumetodo (yumetodo@qiitadon.com)'s status on Monday, 13-Aug-2018 18:08:47 JST
yumetodo
@senooken そうでもないんですね。
問題自体はpacman -S mingw-w64-x86_64-qt5 mingw-w64-x86_64-qwt-qt5
で解決しましたが、こちらdependency workerの様子。
なおlddではqtなんて欠片も見えなかった・・・。
libuvもqt5もcmake-guiも/mingw64/binにありました。
https://qiitadon.com/media/rmG2bl7bPXloRzw0KTYせのお (妹尾 賢) likes this. -
せのお (妹尾 賢) (senooken@social.senooken.jp)'s status on Monday, 13-Aug-2018 18:19:55 JST
せのお (妹尾 賢)
「そうでもないんですね。」という言葉の意味がよくわかりませんね…。
libuvを単独でインストールしても根本的な解決にならないということでしょうか?qt5の依存関係にlibuvが入っていたので, `pacman -S mingw-w64-x86_64-qt5` で必要なランタイムとして一緒にlibuvがインストールされたので,解決されたと思っています。なので,libuvを単独で自分でソースコードからビルドすれば余計なものを入れなくても済んだのではないですかというコメントでした。 -
yumetodo (yumetodo@qiitadon.com)'s status on Monday, 13-Aug-2018 18:21:00 JST
yumetodo
@senooken pacmanでlibuvを入れ直しても解決せず、そもそも入っていなかったqt5を入れることで解決、にもかかわらずエラーメッセージはlibuvがっておかしいやん、というのがそもそもの言いたいことでした。
-
せのお (妹尾 賢) (senooken@social.senooken.jp)'s status on Monday, 13-Aug-2018 18:32:11 JST
せのお (妹尾 賢)
ありがとうございます。意味がわかりました。MSYS2上だけで動作させるには,.dllは不要なので,pacmanでlibuvを単独で入れた場合,libuv.soだけインストールされ,Windows用のlibuv.dllがインストールされなかったのだと思います。
なので,自分でmingwでlibuvをコンパイルして,.dllをビルドすれば解決できたと思います。
mingw-w64-x86_64-qt5はMinGW (Windows用)のパッケージなので,Windowsで動作するランタイム(.dll)が一緒にインストールされて解決したのでしょう。
-