Cygwin + MinGW + GCC 相談室 Part 5
qp-gccがいいんじゃない?
TDMのパッチとかもやってあるらしい。
派生ビルドの中で、libiconvがちゃんとリンクされてないのはある?
事情があってソースコードをShift_JISで書きたいので、-finput-charset と
-fexec-charset が効かないと都合が悪いんだ。
TDMが大丈夫で本家がダメなのはわかってるんだけど。
一度セルフビルドしてやればどれでもOK
3時間以上お待ちくださいって、言ってほしい
昔と違って大体は素直にビルドできるんだが、とにかく時間がすごくかかるのはなんとかならんものなのか。
ffmpegをビルドしたいのですが、DEPに引っかかって落ちてしまうバイナリが出来上がってしまいます…
検索してみたところ、他にも事例があるようなのですが、
これってmingw公式版だけの症状なんでしょうか?
派生版もいくつかあるようですが、結局何を用いてビルドすればよいのかサッパリで…
>ffmpeg が DEP に引っかかって強制終了する件ですが、とりあえず pthread を shared にしたら改善されることを (少なくとも自環境では) 確認しました。
110 :
デフォルトの名無しさん:2010/04/26(月) 11:19:43
ですね
そこでクロスビルドですよ。
ビルドホストを隣のLinuxにしたり、VMゲストのLinuxにしたり
Msys Mingw にしたり…あれ?
マジレスしてやるがクロスでの configure は困難だろ!
クロスでの configureの方が全然早い
win32用のバイナリ作るまでの手順がめんどいけど、
おつりがくるくらいの速度
>>114はGCCをビルドするとき
コンパイルの速度も全然違う
rpmとか使えるから、パッケージ管理も楽
116 :
デフォルトの名無しさん:2010/04/26(月) 21:44:44
ググってみたんですが見つからない為、
コチラで聞かせてください。
cygwin上で「a」のキーだけが入力できなくなってしまったのですが、
どなたか原因が分かったりしませんでしょうか?
ちなみに他のキーは入力出来ますし、webブラウザ上などでは普通に入力できます。
ご教授頂けると幸いです。
なんのきっかけもなく突然そうなることはないから
お前が何かしたんだろ
GCCの挙動を知るためにわざとgccではなくcc1を呼び出してみたんですが
なぜかCファイルをパイプを使うか、リダイレクトで送るかで
cc1がwarningを返す場合があるのはなぜでしょう?
また "*** is shorter than expected" はどういう意味の警告文なんでしょうか
---
C:\MinGW\libexec\gcc\mingw32\3.4.5>type foo.c
main(){ return 0; }
C:\MinGW\libexec\gcc\mingw32\3.4.5>type foo.c | cc1.exe
main
Execution times (seconds)
parser : 0.02 (17%) usr
TOTAL : 0.09
C:\MinGW\libexec\gcc\mingw32\3.4.5>cc1.exe < foo.c
cc1.exe: warning: is shorter than expected
main
Execution times (seconds)
TOTAL : 0.03
C:\MinGW\libexec\gcc\mingw32\3.4.5>
---
bugかな。メッセージも変だし。
パイプ使ってねということなんでしょう。
msvcのほうだと問題な指そう
>>108 後の報告見れば分かるけど、結局それでは解決してない。
pthread用のread関数に置き換えるようにするとか
gcc4.5.0を4.5.0でbootstrapビルドすると動かんxgccがでけて、途中で止まるがな
>>119 サンクス。ちなみにubuntuのcc1(3.4.6)では両者問題なく動いた
cmd.exeのリダイレクトはlinuxのと挙動が違うのかのう…
makeのソース見てみれ。リダイレクトのコードがどうなってるのかわかるよ
msysでgcc-4.5.0のbootstrapやってみた
クアッドコアでcとc++のビルドでやっと3時間切るぐらい
gccのビルドやった事ないが
Linuxカーネルのビルドより時間かかるのか…
linux上でのビルドはそれほどかからないけど、msys上でやると
configureがもの凄く遅いからね。
一部ファイアーウォールソフトのプロセス監視と相性が悪くて
プロセス監視してると驚異的に遅くなったりするよ。
130 :
デフォルトの名無しさん:2010/04/30(金) 16:57:35
質問です。
Cygwinにtpad093で書いたソースを入れたいんですが、どうしたらいいですか?
一応手順があるんですが、XP、VISTAバージョンで7では具合が悪いよう
な手順なんです。
コピペで挿入することはできないし、どうしたらいいですか?真剣に困ってます。
cygwinがダウンロードされても開いても出るはずのフォルダが出なくて。一応黒い
画面はでるんですけど・・・
どうゆうことをしたらtpadで書いたソースをシグウィンでコンパイルして実行でき
るのでしょうか?
まてまて、まずは深呼吸だ
132 :
デフォルトの名無しさん:2010/04/30(金) 17:32:41
>>131 頼みます。お願いします。一応アク禁くらってます。
どうしたらいいでしょう?
何故cygwinを使うか?
それはtestするためです。確実に動くかどうか。
でもわざわざcygwinに書き込んでたら時間がかかります。
よってcygwinにぱっとtpadと同じ形式で同じ改行で移すには
どうしたらいいでしょう?そのための手順を教えてください。
初心者ならVisual Studio Express Editionでも使っとけばいいじゃん。
>>132 あまりTeraPad(tpad)は使ったことがないけど…
エディタ部分にソースコードを書き込んだら、メニューバーの
[ファイル]→[文字/改行コード指定保存]を選択して
改行コードを[LF]にして保存すれば良いんじゃないかな。
文字コードはShift_JISで通ると思う。
>>132 まさかとは思うが、cygwinのドライブは通常のドライブ上が便宜上違うパスで見えていることに気付いてないのか?
ちゃんとインストーラでどこに配置するか確認されるだろうに。
で、設定を変更していなければ、次のようになる。
--
MS-Windows cygwin
c:\cygwin /
c:\cygwin\tmp /tmp
c:\ /cygdrive/c/
c:\Program files /cygdrive/c/Program files
--
これで判らなければcygwin使うのやめた方がいいよ。
cygwinがTeraPadと同じ手順で使えると勘違いしてる
137 :
デフォルトの名無しさん:2010/04/30(金) 19:16:28
>>134 >>135 いってる意味が全くわからないんですが・・・
どこをいじればいいのでしょう?
cygwinの設定何てどこでやればいいのでしょうか?
ツールバーも出てこないし。
「パス」「ドライブ」「shift_JIS」なんのこっちゃw
知りたいのは真理より手順なんで・・・・
まだPCに触ったことがなかった大学1年です。
>>136 Padはただのワードの簡易バージョンですよね?わかります。
cygwinはテスト用のツールですよね。わかります。
cmd.exeとか知ってる?
>「パス」「ドライブ」「shift_JIS」なんのこっちゃw
駄目だこりゃ。cygwinとかC++より先にPCと日本語勉強したほうがいい。
140 :
デフォルトの名無しさん:2010/04/30(金) 19:22:47
いえ知りません^-^
ええっとですね。マウスも今年名前知ったレベルです。
ちなみに3日前からこのcygwinについて調べてるんですが
専門用語返答されてまいってしまいました。
留年確定ですね^-^
どうやればcygwin使えるようになるでしょか?^-^
141 :
デフォルトの名無しさん:2010/04/30(金) 19:47:03
2ちゃんに何か書き込むとき余計なことを書き込むと永遠の地獄ループに
苦しみ何の解決にも至らないことが良くわかった。
ハウツーを聞くだけで、別のところに食いつかれこんなに苦労するとは思わなかった。
明日先生に聞いてみます。
> 「パス」「ドライブ」「shift_JIS」なんのこっちゃw
> 知りたいのは真理より手順なんで・・・・
いやいや、先生もびっくりですよww
単位取れなくても留年はしないだろう
> 知りたいのは真理より手順
どこの名言だよwwww
手順を書いたつもりが真理だったでござるの巻、か
こりゃ先生も苦労するだろうなぁ
今年になってマウスを知ったヤツが
なんでcygwinなんていじろうと思ったんだ?
「パス」「ドライブ」「shift_JIS」
これを禁止してコンパイラの環境構築をする方が無理だろう。
大学生の発言とも思えん。
釣りか、ゴールデンウィーク中の暇つぶしじゃね?
じゃなきゃ、真性のアレだろうから、かまうだけ無駄。
・(
>>134 や
>>135 のように)丁寧に書いてくれた人に礼も言わない
・初心者といえば免罪符になると思っている
・やり方さえ分かれば用はない(しかし分からない)
・知ったかぶり
・分からないのは相手のせい
釣りでないならテンプレすぎて面白い
>>141 自分の思うようにことが運ばないからといって、捨て台詞を吐くようではいけませんね。猛省してください。
151 :
デフォルトの名無しさん:2010/04/30(金) 22:34:54
>>145 本当に意味がわからないんです。
例えば
>>134>>135の人みたいなのに何てレスしていいのかもわからん・・・
むしろそれを考えていたりする。疑問を残したままありがとうというのが
俺の一番悪いくせで責任転嫁の含みがあるのであまり感謝は好きじゃない。
2ちゃんなんだから俺と回答者の両側の意図が共通に認識できた蟠りのない
段階で身を引きたかった、何も残らずにすむから。
>>146 述べよう。今年から情報科学系の学部に入った。よってプログラミングは必須。
あまりにも設定の仕方というのはバリエーションがあるため仕様書みたいなの
に従って作業を進める、そのいちいちに意味を求めていたら時間がかかって仕方ない。
よって作業というのは一様でなければならず、その歯車が狂うとどこで修正していい
のわからない。しかし中身である課題(プログラミング)については疑問は一切ない。
cygwinでのgccの使い方の説明はなかったんかいな?
>>134>>135 あたりはまさにハウツーだろ。
ハウツーが理解できないというのは意味云々以前に基礎的な知識が足りてないということ。
例えば「微分方程式スレ」があったとして
「導関数って何かわかりません、でも解法教えてください!」
な人が来ても教えようがないだろ。
154 :
デフォルトの名無しさん:2010/04/30(金) 22:57:41
>>153 確かにそうであるが・・・・・
何事も要領なわけであって・・・
>>152 cygwinについてはここからダウンロードしてくださいという
丁寧な指示から始まったんだ。でダウンロードし終わったあとなんです。
やり方通りにやったのに色々パスエラーがでるわで最大のつまづきがここです。
↓↓↓
「デスクトップ上のアイコン cygwin をダブルクリックして実行 → cygwinウィンドゥが現れ,
続いてホームディレクトリ "C:\cygwin\home\(ユーザ名)" が作成される」
↑↑↑
これは初期設定なんだが、これが不可能なんだ。何も起こらない。
Javaのコンパイル環境構築しようと思ったんですが、インストーラーに用意されてる
gcc-javaとSun公式で配布されてるJDKとではどのような違いがあるのでしょうか?
沖ソフトさんのページをはじめ、JDKインストールして環境構築する解説ページが多いようですが。
gcc-javaだとx86の実行ファイルがでける
>>154 cygwinのインストールに失敗してるような?
cygwinのインストールに失敗する人がいるとは思わなかったよ
>>123 cloog-ppl サポートを有効にしてる & ホストコンパイラが 4.5 だとデフォルトで c++ の
共有ランタイムにリンクされて実行できないバイナリができている可能性がある。
auto-import の warning が出てたら多分これ。config/mh-mingw の BOOT_LDFLAGS と
LDFLAGS に -Wl,--enable-auto-import を加えるか、--with-host-libstdcxx で static
archive を明示的に指定してみたらいいんじゃないかと。
>>127 同じくホストコンパイラに 4.5 を使って、gcc の依存ライブラリ (gmp/mpfr/mpc/ppl/cloog-ppl) から
自前ビルドする場合、これらのコンパイル時に -fexcess-precision=fast にしないと、動作がとても
遅いバイナリになった。詳細は本家 Changes の IA-32/x86-64 のとこに書いてある。
http://gcc.gnu.org/gcc-4.5/changes.html もしこれに該当している場合はここを改善すれば大分早くなるような気がする。
自分のとこでは CとC++のみ、2コア、make -j2 bootstrap で大体1時間弱くらいで終わる。
両方ともまったく違う原因でトラブってるようだったらすまん。
159 :
デフォルトの名無しさん:2010/04/30(金) 23:52:02
>>157 手順通りにやったのに失敗したのかなぁ?
一応そのサイト一nだけど乗せましょうか?
誰かその手順通りやってくれませんか?
>>158 動かんxgccの件は
STAGE1_CFLAGS = -g -fkeep-inline-functions
の-fkeep-inline-functionsを-O2に書き換えることで解決してます。
(原因はppl/cloog-pplをいれてるからかも)
-fexcess-precision=fast の情報、あんがと
mingwのバイナリをlinux上でクロスビルドしてるときは遅いとは思わないんだけど
162 :
デフォルトの名無しさん:2010/05/01(土) 00:30:21
ユーザー名に漢字使ってハマってた人はいたみたいだけど
164 :
162:2010/05/01(土) 01:51:18
>>162 http://www.comm.info.eng.osaka-cu.ac.jp/~sugi/C_lang2/setup/ を、以下の環境で試してみたよ。
- VMware Workstation 7.0.1 で作った仮想PC (メモリ 512MB)
- OS: Windows XP Professional SP3
- その他のソフト: Microsoft Updateの「高速」のすべてのパッチを適用し、
Microsoft Security Essentials をインストールした。
- Windowsのユーザ名は「testuser」
(質問するときは、↑くらいのことは最低限書いたほうがよいよ)
1. Cygwinのインストール完了後に、デスクトップ上の「Cygwin」ショートカットを
クリックすると、次の文字が表示された。問題なし。
------------------------------------
Copying skeleton files.
These files are for the user to personalise
their cygwin experience.
These will never be overwritten.
`./.bashrc' -> `/home/testuser//.bashrc'
`./.bash_profile' -> `/home/testuser//.bash_profile'
`./.inputrc' -> `/home/testuser//.inputrc'
testuser@xp-vm1 ~
------------------------------------
165 :
162:2010/05/01(土) 01:52:23
>>162 2. 「cygcheck -c」でCygwinのパッケージが正常にインストールされたかどうか確認した。問題なし。
------------------------------------
testuser@xp-vm1 ~
$ cygcheck -c | grep -v OK
Cygwin Package Information
Package Version Status
------------------------------------
3.「cygcheck -cd」と「uname -a」でCygwinのバージョンを確認した。
現時点のCygwinの最新版は 1.7.5-1 だから、
今回の件が解決したあと、別件でCygwin質問をしたいなら、
使っているバージョンや、
http://www.comm.info.eng.osaka-cu.ac.jp/~sugi/C_lang2/setup/ で
インストールしたことを毎回きちんと述べること。
じゃないと、みんな Cygwin 1.7系、あるいは1.5系の最終版 1.5.25-15 を使っていることを
仮定して回答するだろうから、行き違いが生じるよ。
------------------------------------
testuser@xp-vm1 ~
$ cygcheck -cd cygwin
Cygwin Package Information
Package Version
cygwin 1.5.25-11
testuser@xp-vm1 ~
$ uname -a
CYGWIN_NT-5.1 xp-vm1 1.5.25(0.156/4/2) 2008-03-05 19:27 i686 Cygwin
-------------------------------------------
166 :
160:2010/05/01(土) 02:03:43
167 :
160:2010/05/01(土) 02:16:24
ついでに、日本語のアカウント名でも試してみた。
以下のダメ文字一覧表の文字を使って、「曽綻転脳評望余」って
ユーザ名のアカウントを作って、同様に試してみた。
ダメ文字一覧表 (fudist)
http://sites.google.com/site/fudist/Home/grep/sjis-damemoji-jp/table 1'. Cygwinのインストール完了後に、デスクトップ上の「Cygwin」ショートカットを
クリックすると、次の文字が表示された。
------------------------------------
Copying skeleton files.
These files are for the user to personalise
their cygwin experience.
These will never be overwritten.
`./.bashrc' -> `/home/曽綻転脳評望余//.bashrc'
`./.bash_profile' -> `/home/曽綻転脳評望余//.bash_profile'
`./.inputrc' -> `/home/曽綻転脳評望余//.inputrc'
曽綻転脳評望余@xp-vm1 ~
------------------------------------
特に問題が無いようだ。
あとは、そちらで使っているOS固有の問題があるかも知れないし、
アカウントのユーザ名やアカウントが持つ権限が足りないかも知れない。
でもOSを明示せず、さらに、最初の数回の発言で、
「どんなOSを使ってる?」という質問をここの住人から引き出せないまま
言い訳を書くことに終始したあなたの責任だと思う。
よって、酷だろうが、自分はこれ以上は追試しないよ。
168 :
デフォルトの名無しさん:2010/05/01(土) 02:25:08
>>164 >>165 ありがとうございます。もっかいやってみますが、初期設定がどうしても
できないんです。これってしなくてもいいんですか?
あっwもちろん杉山先生のそのサイトの初期設定ね。
でもなぁ・・何か俺のPC本当おかしいんですよ。タイピングしてたら急にお気に入りが
開いたり、今回もダウンロードしたのに失敗した恐れがありますとか出てくるし。
これじゃぁプログラミングに行く前に頓挫しそうだ・・・
プログラミングの勉強をする前に、PCの初歩的な操作方法と
日本語を勉強したほうがいいかもな
あと、釣り針の仕込み方と釣り堀の選び方もな!
172 :
デフォルトの名無しさん:2010/05/01(土) 15:00:45
でネット上の説明が難解で専門的だから
こういうところで質問してると思うんですけどねぇ・・・
ワードみたいにこのアイコンをクリックとかそんな単純もん
じゃないし。躓いて質問しても、環境変数がとか〜設定がとか
難しいですよね結構。
気に入らないなら他の手段使えばいいんだし、
cygwinみたいな地雷はそうそうないと思うけどな
linux板いくと地雷踏みすぎたか気の狂った物乞いばかりで怖いぜ
<わからない11大理由>
1.読まない …現行スレ、テンプレ、取説などを読まない。読む気などさらさらない。
2.調べない …過去スレ、ググるなど最低限の内容も自分で調べようとしない。
3.試さない …めんどくさいなどの理由で実行しない。する気もない。
4.覚えない …人から聞いて、楽して得た答えは身に付かないから、すぐに忘れる。
5.説明できない …何に困っているのか、第三者に正確に伝わる文章が書けない。
6.理解力が足りない …理解力以前の問題で理解しようとしない。
7.人を利用することしか頭にない …甘え根性でその場を乗り切ろうとする。
8.感謝しない …教えてもらって当たり前。事がすんだらさようなら。
9.逆切れする …自分の思うようにならないと逆切れする。
10.開き直る …自分の思うようにならないと開き直る。
11.2ちゃんねるをお客様相談室だと思っている。
175 :
デフォルトの名無しさん:2010/05/01(土) 20:14:29
>>175 >7.人を利用することしか頭にない …甘え根性でその場を乗り切ろうとする。
自分でコンパイルしろよ
libiconvが入ってない
179 :
155:2010/05/01(土) 21:49:15
>>156 おっしゃってる意味がよくわからないのですが、JDKでコンパイルするとJavaVM上で動く
普通の中間コードが生成されて、gcc-javaでコンパイルするとx86向けのネイティブコードが
生成されるという意味でしょうか?
と悩んではみたものの、教本に使われているサンプルソースがJDKじゃないとコンパイルできませんでした。
教本も(非Cygwin環境下での)JDKを前提に解説しているので、勉強自体はこっちで進めます。
さいなら
教員に聞けよ
そんなことは駄目
つ7.人を利用することしか頭にない …甘え根性でその場を乗り切ろうとする。
gcc-javaをなんで使おうと思ったの?
CygwinやMinGWをなんで使おうと思ったの?
そこにcygwinとmingwがあったから
感動した
VC++(のリンカ)の /merge:.rdata=.text と同じことをMinGWで実現するにはどうすればいいか、ご存知の方おりませんか?
GCCはデフォルトで.rdataに文字を置くのですが、これを生成の段階で.textに変えたり、リンクの段階でマージするなどの方法を探しています
i386pe.xとかを編集して使いなされ
>>187 7.人を利用することしか頭にない …甘え根性でその場を乗り切ろうとする。
11.2ちゃんねるをお客様相談室だと思っている。
できました。ありがとうございます
ldscripts/i386pep.x を書き換えて
gcc -Wl,--script=i386pep.xs のようにスクリプトを読ませたらリンクの段階でマージできました
--- i386pep.x
+++ i386pep.xs
@@ -27,2 +27,4 @@
*(.gcc_except_table)
+ *(.rdata)
+ *(SORT(.rdata$*))
}
@@ -45,4 +47,2 @@
{
- *(.rdata)
- *(SORT(.rdata$*))
___RUNTIME_PSEUDO_RELOC_LIST__ = .;
コンパイル時でよけりゃ__attribute__ ((section (".text")))でいいんじゃね
__attribute__だと全変数に指定要るしなにより文字列リテラルに指定できないぜ
objcopyだな
194 :
デフォルトの名無しさん:2010/05/07(金) 13:18:24
komisarから新しいのが久々にでてる。
GCC version 4.4.4
cross-mingw.gcc444.generic.20100506.7z (16M)
cross-mingw.gcc444.core2.20100506.7z (16M)
http://komisar.gin.by/mingw/
TDMは何をしているんだ・・・。
TDMはオナニーをしています
>>194 ちなみに64bitはLTOがWin32でサポートされてから考えるってさ
Link-time optimization
>>199 おおお、魅力的な響きですな。
ありがとうございます。