Arch LinuxでAndroid Studioを使ってC++ supportのプロジェクトを作るときにやったこと

プロジェクト作成は省略。Hello from C++を表示するまでにやったこと。 Arch Linuxではプロジェクト作ってそのままだとGradle syncがCMake実行時にコケてしまったのでメモ。

libncurses

なんかlibncurses.so.5が見つからないと言われる。 ncurses は インストール済みなのに言われるので調べたらlibncurses.so.6が入ってるんですね。

なので symbolic link を貼って解決すればいいとのこと。

[SOLVED]Cannot find libncurses.so.5 / Newbie Corner / Arch Linux Forums

sudo ln -s /usr/lib/libncursesw.so.6 /usr/lib/libncurses.so.5

libtinfo

ncursesの解決はできたものの今度は libtinfo.so.5 が見つからないとのこと。

sudo pacman -Ss libtinfo なんて適当に調べても見つからない。 おとなしくググると、 AURにはあるらしい。

なのでyaourt -S libtinfoでインストール。/usr/libの下を確認するとlibtinfo.so.6がいることを確認

sudo ln -s /usr/lib/libtinfo.so.{6,5}

これでとりあえずはGradle syncがコケなくなってHello from C++が表示できました。

お疲れ様でした。

参考:

おまけ

いつものエミュレータが起動できないlibstdc++のアレ

追記: 2017/03/14現在、確認

SDKいくつで変わったのかはわかりませんが、soが移動してました。ので

mv $ANDROID_SDK_HOME/emulator/lib64/libstdc++/libstdc++.so.6{,.back}
ln -s /usr/lib/libstdc++.so $ANDROID_SDK_ROOT/emulator/lib64/libstdc++/libstdc++.so.6

↑こんな感じで。

↓では動きません。動きませんというか、ファイルがないのでコケるはず。

mv $ANDROID_SDK_HOME/tools/lib64/libstdc++/libstdc++.so.6{,.back}
ln -s /usr/lib/libstdc++.so $ANDROID_SDK_ROOT/tools/lib64/libstdc++/libstdc++.so.6