Yosemiteでgccとg++でコンパイルする際にWarningが出る件

#はじめに
[Yosemite](http://en.wikipedia.org/wiki/OS_X_Yosemite)にしてから、CやC++で作ったプログラムを実行するために[gcc](https://gcc.gnu.org/)や[g++](https://gcc.gnu.org/)を利用してコンパイルするのですが、[Mavericks](http://ja.wikipedia.org/wiki/OS_X_Mavericks)のときには出なかった`warning`が出てきたのでこれから調査しようと思って今回の記事を立ち上げました。

なので、まだ解決したわけではなく、これから解決策があるかを検討していきたいと思っています。もし、この`warning`の原因や解決方法を知っている方がおられればご教授していただければ幸いです。

ちなみに`Error`ではなかったので、`./a.out`でビルドはできました。

# `warning`内容

`warning`の内容は次のようなものです。

```code:warningの内容
warning: couldn't understand kern.osversion '14.0.0
```

# 後日経過記録
### 2014.10.30 経過記録
ちょっとopenGLの開発を進めようとしたら今回のこの現象を思い出したので、再度調べました。
とりあえず、以前読もうと思って読んでなかった
* [gcc 4.9.1 in OS X Yosemite - gcc: warning: couldn’t understand kern.osversion ‘14.0.0']
の記事を読みました。
すると、Homebrewを使って解消できるのではという話が。
まず、
`brew edit gcc`
を実行すると、gccのコードを修正できる。
たぶんこれはvim。
なので、`i`を押すと修正。`esc`を押して`:wq`を入力して`Enter`を押せば上書き保存。もし上書きせず終了する場合は`esc`を押して、`:w`を入力して`Enter`を押せばできる。

```cpp:gcc
    require "formula"

    class Gcc < Formula
        def arch
            if Hardware::CPU.type == :intel
                if MacOS.prefer_64_bit?
                    "x86_64"
                else
                    "i686"
                end
            elsif Hardware::CPU.type == :ppc
                if MacOS.prefer_64_bit?
                    "powerpc64"
                else
                    "powerpc"
                end
            end
        end

        def osmajor
            `uname -r`.chomp
        end
```

修正する点というか、今回は`osmajor`関数の下に次のコードを継ぎ足すようにと書いてあった。

```
# edit by b.nelissen 20140805
# tobinjones patch gcc https://github.com/Homebrew/homebrew/issues/29845
patch do
      url "https://gcc.gnu.org/bugzilla/attachment.cgi?id=33180"
      sha1 "def0cb036a255175db86f106e2bb9dd66d19b702"
end
```

上書き保存したあと、`brew install gcc `を再度実行すればうまくいくはず！っと書いてあって実行しました...が、結果は自分はダメでした(^^;)

う〜ん。どうすれば...
っと思っていたら、そういえばHomebrewをupdateはこの前したけど、doctorしてないなぁっと思って`brew doctor`を行ったら、『gccが有効になっていません』というメッセージが。あ！これかっと思って、`brew link gcc`を実行して、再度`brew doctor`を実行したらWarningが消えていたのでこれでできるはず！ッと思って実行したら...結果はダメでした(^^;)

う〜ん。...ん？まだ下にWarningが残っている...Xcode6.1が出てるからインストールしろよ！っと。...(^^;)
これか。これなのか...?!

ということで、xcode6.1をAppStoreからインストール。
そして今、PreferencesのDownloadsでダウンロード＆インストール中です(^^;)
これがなかなか終わらない...。
これでダメだったらもう一度調べよう...。
ということで今日の記録はここまで。

### 2014.10.30 経過記録(2)
Qiitaが復旧作業中のため更新として記録が残っていないが、ちょっと上に書いた時から時間が立っているので新しく記録。
上の内容を追加で書いて、復旧作業中で更新できないことに病みながら研究のチケットで現状報告していた際に、あるQiitaの記事を発見してしまいました。

* [How to use llvm-gcc-4.2 on Yosemite](http://qiita.com/cielavenir/items/6175082e4d170b7a63f1)

このチケットは「kern.osversion」でGoogle先生に聞いてた時に出てきた記事だったのですが、この記事の中に

>If you want to keep some compatibility, you should not remove /usr/llvm-gcc-4.2.
The warning couldn't understand kern.osversion '14.0.0' can be ignored.

...え。答えが書いてある。

なんと、今まで出てたWarningはXcodeのgccだけではなく、純粋なgccを入れていたことで発生していたらしいです。(^^;)
つまり、『[GCC, the GNU Compiler Collection](https://gcc.gnu.org/)』からダウンロード＆インストールを以前したのが今回のWarningの原因。泣きたい。

まぁ、とりあえず原因がわかったので一安心しました(^^;)
てか、Appleは本格的にXcodeのgcc以外は使わせない方向に向かっているのか...?

# 関連記事
ちょっと調べたら以下の様な記事が出てきました。

* [gcc 4.9.1 in OS X Yosemite - gcc: warning: couldn’t understand kern.osversion ‘14.0.0'](http://stackoverflow.com/questions/26486163/gcc-4-9-1-in-os-x-yosemite-gcc-warning-couldn-t-understand-kern-osversion-1)
* [Build errors on latest OS X 10.10 Yosemite with Xcode 6 on GCC 4.9.0](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61432)
* [ree-1.8.7-* fails to built on Yosemite #654](https://github.com/sstephenson/ruby-build/issues/654)
* [[Bug target/61407] Build errors on latest OS X 10.10 Yosemite with Xcode 6 on GCC 4.8.3](https://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg426763.html)

まだちゃんと記事を読んでいないので、もしかしたらこちらの記事の中にヒントや解決策があるかもしれないです。
ちょっと今日は時間がないのはここまで。(2014.10.24)