こんにちは、mokerです。
今回はタイトルの通りサブディレクトリのライブラリを読み込む方法についてです。
ちょっとした自作ライブラリを作ったのですが、「共通のlibraryフォルダに置いたり、ArduinoIDEに読み込ませるほどでもないな・・・」ということでサブディレクトリに配置したいと考えました。
検索したところ、日本語でヒットするのは、こちらのページ:Arduino用スケッチのサブルーチンをサブディレクトリに配置する: 猫にコ・ン・バ・ン・ワ
なるほどと思い、次のようにディレクトリを作成(思えばここで素直にサイトに従っておけばよかった)。
┬hogehoge.ino
└lib
└HogeLib
├HogeLib.h
└HogeLib.cpp
hogehoge.inoで「#include "lib/HogeLib/HogeLib.h"」とするとヘッダファイルは読み込まれました。
しかし、「Undefined referrence to HogeLib(int, int, etc)」というエラーが発生。つまり、cppファイルが読み込まれていないようなのです。
いろいろ調べてみると原因はこれ:Copy whole sketch source into temp folder to allow local inclusion by cmaglie · Pull Request #172 · arduino/arduino-builder · GitHub
つまり、hogehoge.inoと同じフォルダにsrcというディレクトリを作成し、その下にcppを配置しないとコンパイル時に読み込まれないようです(src直下じゃなくても大丈夫っぽい)。
そこで、次のような構造にしたらうまくいきました。
┬hogehoge.ino
└src
└HogeLib
├HogeLib.h
└HogeLib.cpp
keywords.txtは反応してないような気もしますが、普段使うのはvsCodeなのでまあどちらでもいいか、という結論に達しました。
<余談>
Arduino一時期触ってなかったので知らなかったのですが、1.5でライブラリ関連は前方互換が途絶えてるんですね・・・。
Githubにまとめられてました:Arduino IDE 1.5: Library specification · arduino/Arduino Wiki · GitHub
日本語だとこことか良くまとまっててよかったです:Arduino開発環境用の「ライブラリ」を作成してみる | KEI SAKAKI's PAGE.
2018年9月19日水曜日
2018年9月13日木曜日
GCEで無料でサーバーを立てるために頑張ったお話
お久しぶりです。mokerです。
さて、今回はタイトルの通り、Google Compute Engine(以下、GCE)を、Google Cloud Platform(以下、GCP)の無料枠の範囲内で使ってサーバー化してみようというお話です。
まずは、アカウントを取得します。ここは特に問題なかったので省略。
いよいよGCEのセットアップをしていきます。
参考にしたサイトはこちら:
GCE の無料枠のサーバを立るときに、初見でハマりそうなところ - Qiita
さて、今回はタイトルの通り、Google Compute Engine(以下、GCE)を、Google Cloud Platform(以下、GCP)の無料枠の範囲内で使ってサーバー化してみようというお話です。
まずは、アカウントを取得します。ここは特に問題なかったので省略。
いよいよGCEのセットアップをしていきます。
参考にしたサイトはこちら:
GCE の無料枠のサーバを立るときに、初見でハマりそうなところ - Qiita
ちょこちょこ無料枠の制限が複雑なところがあるので注意が必要です。
後、ネットワーク関連の設定は、GCPのハンバーガーメニュー > ネットワーキング > VPCネットワークから設定可能です(最初見つけられなかった)。
OSはDebian9 (Jessie) を選択。
SSHのrestartがsystemctlコマンドで出来なかった(後から気づいたけどsudoしなかったせいかも)ので、「sudo /etc/init.d/ssh restart」から実行してます。
エディタはnanoを使いました(初心者に優しくて好き)。
rootのパスワード設定について一切かかれてないけどやっておいた方がよさそうな気がします。
SSL設定の前にまずNginxサーバーを立てます。
参考にしたのはこちら:Debian 9 (Stretch) - Web サーバ Nginx 構築(Nginx 公式リポジトリ使用)! - mk-mode BLOG
OSはDebian9 (Jessie) を選択。
SSHのrestartがsystemctlコマンドで出来なかった(後から気づいたけどsudoしなかったせいかも)ので、「sudo /etc/init.d/ssh restart」から実行してます。
エディタはnanoを使いました(初心者に優しくて好き)。
rootのパスワード設定について一切かかれてないけどやっておいた方がよさそうな気がします。
SSL設定の前にまずNginxサーバーを立てます。
参考にしたのはこちら:Debian 9 (Stretch) - Web サーバ Nginx 構築(Nginx 公式リポジトリ使用)! - mk-mode BLOG
(ちなみにこのサイト、右クリックが無効化されてました。何故・・・?)
必要なところではsudoを忘れずに・・・(Nginxコマンドが認識されずに焦った)。
Nginxの設定は、ServerTokensとlocationを変更しました。
さて最初の参考記事に戻ってSSLの設定をしていきます。
certbotは面倒なことしなくてもapt installからいけるっぽいです。
SSL証明書を取得出来たら、Nginxにそれをインストールします。
なんだかんだうまくいかず、結局httpsへのリダイレクトは行わないで、sslの設定もdefault.confに書き込みました。
これで無事httpsでアクセスできるようになりました。
<後記>
sshがすごく重たくて、とってもストレスがたまりました・・・
レイテンシなのか、それともteratermなのか分からずじまい
登録:
投稿 (Atom)