もう19時か、
2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50 [PR]ガジェット ニュース[PR]  

Cygwin + MinGW + GCC 相談室 Part 4

1 :デフォルトの名無しさん:2008/09/13(土) 00:38:02
Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。

過去スレ:
cygwin + mingwn + gcc 相談室 Part3
http://pc11.2ch.net/test/read.cgi/tech/1177944767/
cygwin + mingwn + gcc 相談室 Part2
http://pc11.2ch.net/test/read.cgi/tech/1126103347/
cygwin + mingwn + gcc 相談室
http://pc8.2ch.net/test/read.cgi/tech/1058134693/

関連サイト:
Cygwin http://www.cygwin.com/
MinGW http://www.mingw.org/

関連スレッド:
GCCについて part8
http://pc11.2ch.net/test/read.cgi/tech/1192201659/
【激遅】AppleGCC【絶望】
http://pc11.2ch.net/test/read.cgi/tech/1173267844/

642 :SgqcXuBDWWHrdWG:2009/10/23(金) 22:24:58
If you do have a choice of surgeon or hospital, ask the surgeon the following questions: What are your qualifications? ,

643 :デフォルトの名無しさん:2009/10/24(土) 10:04:51
On some systems, uppercase indicates that a default value has been specified.

644 :デフォルトの名無しさん:2009/11/02(月) 03:00:41
MinGW g++ 3.4でビルドして作成したライブラリを
MinGW g++ 4.4.0でビルドしたソースとリンクして使用できますか?

645 :デフォルトの名無しさん:2009/11/02(月) 08:29:01
>>644
丁度Qtでそれに引っ掛かって,某フォーラムでバイナリの互換性がないことを
教えてもらったばかり。

但し,俺のところではTDM's MinGW gcc(g++) 4.4.1で,本家MinGW g++ 3.4.5で
ビルドしたライブラリが使えている(完全に大丈夫かどうかは不明)。
本家のg++4.4.0は,本家g++ 3.4.5でビルドしたライブラリが使えない。

646 :デフォルトの名無しさん:2009/11/02(月) 15:43:12
>>645
情報ありがとうございます。
やっぱり使えないんですね。

647 :デフォルトの名無しさん:2009/11/03(火) 02:57:00
MinGWでビルドしたdllと、それをダイナミックリンクしているexeの組み合わせが
Windows7で動作しない(DLLを読み込めていない?ちなみにXP/VistaではOK)らしいのですが、
Win7との相性についてどこかに情報ありますでしょうか?

自分で試せるのはXPとVistaだけなので状況がさっぱり...


648 :デフォルトの名無しさん:2009/11/03(火) 21:10:43
He_251110.bz2

649 :デフォルトの名無しさん:2009/11/03(火) 21:35:50
ttp://www1.axfc.net/uploader/He/so/251110

650 :デフォルトの名無しさん:2009/11/03(火) 21:45:52
export PATH=$PATH:/mingw/bin:/mingw32/bin:/usr/local/bin:$HOME/local/bin
export GCC_VER="4.4.0"

export LIBRARY_PATH=/mingw/lib:/mingw32/lib:/mingw/lib/gcc/mingw32/${GCC_VER}:/usr/local/lib:$HOME/local/lib
export LD_LIBRARY_PATH=$LIBRARY_PATH
export LD_RUN_PATH=$LIBRARY_PATH

export INCLUDE_PATH=/mingw/include:/mingw32/include:/mingw/lib/gcc/mingw32/${GCC_VER}/include:/usr/local/include:$HOME/local/include
export C_INCLUDE_PATH=$INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$INCLUDE_PATH


コンパイルに必要な環境変数を.bashrcにかいたのだが
あと何か定義しておいたらいい環境変数はある?

651 :デフォルトの名無しさん:2009/11/03(火) 21:55:29
INCLUDE_PATHにlibのpathって入れるんだっけ

652 :デフォルトの名無しさん:2009/11/04(水) 09:54:35
>>651
gcc3系統とgcc4系統ではディレクトリ構成が変わっていて,gcc4系統の場合はlibの奥にもヘッダファイルが
あるので,入れる必要があります。

653 :デフォルトの名無しさん:2009/11/04(水) 23:32:49
MinGW使うなら、PATH以外の環境変数は設定いらなくね?

654 :デフォルトの名無しさん:2009/11/07(土) 00:01:10
友達がプログラミング勉強したいっていってるんだけどやっぱ

進める環境としてはdev c++ とmingwがいいかな

655 :デフォルトの名無しさん:2009/11/07(土) 00:03:49
VC2008EEじゃねーのか?

656 :デフォルトの名無しさん:2009/11/07(土) 00:11:45
>>654
単にプログラミングの勉強ならば、
WindowsでVisualBasicが面倒なくて鉄板でしょ。
Unixの世界は、環境構築とツールの使用法の習得だけで
挫折する人がいるくらいのカオスな世界だから、
できれば知らない方が幸せよ。

657 :デフォルトの名無しさん:2009/11/07(土) 00:34:09
>>656
> 単にプログラミングの勉強

変ったジャンルですね。

658 :654:2009/11/07(土) 04:16:13
>>656

僕的にはdev c++のほうがインストールが早いし、設定、認証が要らないから
こっちのほうが簡単だと思うんですけどね。やっぱVCとかVBですかね

659 :デフォルトの名無しさん:2009/11/07(土) 08:45:22
Dev-C++はTDM-MinGWと組み合わせて俺もインストールしてあるけど
何と言ってもメニューが全部英語なのと、gccそのものがオプションが複雑で
決して初心者向けではないという事情を考えてVCを推している

でも自分でその壁を乗り越えられる人であればgccの方が標準準拠度は
高い

660 :デフォルトの名無しさん:2009/11/07(土) 13:56:55
お勉強ならLL言語でいいでしょ。
CUIベースでC, C++なんてやってもイベント丼の概念が理解できなくなる。

661 :デフォルトの名無しさん:2009/11/07(土) 14:22:10
つまり Tcl/Tk やっとけということだな

662 :デフォルトの名無しさん:2009/11/08(日) 00:30:47
>>659
日本語化されたのが、確か2つくらいあったはず。sけいし氏のヤツは割りと有名
かと思ってたんだがそうでもないのか。
一時VC2003と交互で使ってたけど、x64環境に移行してからはVC2008しかt

これ以上はスレチだな。

663 :デフォルトの名無しさん:2009/11/10(火) 00:33:10
Dev-c++ と一緒に入ってくる gcc3.4.2 を
TDM-MinGW gcc4.4.1 に入れ替えたのですが、
gcc3.4.2
・iostreamをincludeするだけで、EXIT_SUCCESSマクロもatof()関数も使用できた
・iostreamをincludeするだけで、clock()関数が使用できた
gcc4.4.1
・cstdlibをincludeしないと、EXIT_SUCCESSマクロもatof()も使用できない
・ctimeをincludeしないと、clock()関数が使用できない

という挙動になります。
どっちが正しいんですか?

664 :デフォルトの名無しさん:2009/11/10(火) 00:38:09
>>663
4.4.1 の方がより規格に沿っていると言える。

665 :デフォルトの名無しさん:2009/11/20(金) 23:46:28
MinGWで日本語を表示するにはどうすればいいんですかー?(>_<)

666 :デフォルトの名無しさん:2009/11/20(金) 23:49:25
>>665
-finput-charset=cp932 -fexec-charset=cp932
をコンパイル時に付ける
するとEUCに変換してからコンパイルしてくれるのでダメ文字の問題は起きない

667 :デフォルトの名無しさん:2009/11/20(金) 23:51:16
UTF-8

668 :デフォルトの名無しさん:2009/11/21(土) 11:09:43
>>666
それ、本家MinGWのgcc4系だと効かない。cc1.exe、cc1plus.exeにやlibiconvがリンクされてないんだそうだ。
gcc3.4.5のcc1とcc1plusで上書きすればOKという情報もあるけど、俺のところじゃダメだった。

TDM's MinGW gcc4.4.1なら大丈夫。

>>667
もちろんそれでもOK。ただ、これまでに書きためた大量のSHIFT_JISのソースを使ったり、
3rd Partyのヘッダーファイル(例えば何等かのIOボードにボードに付いてくるライブラリの
ヘッダーファイル)を使ったり、他のコンパイラと共用するソースファイルを使ったり
する場合にはそうも行かない場合もある。

669 :デフォルトの名無しさん:2009/11/21(土) 15:34:19
665ですが、IDEの起動オプションをUTF-8にしたら表示されました。
お騒がせしました。


670 :デフォルトの名無しさん:2009/11/21(土) 16:17:35
>>668
Windowsのシステムロケールを日本語から英語に変更するといい

671 :デフォルトの名無しさん:2009/11/21(土) 19:16:57
>>668
既にバイナリの gcc 4 がある状況なら
gcc 4 をビルドするのはたやすい。
libiconv 有効にしてビルドしれ

672 :668:2009/11/22(日) 00:12:22
>>670
レスサンクスなんだが...

> Windowsのシステムロケールを日本語から英語に変更するといい

これは >>668 に書いたうちの、どのことについて言ってるの?


>>671

> 既にバイナリの gcc 4 がある状況なら
> gcc 4 をビルドするのはたやすい。
> libiconv 有効にしてビルドしれ

あぁそれでいいのか。アリガト。
ただ最近ビルドしてばかりしていてチト疲れた。

本家MinGWの最新バイナリインストーラー(5.1.6)のgccは4.4.0でなかったり、
libiconvがリンクされていない抜けがあったり、更新が遅かったりで、
TDM版の方が信頼できると感じてる。

TDM版の最初の4.4.1でCPU利用率が100%近くになってしまう問題が発覚した
時もHPの上の方に「Warning!」としてちゃんと説明が書いてあったし、修正の
対応も比較的早かったしね。

それと試してないんだけど、>>556の問題も気になる(TDM版固有の問題なのか、
gccのバージョンの問題なのか) 。

とりあえずTDM版4.4.1で問題ないので、俺は当面これで行こうと思う。

673 :デフォルトの名無しさん:2009/11/22(日) 09:33:54
>>672
インストーラが 4.4.0 を入れないのは怠慢ではなくて、そういう選択をしたのだと思う。
まだ実績が不充分ってこともあるし、互換性の問題もある。
エンドユーザーにはなるべく枯れたバージョンを提供する方がいいという考え方はあり得る。

libiconv のリンクも、世界全体から見れば案外少ない状況でしか必要としないし、
そもそもソースコードにマルチバイト文字列をハードコーディングするのは悪いスタイルだよ。

674 :デフォルトの名無しさん:2009/11/22(日) 09:41:23
よがりごえ

675 :デフォルトの名無しさん:2009/11/22(日) 10:55:24
>>673
本家擁護も結構だが、

> インストーラが 4.4.0 を入れないのは怠慢ではなくて、そういう選択をしたのだと思う。
> まだ実績が不充分ってこともあるし、互換性の問題もある。

そんなに4.4.0に不安があるのなら、gccだけ独立して正式リリースにしなければいいのに。

そもそも本家はgcc3系とgcc4系でバイナリの互換性がなくなってしまった。
ディレクトリ構成も大きく変更してしまった。

これって良いことなのか?

> エンドユーザーにはなるべく枯れたバージョンを提供する方がいいという考え方はあり得る。

エンドユーザーが自分で選択できるようにすればよいだけの話し。

> libiconv のリンクも、世界全体から見れば案外少ない状況でしか必要としないし、

そう。そういう少数派への配慮が足りない所が問題。

> そもそもソースコードにマルチバイト文字列をハードコーディングするのは悪いスタイルだよ。

余計なお世話。そんなのは状況次第。
日本人の工場オペレーターしか使わないことがわかっているソフトだったら。
ハードコーディングしてしまった方が、短い工数で作れる。

多国語対応する必要があるソフトなら、リソースDLL使うとか、独自のライブラリで言語設定に
あわせてファイルから文字列を読込むとかしてる。

676 :デフォルトの名無しさん:2009/11/22(日) 13:14:30
>>675

> そんなに4.4.0に不安があるのなら、gccだけ独立して正式リリースにしなければいいのに。

> エンドユーザーが自分で選択できるようにすればよいだけの話し。

大半のユーザーはとりあえずバージョンナンバーが大きい方を選択してしまうよ。
エンドユーザーってのはそんなもんだろうが。

> そもそも本家はgcc3系とgcc4系でバイナリの互換性がなくなってしまった。
> ディレクトリ構成も大きく変更してしまった。

バイナリ互換性が維持されればそれに越したことはないんだけど、
これは根本的な設計から大幅に変わってしまったので、仕方ないとしか…

> そう。そういう少数派への配慮が足りない所が問題。

> 余計なお世話。そんなのは状況次第。

配慮したらその分だけファイルサイズも増える。
少数派に配慮したら多数派に多少なりとも不便を強いるじゃないか。
ファイルサイズ程度なら些細な問題だけど、依存ライブラリが増えると管理が面倒なんじゃね?
これは開発リソースの割り振りの問題だろう。
それに意見する方が余計なお世話ってもんだろ。
開発状況は libiconv をリンクしたくない状況だったんだろ。

677 :デフォルトの名無しさん:2009/11/22(日) 15:55:37
>>676
> 大半のユーザーはとりあえずバージョンナンバーが大きい方を選択してしまうよ。
> エンドユーザーってのはそんなもんだろうが。

何が言いたいのかわからん、俺には>>673に書いてあることと矛盾してるようにしか
受け取れない。悪いがちゃんと説明してくれないか?

> バイナリ互換性が維持されればそれに越したことはないんだけど、
> これは根本的な設計から大幅に変わってしまったので、仕方ないとしか…

TDM版gcc4.4.1は本家のgcc3.4.5とバイナリレベルの互換性を保ってるよ。

> これは開発リソースの割り振りの問題だろう。
> それに意見する方が余計なお世話ってもんだろ。
> 開発状況は libiconv をリンクしたくない状況だったんだろ。

ファイルサイズの話はかなり無理矢理感があるなあぁ。
で。本家のgcc4.4.0の説明書き(gcc-4.4.0-mingw32-notes.txt)には、必要ファイルだけ
分割してダウンロードする場合、

> libiconv Runtime [REQUIRED]
> libiconv-1.13-mingw32-dll-2.tar.gz

と書いてあるんだが(つまり必須と言うこと)。リンクを怠ったか、ドキュメントの修正を
怠ったかのどっちかだとしか思えない。どっちみち瑕疵であることに変わりはない。
で、TDM氏のHPには、

> TDM-GCC is not formally affiliated with or endorsed by the MinGW project
> (although several MinGW team members make use of it)

なんて書いてある。それなら性格がきっちりしていそうなTDM氏に本家のチームに
加わってもらえば、もっと良くなると思うんだが...

678 :デフォルトの名無しさん:2009/11/22(日) 17:17:53
>>677
> 何が言いたいのかわからん、俺には>>673に書いてあることと矛盾してるようにしか
> 受け取れない。悪いがちゃんと説明してくれないか?

問題点を認識せずにとりあえず最新版を入れてしまうユーザーもいるから
インストーラは 4 を選ばせないようにしたんじゃね? と言いたかった。

> TDM版 gcc4.4.1 は本家のgcc3.4.5とバイナリレベルの互換性を保ってるよ。

んなわけねーだろ。 何が出来ることをもってバイナリ互換性って呼んでるの?

> ファイルサイズの話はかなり無理矢理感があるなあぁ。

そりゃそーだ。 だから些細なことって書いてるだろ。
結論は開発リソースの割り振りだ。
どっかには問題が残ることもあるだろうさ。
リソースは有限だし、どの問題をどこまで解決するか、
時には手抜きするのもひとつの選択だということだ。

TDM 版だって致命的な問題があったものを警告を書くだけで出したわけだろう?
本家じゃやっちゃいけないことだけど、 TDM 版はそれでも出すという選択をしたわけだ。

一応誤解が無いようにいっとくけど、俺は本家を擁護したいわけじゃないよ。
どこを重要視するかが違うだけのことであって、どっちが良いとか言えるものじゃないというのが俺の主張。

もちろん、本家がよりよくなってくれるのが最も望ましい。

679 :デフォルトの名無しさん:2009/11/22(日) 18:31:45
>>678
> 問題点を認識せずにとりあえず最新版を入れてしまうユーザーもいるから
> インストーラは 4 を選ばせないようにしたんじゃね? と言いたかった。

了解。ただ、インストーラーでgcc3.4.5をインストールした後でgcc4を入れようと思うと簡単じゃない
(ディレクトリ構成が変わっているから戸惑う)。そういう点で問題だと俺は言いたい。

> んなわけねーだろ。 何が出来ることをもってバイナリ互換性って呼んでるの?

GUIツールキットQt 4.5のMinGW用のバイナリインストーラーでインストールされるライブラリは本家の
gcc3.4.5でビルドされたものだが、TDM gcc4.4.1でビルドしたアプリからちゃんと使えた。

ところがQt 4.6のbeta-1には、本家のgcc3.4.5でビルドされたライブラリの他に、本家のgcc4.4.0(Qtライブラリ
ではなくてコンパイラそのもの)もバンドルされてきた。ところがこの4.4.0でアプリをビルドすると、エラーが
出てしまう(3.4.5でビルドされたライブラリと互換性がない)。

Qt 4.6 RCになって、ライブラリも本家のgcc4.4.0でビルドされたものに変わった。そうしたら今度はアプリを
TDM gcc4.4.1でビルドするとエラーが出る。仕方なくQt 4.6 RCのソースからTDM gcc4.4.1でQtをビルドしたら
うまく行った。これでわかるだろ?

> TDM 版だって致命的な問題があったものを警告を書くだけで出したわけだろう?
> 本家じゃやっちゃいけないことだけど、 TDM 版はそれでも出すという選択をしたわけだ。

出した後から発覚したんで、緊急で警告を書いたんだよ。だから「修正するまで、一つ前の4.3.3を使ってくれ」
って書いてあった。テストが足りなかったのは確かだが、やるべきことを迅速にやっている。
本家はlibiconvがリンクされていなくても、アナウンス一つしてないんじゃないか?3系と4系でバイナリ互換性
がないというアナウンスも何処かにある?

> もちろん、本家がよりよくなってくれるのが最も望ましい。

俺だって本家を貶すのが目的じゃない。ただ、もっとしっかりしてくれと言いたい。
現状だとTDM版の方が良い選択だと言わざるを得ない状況だ。

680 :デフォルトの名無しさん:2009/11/22(日) 20:33:05
>>679
> 了解。ただ、インストーラーで gcc3.4.5 をインストールした後で gcc4 を入れようと思うと簡単じゃない
> (ディレクトリ構成が変わっているから戸惑う)。そういう点で問題だと俺は言いたい。

単に展開するだけだし、俺はディレクトリ構成が変わっていることに気づいてさえいなかったぜ!!
(後から気付いたけど。 これは俺がいいかげんなだけかもしれん。)

> GUIツールキットQt 4.5のMinGW用のバイナリインストーラーでインストールされるライブラリは本家の
> gcc3.4.5でビルドされたものだが、TDM gcc4.4.1でビルドしたアプリからちゃんと使えた。

TDM がどうとかいう以前に gcc の変更だ。 実験してみた結果がどうあれ偶然。
何が起こってもおかしくない。 鼻から悪魔。

> ところがQt 4.6のbeta-1には、本家のgcc3.4.5でビルドされたライブラリの他に、本家のgcc4.4.0(Qtライブラリ
> ではなくてコンパイラそのもの)もバンドルされてきた。ところがこの4.4.0でアプリをビルドすると、エラーが
> 出てしまう(3.4.5でビルドされたライブラリと互換性がない)。

エラーの内容が気になる。
エラーが単なる undefined reference の場合、環境構成上のしょーもないことである場合がある。

> テストが足りなかったのは確かだが、やるべきことを迅速にやっている。

迅速だけどテストが足りなかったんだろ。 だからそれは単にスタンスの違いなんだって。

> 本家はlibiconvがリンクされていなくても、アナウンス一つしてないんじゃないか?

required の記述が間違っとるが、どれどれをリンクしたなんていちいち書くかよ。

> 3系と4系でバイナリ互換性がないというアナウンスも何処かにある?

これは常識だと思ってたから疑わなかったけど、一見さんにわかる形では無いかも。
GCC のサイトの方にも目立つようには書いてない。

681 :デフォルトの名無しさん:2009/11/22(日) 21:06:27
きめえ話してんじゃねーよ
オープンソースなんだから好きにやれや

682 :デフォルトの名無しさん:2009/11/22(日) 22:09:05
>>681
まったくそのとおりだ。 だから好きに議論する。

便宜上「本家」なんていってるがそれほど絶対的なものではない。
それぞれのスタンスがあるのは当然。

と、言うわけで >>679 が主張するように「TDM 版の方が良い選択」
とする主張を否定するわけじゃないし、その主張が正しいと言える状況はあるんだろう。
でも、そうじゃない状況もある。 それだけの話。

683 :デフォルトの名無しさん:2009/11/22(日) 22:19:01
話長いw

684 :デフォルトの名無しさん:2009/11/22(日) 22:49:18
>>680

> 単に展開するだけだし、俺はディレクトリ構成が変わっていることに気づいてさえいなかったぜ!!
> (後から気付いたけど。 これは俺がいいかげんなだけかもしれん。)

環境変数変えなきゃダメだろ?本当に動かしてみたんかね?
少なくともC_INCLUDE_PATHやCPLUS_INCLUDE_PATH、LIBRARY_PATHは変更する必要がある。もしかして単に
展開しただけで環境変数変えてないから、gcc4.4.0使ってるつもりで実は3..4.5のままだったりしてw

> TDM がどうとかいう以前に gcc の変更だ。 実験してみた結果がどうあれ偶然。
> 何が起こってもおかしくない。 鼻から悪魔。
(中略)
> > 3系と4系でバイナリ互換性がないというアナウンスも何処かにある?
>
> これは常識だと思ってたから疑わなかったけど、一見さんにわかる形では無いかも。
> GCC のサイトの方にも目立つようには書いてない。

そんないい加減な情報じゃなくて、しっかり「ここに書いてある」って示して欲しい。そうじゃないと、アンタに「偶然」
だの「鼻から悪魔」なんて書く資格はない。単に実験のレベルじゃないよ。暫く使ってるが、何の問題もない。

> > テストが足りなかったのは確かだが、やるべきことを迅速にやっている。
>
> 迅速だけどテストが足りなかったんだろ。 だからそれは単にスタンスの違いなんだって。

違う。本家はアナウンスすべきことをアナウンスしていない。例えば、MinGW5.1.6のgccは4.4.0じゃなくて3.4.5だって
ことはどこに書いてある?要するにいい加減すぎるんだよ。「スタンスの違い」ってのが「ユーザー重視」と「ユーザー
軽視」の違いってのなら納得できるが。

例えば、ttp://www.mingw.org/wiki/GCCStatus は2009-04-20 以降更新されておらず、現状と合ってない。
SourceForgeのファイルツリーを見ても、「Automated MinGW Installer」のところにリリースノートすら置いてない。

685 :デフォルトの名無しさん:2009/11/22(日) 22:57:14
MinGW、いったいいつになったら
gcc4採用するんだよ・・・

686 :デフォルトの名無しさん:2009/11/23(月) 01:04:40
goはbuildできますか?

687 :デフォルトの名無しさん:2009/11/23(月) 01:14:41
出来ません。

688 :デフォルトの名無しさん:2009/11/23(月) 01:22:54
>>685
TDM-MinGWはとうにgcc4.4.1なんだが・・・

689 :デフォルトの名無しさん:2009/11/23(月) 05:09:42
>>686
http://d.hatena.ne.jp/iasija/

690 :684:2009/11/23(月) 07:36:00
>>685
本家MinGWだってMinGW5.1.6に含まれていないだけで、gcc 4.4.0は単独で「current release」になってるよ。
TDM版については>>688の言うとおり。

長い話で悪かったが、そのことでずっと>>680とやりあってたんだ。

691 :デフォルトの名無しさん:2009/11/23(月) 14:28:16
そろそろ長話を止めてくれ

191 KB [ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]

■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
Cygwin使っている人いますか? その19 [UNIX]
Cygwin使っている人いますか? 5 [Windows]

新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.0.7.8 2008/11/13 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)