リモートデスクトップで検索:完結編
前回までのあらすじ。
AppStoreで「KeroRemote」を探そうと「リモートデスクトップ」で検索しても全然出てこなくて、こりゃあかんと思ってKeroRemoteの検索キーワードを変更しようとしたら、アプリのバージョンアップが必要で、それじゃバージョンアップしようと思っても、アプリの64bit化が必須になっていて、ソース修正(longのところをintに修正など)したりビルド設定を64bitに対応させて、いざ64bitでビルドしようとしてみたら、なんかスゲー数のエラーが出た。
で。
このエラーの原因ですが、どうもヘッダーファイルにグローバル変数を宣言してるのが悪いっぽい。コボラーで育った自分は、変数はヘッダーでキチンと宣言しなさいよと新入社員の時に先輩に教わった事を忠実に守っているのにひどい仕打ちです。
どうもヘッダーファイルが何度も呼ばれる事を懸念してとの事のよーでして、グローバル変数はヘッダーじゃなくて本体で宣言しろって事のよーですが、そもそもなんで今まで大丈夫だったのに今回ダメかってのが気になってプロジェクトファイルを見比べたところ「GCC_NO_COMMON_BLOCKS」の値が変わってたので「=NO」にしてビルドしたら通りました。よし、プログラマーとしてはどーかと思いますが、楽だしこれでいこう。
で。
さて、最後の難関は「libvpx」でリンクエラーが出やがってます。libvpxが使えないとVP8でデコードできやせん。つまりはSiegfriedに接続する事が出来ません。これはまずい。
まずlibvpxの参照先のライブラリがなんかえらい長くなっていたので修正して気持ちを落ち着かせます。なんでこんなに長くなった上に違うところのライブラリを参照したのか謎なんですが。で正しい参照先にしても予想通りエラーは消えず。
で、エラー内容ですがシンプルに「arm64」のアーキテクチャに対応できていない御様子。libvpxのバージョンは「1.1.0」でWindows側と同じ。いずれにしても、こりゃlibvpxをarm64用にビルドし直さんとあかんとゆー結論に。
ここでさらに問題が。そもそもlibvpxの1.1.0てarm64に対応していないんですよね。1.2.0も1.3.0も。これには結構前に気づいていてどーにもならんとは思っていて放置気味ではあったんですよね。さすがにlibvpxのソースをarm64に対応できる力なぞ持ち合わせておりませんし。そんな折、4月に出たばっかりの1.4.0に「arm64-dawin-gcc」の文字がありまあああああす!!!
makeとか苦手なゾーンではありますが、パパ頑張ってarmv7とarm64に対応したlibvpxをなんとかかんとか生成。ライブラリの結合方法とかlibvpxのオプションが超不安ですが。UNIX初心者なんで、てかコマンドライン初心者なんで。libvpxも。
そんなこんなでarm64対応版「KeroRemote」が何とか完成。バージョンアップとゆー事でメモリー周りの修正をちょいと加えておりますので、アプリの安定性は増しているんじゃないかと思います。
で、Windows側のエンコードはlibvpxの1.1.0で、iOS側のデコードはlibvpxの1.4.0ではあるんですけど、問題無く動くよーなんで一安心。ちなみに、libvpxの1.3.0からVP9が利用出来るよーになっておりやすが、ビルドしたやつはオプションでVP9をdisableにしておりやす。当面使う予定無いですし。
ふと思ったんですが、armv7sってどこに行ってしまったでしょうか。armv7sのiPhone5でも動いたんでまー良いですけど。
そんなこんなでarm64対応版「KeroRemote」は無事アップルの申請も通過して既にリリースされておりやす。バージョンは「1.0.8」となりやした。たぶん問題無いと思いますけどどうぞ御試し下さい。おっと、まだ有料版を御持ちで無い方は無料版を御試し頂ければと思いますが、また近々有料版の無料キャンペーンをすると思いますので暫く御待ち下さいませ。
AppStoreで「KeroRemote」を探そうと「リモートデスクトップ」で検索しても全然出てこなくて、こりゃあかんと思ってKeroRemoteの検索キーワードを変更しようとしたら、アプリのバージョンアップが必要で、それじゃバージョンアップしようと思っても、アプリの64bit化が必須になっていて、ソース修正(longのところをintに修正など)したりビルド設定を64bitに対応させて、いざ64bitでビルドしようとしてみたら、なんかスゲー数のエラーが出た。
で。
このエラーの原因ですが、どうもヘッダーファイルにグローバル変数を宣言してるのが悪いっぽい。コボラーで育った自分は、変数はヘッダーでキチンと宣言しなさいよと新入社員の時に先輩に教わった事を忠実に守っているのにひどい仕打ちです。
どうもヘッダーファイルが何度も呼ばれる事を懸念してとの事のよーでして、グローバル変数はヘッダーじゃなくて本体で宣言しろって事のよーですが、そもそもなんで今まで大丈夫だったのに今回ダメかってのが気になってプロジェクトファイルを見比べたところ「GCC_NO_COMMON_BLOCKS」の値が変わってたので「=NO」にしてビルドしたら通りました。よし、プログラマーとしてはどーかと思いますが、楽だしこれでいこう。
で。
さて、最後の難関は「libvpx」でリンクエラーが出やがってます。libvpxが使えないとVP8でデコードできやせん。つまりはSiegfriedに接続する事が出来ません。これはまずい。
まずlibvpxの参照先のライブラリがなんかえらい長くなっていたので修正して気持ちを落ち着かせます。なんでこんなに長くなった上に違うところのライブラリを参照したのか謎なんですが。で正しい参照先にしても予想通りエラーは消えず。
で、エラー内容ですがシンプルに「arm64」のアーキテクチャに対応できていない御様子。libvpxのバージョンは「1.1.0」でWindows側と同じ。いずれにしても、こりゃlibvpxをarm64用にビルドし直さんとあかんとゆー結論に。
ここでさらに問題が。そもそもlibvpxの1.1.0てarm64に対応していないんですよね。1.2.0も1.3.0も。これには結構前に気づいていてどーにもならんとは思っていて放置気味ではあったんですよね。さすがにlibvpxのソースをarm64に対応できる力なぞ持ち合わせておりませんし。そんな折、4月に出たばっかりの1.4.0に「arm64-dawin-gcc」の文字がありまあああああす!!!
makeとか苦手なゾーンではありますが、パパ頑張ってarmv7とarm64に対応したlibvpxをなんとかかんとか生成。ライブラリの結合方法とかlibvpxのオプションが超不安ですが。UNIX初心者なんで、てかコマンドライン初心者なんで。libvpxも。
そんなこんなでarm64対応版「KeroRemote」が何とか完成。バージョンアップとゆー事でメモリー周りの修正をちょいと加えておりますので、アプリの安定性は増しているんじゃないかと思います。
で、Windows側のエンコードはlibvpxの1.1.0で、iOS側のデコードはlibvpxの1.4.0ではあるんですけど、問題無く動くよーなんで一安心。ちなみに、libvpxの1.3.0からVP9が利用出来るよーになっておりやすが、ビルドしたやつはオプションでVP9をdisableにしておりやす。当面使う予定無いですし。
ふと思ったんですが、armv7sってどこに行ってしまったでしょうか。armv7sのiPhone5でも動いたんでまー良いですけど。
そんなこんなでarm64対応版「KeroRemote」は無事アップルの申請も通過して既にリリースされておりやす。バージョンは「1.0.8」となりやした。たぶん問題無いと思いますけどどうぞ御試し下さい。おっと、まだ有料版を御持ちで無い方は無料版を御試し頂ければと思いますが、また近々有料版の無料キャンペーンをすると思いますので暫く御待ち下さいませ。