3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

はじめに

Yosemiteにしてから、CやC++で作ったプログラムを実行するためにgccg++を利用してコンパイルするのですが、Mavericksのときには出なかったwarningが出てきたのでこれから調査しようと思って今回の記事を立ち上げました。

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

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

warning内容

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

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を押せばできる。
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の記事を発見してしまいました。

このチケットは「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』からダウンロード&インストールを以前したのが今回のWarningの原因。泣きたい。

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

関連記事

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

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

3
4
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?