2012-11-15

g++でコンパイル

C++のソースをコンパイルしてみた。
で、通らなかった (p_q、) なんかなぁ。バージョンは常に新しくしたいから結構あげちゃうんだけど、その度洗礼を受ける感じ?
今回の洗礼は、この2個。

で、環境はAWSのEC2で。
なんでかなぁ。とおもっていても仕方ないので、やっつける (`・ω・´+) キリッ
-------------

warning: enumeration value ‘***’ not handled in switch [-Wswitch]

-Wswitch というオプションによって、列挙型の項目すべてが指定されていない為にでる警告。


例えば、enum hoge {1, 2, 3}; とし、switch 文で case 1:... case 3:... のみで case 2:... を書いていない場合、この警告がでる。
default: を使ってしまうと、(書くのを忘れてしまった) case 2: の場合が当てはまり、警告は出ない。
用途によっては意図したものにならない可能性もあるので default を書かずおけば、パターンが確認できたりする。

warning: suggest parentheses around arithmetic in operand of ‘|’ [-Wparentheses]

-Wparentheses というオプションによって、括弧が省略されているため(優先順位がわからない)にでる警告。

例えば、 これだと警告が出ちゃいます。なので・・・・ とすると警告が出なくなります。
0x80 | ((0xFC&snd)>>2) これを評価した後で、+0x10 なのかあやふやだからだと思われます。


コンパイルオプションに付いてはこちらを参照
http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Warning-Options.html
http://www.geocities.jp/woodwood77777/gcc_gnu.htm

-Wall をつけているので、いろいろ警告が出た模様。。。。
headerファイルも変わったみたい。。。
http://gcc.gnu.org/gcc-4.3/porting_to.html
いろいろ大変ですね。おしまい (´・ω・`)

2012-11-06

AmazonEC2でEBS

AmazonEC2で使うストレージにEBSというのがあります。
ここではEBSを使えるようにする二つの方法を _φ(。_。*)メモメモします。
EBSとは Amazon Elastic Block Store の略で、私はイー・ビー・エスっていいます。

二つの方法
  • 新規にVolumeをAttachする場合
  • snapshotからVolumeを作成しAttachする場合

★共通の注意事項
インスタンスに Attach にできる Volume は同じ availability zone 内に限られるので、作成時に確認する。
パンくず:services > Compute & Networking > EC2
アマゾン ウェブ サービス にアクセス。

新規にVolumeをAttachする場合


主に、メインのストレージは既にあってログやバックアップを別のストレージに分ける場合に使用しています。
一般的なWebサービスを提供するインスタンスを作る場合、Root Partition(ルートパーティション)<OSが入っている部分>は、32GiBくらいにしておけば十分だと思っているからです。
一概には言えないですけどね (´・ω・`)

  1. 新規Volume(ヴォリューム)作成
    パンくず(左メニュー):ELASTIC BLOCK STORE > Volumes
    1. 右上メニュー:Create Volume
    2. 入力項目:
      Size: *** GiB ( GiB / TiB )
      Availability Zone: ap-northeast-1a
      ap-northeast-1b / ap-northeast-1b / ap-northeast-1b )

      Snapshot: --- No Snapshot ---
      Volume Type: Standard
    3. 『Yes, Create』
    4. 作ったVolumeが何か分かるように名前を付けておく。
      できたVolumeを選択すると下段に以下のタブとともに情報が表示される。
      [Details] , [Status Checks] , [Monitoring] , [Tags]
      パンくず:Tags > Add/Edit Tags
      Key=Name , Value=任意の名前 --> Save Tags
  2. インスタンスにAttach(アタッチ)する
    1. 右上メニュー:Attach Volume
    2. 入力項目:
      Volume: vol-******* in <availability zone>
      Instances: [Select Instance] in <availability zone>
      Device: /dev/sd*
    3. 『Yes, Attach』
  3. Volumeを使えるようにする
    1. 使えるファイルシステムにフォーマット
    2. マウント
    3. インスタンスを再起動しても自動的にマウントさせる

これで、ディスクが追加されたように使えます ( ̄ー+ ̄)
ちなみに、RootPartitionではないのでインスタンスをSTOPしなくても追加されます
つぎは、snapshotからEBSをつくりRootPartitionにする方法を _φ(。_。*)メモメモします。

snapshotからVolumeを作成しAttachする場合