Qt SDK 1.1.4のインストールでの不具合(MAC)

23 views
Skip to first unread message

himamura

unread,
Dec 19, 2011, 6:07:01 AM12/19/11
to 関東Qt勉強会
himamuraです。

今までQtのデモのコンパイルとか、ちゃんと通って動いていたと思うのですが
なぜか、デモをビルドしようとすると下記のエラーになります。

:-1: エラー: g++-4.2: No such file or directory

気持が悪いので、Xcodeもuninstall、Qtもuninstallして再度
Xcode、Qt_SDK_Mac64_online_v1_1_4_en.dmg
をインストールしたのですが、状況がかわりません。

前と変わったのは、Qt Creatorが2.4.0に自動的になったぐらいなのですが、
誰か同じような症状が出ている方はいらっしゃるでしょうか?
Qtは4.7.4 (64 bit) で、OSはLIONです。

それと
Qt Creator -> 環境設定… -> Qt4 -> Qt Versions
が無くなっていて、Qt のライブラリが正しく設定されていることの確認が
できないのですが、どこに行っちゃんたんでしょうか?

Kenji Sugita

unread,
Dec 19, 2011, 7:46:08 AM12/19/11
to qtk...@googlegroups.com
杉田です。

On 2011/12/19, at 20:07, himamura wrote:

> himamuraです。
>
> 今までQtのデモのコンパイルとか、ちゃんと通って動いていたと思うのですが
> なぜか、デモをビルドしようとすると下記のエラーになります。
>
> :-1: エラー: g++-4.2: No such file or directory
>
> 気持が悪いので、Xcodeもuninstall、Qtもuninstallして再度
> Xcode、Qt_SDK_Mac64_online_v1_1_4_en.dmg
> をインストールしたのですが、状況がかわりません。
>
> 前と変わったのは、Qt Creatorが2.4.0に自動的になったぐらいなのですが、
> 誰か同じような症状が出ている方はいらっしゃるでしょうか?
> Qtは4.7.4 (64 bit) で、OSはLIONです。

Twitter に書きましたが、GccToolChain::mkspec() で、GCC 4.2なら、macx-g++42
とハードコードしているだけなのと、以下のように Xcode のインストールのされ
方に相違もありました。Xcode 4.2 と Xcode 4.2.1 での違いかもしれません。

==== オフィスの Lion
$ ls -l /usr/bin/*gcc*
lrwxr-xr-x 1 root wheel 12 10 31 09:59 /usr/bin/gcc@ -> llvm-gcc-4.2
lrwxr-xr-x 1 root admin 52 10 31 09:59 /usr/bin/i686-apple-darwin11-llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-gcc-4.2
lrwxr-xr-x 1 root admin 32 10 31 09:59 /usr/bin/llvm-gcc@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
lrwxr-xr-x 1 root admin 32 10 31 09:59 /usr/bin/llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
$ gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$

Qt Creator は、「ビルドして実行」の「Qt バージョン」で、qmake の mkspec
が macx-g++ と判断していますが、qmake の実行では、前述のハードコード値
macx-g++42 を qmake -spec に渡してしまっています。

==== 自宅の Lion
$ ls -l /usr/bin/*gcc*
lrwxr-xr-x 1 root wheel 12 10 22 11:47 /usr/bin/gcc@ -> llvm-gcc-4.2
-rwxr-xr-x 1 root wheel 113024 5 16 2011 /usr/bin/gcc-4.2*
-rwxr-xr-x 1 root wheel 562992 5 16 2011 /usr/bin/i686-apple-darwin11-gcc-4.2.1*
lrwxr-xr-x 1 root admin 52 10 22 11:47 /usr/bin/i686-apple-darwin11-llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-gcc-4.2
lrwxr-xr-x 1 root admin 32 10 22 11:47 /usr/bin/llvm-gcc@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
lrwxr-xr-x 1 root admin 32 10 22 11:47 /usr/bin/llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
$ gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$

こちらは、gcc-4.2 があるのでうまく行ってしまいます。

# iOS の SDK も gcc と gcc-4.2 で同様なことがありました。

対処方法は、gcc-4.2 のシンボリックリンクを作ってしまう。あるいは、
GccToolChain::mkspec() でハードコードで済ませずに、gcc-4.2 があるか
どうかをチェックして、なければ、フォールバックで macx-g++ にするようにでもする
とかでしょうか。現実的にはこうしても問題はありません。

> それと
> Qt Creator -> 環境設定… -> Qt4 -> Qt Versions
> が無くなっていて、Qt のライブラリが正しく設定されていることの確認が
> できないのですが、どこに行っちゃんたんでしょうか?

これは、「ビルドして実行」になっていると以下のところに書かれていました。

http://labs.qt.nokia.com/2011/12/13/qt-creator-2-4-0-released/
If you are confused where the Qt version settings have gone:
They are now in the “Build & Run” category, together with the tool
chain and the general project settings.

himamura

unread,
Dec 20, 2011, 11:35:41 PM12/20/11
to qtk...@googlegroups.com
杉田さん

himamuraです。いつもお世話になります。
返事が遅くなりました。

私の能力からして、シンボリックリンクでの対応をしてみました。

macbook-pro:/ himamura$ ls -l /usr/bin/*gcc*
lrwxr-xr-x 1 root wheel 12 12 19 18:29 /usr/bin/gcc -> llvm-gcc-4.2
-rwxrwxr-x 2 root admin 117152 11 4 06:09 /usr/bin/gcc-4.2
lrwxr-xr-x 1 root admin 52 12 19 18:29
/usr/bin/i686-apple-darwin11-llvm-gcc-4.2 ->
../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-gcc-4.2
lrwxr-xr-x 1 root admin 32 12 19 18:29 /usr/bin/llvm-gcc ->
../llvm-gcc-4.2/bin/llvm-gcc-4.2
lrwxr-xr-x 1 root admin 32 12 19 18:29 /usr/bin/llvm-gcc-4.2 ->
../llvm-gcc-4.2/bin/llvm-gcc-4.2

と言う事で、/use/bin/ にgcc-4.2ができたいのですが、状況が変わりませんでした。
やり方としては

$ sudo ln ../llvm-gcc-4.2/bin/llvm-gcc-4.2 gcc-4.2

としたのですが間違っていますでしょうか?


2011年12月19日21:46 Kenji Sugita <ke...@j04.itscom.net>:

Kenji Sugita

unread,
Dec 24, 2011, 9:49:48 PM12/24/11
to 関東Qt勉強会
今村さん

遅くなって済みません。既に解決されているかもしれませんが。

On 12月21日, 午後1:35, himamura <hironobu.imam...@gmail.com> wrote:

> macbook-pro:/ himamura$ ls -l /usr/bin/*gcc*
> lrwxr-xr-x 1 root wheel 12 12 19 18:29 /usr/bin/gcc -> llvm-gcc-4.2
> -rwxrwxr-x 2 root admin 117152 11 4 06:09 /usr/bin/gcc-4.2
> lrwxr-xr-x 1 root admin 52 12 19 18:29
> /usr/bin/i686-apple-darwin11-llvm-gcc-4.2 -> ../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-gcc-4.2
> lrwxr-xr-x 1 root admin 32 12 19 18:29 /usr/bin/llvm-gcc -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
> lrwxr-xr-x 1 root admin 32 12 19 18:29 /usr/bin/llvm-gcc-4.2 -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
>
> と言う事で、/use/bin/ にgcc-4.2ができたいのですが、状況が変わりませんでした。
>
> やり方としては
>
> $ sudo ln ../llvm-gcc-4.2/bin/llvm-gcc-4.2 gcc-4.2

ハードリンクになっているので、-s を付けてシンボリックリンクにした方が
何にリンクしているかが分かりやすいと思います。

> としたのですが間違っていますでしょうか?

済みません引用し仕方がまずかったです。g++-4.2 の方もシンボリックリンクしてみてください。

himamura

unread,
Dec 24, 2011, 11:38:15 PM12/24/11
to qtk...@googlegroups.com
杉田さん

いや、まだ、解決できてなくて ^^;

> 済みません引用し仕方がまずかったです。g++-4.2 の方もシンボリックリンクしてみてください。

すみません。私、この程度のヒントでは解決できないんです ^^;
何を何にシンボリックリンクすれば良いのでしょうか?

2011年12月25日11:49 Kenji Sugita <ke...@j04.itscom.net>:

Kenji Sugita

unread,
Dec 24, 2011, 11:52:57 PM12/24/11
to qtk...@googlegroups.com
今村さん

On 2011/12/25, at 13:38, himamura wrote:

> 杉田さん
>
> いや、まだ、解決できてなくて ^^;
>
>> 済みません引用し仕方がまずかったです。g++-4.2 の方もシンボリックリンクしてみてください。
>
> すみません。私、この程度のヒントでは解決できないんです ^^;
> 何を何にシンボリックリンクすれば良いのでしょうか?

g++ と同じリンクにしてみてください。

# cd /usr/bin
# ls -l g++
lrwxr-xr-x 1 root wheel 12 10 31 09:59 g++@ -> llvm-g++-4.2
# ln -s llvm-g++-4.2 g++-4.2

gcc-4.2 の方は、gcc-4.2 のハードリンクを rm で切ってから、再度シンボリックリンクしてください。

# rm gcc-4.2
# ln -s llvm-gcc-4.2 gcc-4.2

これで、Qt Creator 2.4 で使えるようになるはずです。

himamura

unread,
Dec 24, 2011, 11:55:29 PM12/24/11
to qtk...@googlegroups.com
杉田さん

うぅぅ~ ありがとうございます m(__)m
すぐにやってみます!

2011年12月25日13:52 Kenji Sugita <ke...@j04.itscom.net>:

himamura

unread,
Dec 25, 2011, 12:20:04 AM12/25/11
to qtk...@googlegroups.com
杉田さん

ありがとうございました。g++が無いというエラーは無くなりました。

けど、ビルドするとエラーの出まくりなので、また、色々見てみます。
前は、サンプルは簡単にビルドできたのにな~

2011年12月25日13:55 himamura <hironobu...@gmail.com>:

Kenji Sugita

unread,
Dec 25, 2011, 12:48:52 AM12/25/11
to qtk...@googlegroups.com
今村さん

On 2011/12/25, at 14:20, himamura wrote:

> ありがとうございました。g++が無いというエラーは無くなりました。

うまく行って、よかったです。

> けど、ビルドするとエラーの出まくりなので、また、色々見てみます。
> 前は、サンプルは簡単にビルドできたのにな~

エラーメッセージを教えていただけますか。何か分かるかもしれません。

Kenji Sugita

unread,
Dec 25, 2011, 6:49:45 PM12/25/11
to 関東Qt勉強会
今村さん

> GccToolChain::mkspec() でハードコードで済ませずに、gcc-4.2 があるか
> どうかをチェックして、なければ、フォールバックで macx-g++ にするようにでもする
> とかでしょうか。現実的にはこうしても問題はありません。

12/15 に、上記の通りの修正が Qt Creator 2.4 に入っていました。Qt Creator 2.4
をリポジトリから引き出してビルドすれば正しく動作するはずです。
Reply all
Reply to author
Forward
0 new messages