Cygwin + MinGW + GCC 相談室 Part 5
389 :
デフォルトの名無しさん :
2010/09/30(木) 08:36:47 mingw32のコンパイラのバージョンは4.5.1だけどCygwinのバージョン は4.3.4です。GCCのオプションで gcc -O3 -ftree-vectorize を付けたとき、Cygwinのときはループの ベクトル化をしてくれますがmingw32のときは失敗してベクトル化 してくれません。どうすればいいですか。
mingwではなくcygwinを使えばいいだけでは
>ベクトル化してくれません。 どこみたら、してないのがわかるの?
392 :
デフォルトの名無しさん :2010/09/30(木) 11:00:05
C:\cygwin>gcc -march=core2 -msse2 -mtune=core2 -O3 -ftree-vectorize -ftree-vecto rizer-verbose=5 -o grs3 grs.grs.c: In function 'main': grs.c:590:7: warning: incompatible implicit declaration of built-in function 'me mcpy' grs.c:607: note: not vectorized: data ref analysis failed D.6415_427 = GF[D.6414 _426]; grs.c:592: note: not vectorized: data ref analysis failed D.6401_33 = FG[D.6400_ 32]; grs.c:552: note: vectorized 0 loops in function.c
?
某スレに貼ってたソースだと grs.c:600: note: LOOP VECTORIZED. grs.c:549: note: vectorized 2 loops in function. こうなったけど
395 :
デフォルトの名無しさん :2010/09/30(木) 11:15:53
失敗例 grs.c:552: note: vectorized 0 loops in function.c 成功例 grs.c:572: note: LOOP VECTORIZED. grs.c:552: note: vectorized 3 loops in function.
ソース貼れ 答えだけがほしいなら
397 :
デフォルトの名無しさん :2010/09/30(木) 11:23:39
書き方変えたのか知らんが、cygwinのgccでも失敗してるみたいだけど
399 :
デフォルトの名無しさん :2010/09/30(木) 11:35:53
$ gcc -O3 -ftree-vectorize -ftree-vectorizer-verbose=5 -o grs2 grs.c
400 :
デフォルトの名無しさん :2010/09/30(木) 11:37:21
$ gcc -O3 -ftree-vectorize -ftree-vectorizer-verbose=5 -msse2 -o grs2 grs.c
fedoraのgcc 4.4.4の結果 $ gcc -g -m32 -O3 -ftree-vectorize -mmmx -msse2 -ftree-vectorizer-verbose=5 grs.c grs.c: In function ‘main’: grs.c:590: 警告: incompatible implicit declaration of built-in function ‘memcpy’ grs.c:607: note: not vectorized: data ref analysis failed D.5842D.5842_365 = GF[D.5841D.5841_364]; grs.c:592: note: not vectorized: data ref analysis failed D.5827D.5827_41 = FG[D.5826D.5826_40]; grs.c:552: note: vectorized 0 loops in function. cygwinは4.3だからかもね
402 :
デフォルトの名無しさん :2010/09/30(木) 11:46:17
VisualStudioにはConfigure makeのビルド環境がないから4.3.4には 戻せそうにないし、どうすればベクトル生成に成功するのかがわからない。 WINで動けばいいのだが、Cygwin環境依存だとアプリにするのが難しい。
cygwinのテストパッケージでmingw64-{i686,x86_64}-gcc-4.5系のが無かったっけ? ちゃんとクロスビルドできるのかまでは知らんけど。
欲しいバージョンのgccのソースをダウンロードしてきてcygwin上で ./configure --target=mingw32 でビルドしてみたら
405 :
デフォルトの名無しさん :2010/09/30(木) 13:30:31
コンパイルが済んだものは普通にmake installすれば、mingw32で 動くようになりますか。何かパスを通す必要はありますか?
407 :
デフォルトの名無しさん :2010/09/30(木) 14:45:39
./configure --target=mingw32 オブジェクトファイルがコンパイルできないとかいって makeするときにビルドに失敗した。
o=FG[a[j]]; p=FG[b[j]]; a[j],b[j]で参照してるのをFG[j]で参照出来るようにすれば 少しはましになるかも
o=FG[a[j]]; p=FG[b[j]]; o+h1[p][i]-2 とか毎回計算してるけど、よく見たら、配列の固定値にできるんじゃないじゃろか?
なんか、固定値でxorとってるだけに思えてきた
固定値じゃなくて鍵ストリームでは? それは鍵やIVが変わると変わるので、鍵が固定なら固定値でもいいが、実用上そういうわけにはいかないだろう
412 :
デフォルトの名無しさん :2010/09/30(木) 17:52:47
どうコンパイルしてもコンパイラがエラーになってできません。 値は固定値というよりは256列の行列の中から16パターン選び出す種類を 固有の値として平文にXORしているという感じです。2^32では周期は出 ません。このままだとVisualStudioで作ったものとCygwinで作ったものと で動作環境に互換性のない暗号として配布しなければならないことになります。
413 :
デフォルトの名無しさん :2010/09/30(木) 18:02:52
libgccがないとかエラーが出ます。
互換性のない結果出してるところから、調べたら 何が原因なのかわかってるなら、いいんだけど
415 :
デフォルトの名無しさん :2010/09/30(木) 18:22:18
clでコンパイルすると普通にWindows環境で動きます。 しかし速度や性能でGCCの方が上なのでGCCでコンパイルしたものを WIN上で動かしたいのです。
>>415 cygwinでコンパイルしたものをDosPromptから動かしたらどうなる?
dllが見つからない旨のエラーメッセージが出るだけなら、そのdllにパスを通せば動くんでないかい?
>>415 出力が同じなら高速版と通常版の2種類あったって別にいいと思うけど
どのみちSSE載ってない古いCPUじゃ高速版は動かないんだろ、その人たちは見捨てる気か (まぁ別にそれでもいいと思うけど)
aとbにもスクランブルかけてるのね。 all0のデータとか突っ込まれたら、パターンがバレそうな気がするけど、気のせいかな
419 :
デフォルトの名無しさん :2010/09/30(木) 18:31:26
でも全員がCygwin使ってるなんて考えられないし、やっぱりWindows 互換のコンパイラで最適化したソフトを配布したいから・・・ ところで安全性の基本原理とか興味ありますか?
ありません ここそういうスレじゃないし
つーか、>416は無視ですか、そうですか。
422 :
デフォルトの名無しさん :2010/09/30(木) 18:42:22
無理矢理パスを通せば動きますけど、普通の人がそうするとは思えません。 とくにCygwinを知らない人は。
-mno-cygwin でコンパイルできますか?今(version 4) はできなかったかなあ。
libgccをスタティックリンクすれば、いいんじゃないの buffのmemcpyとか無駄なところを手で最適化したら
425 :
デフォルトの名無しさん :2010/09/30(木) 18:47:09
全部0の値が入っても、行列のどの列の組み合わせかがわからなければ 安全です。因みにどんな組み合わせでも鍵ストリームは0にはなりません。 (当然か)IVはわかってもいいのですが、秘密鍵でスクランブルを かけているので出力から鍵はわかりません。
-mno-cygwinはcygwinのgcc4からなくなったよ。 -mno-cygwinを使うなら、gcc3を使いなさいってことみたいよ
427 :
デフォルトの名無しさん :2010/09/30(木) 18:55:00
-mno-cygwin コンパイルは通りますけど、どんな意味があるんですか? ループのベクトル化がしたいのに。
428 :
デフォルトの名無しさん :2010/09/30(木) 18:58:15
そもそもCygwinでGCCのコンパイル出来るんでしょうか。
-mno-cygwin 簡単に言うとcygwin.dllに依存しない実行ファイルが出来るってだけ
cygwinとかmsys使えば、gccのコンパイルは出来るよ。 最近は、linuxとかでクロスビルドしてる人が増えてるみたいだけど
431 :
デフォルトの名無しさん :2010/09/30(木) 19:09:33
mingw32-gcc -O3 -ftree-vectorize -msse2 -o grs2 grs.c これを実行するとstdio.hがないとかエラーが出る。
432 :
デフォルトの名無しさん :2010/09/30(木) 19:13:01
-mno-cygwin 削除されたからMINGWを使えって出た。
434 :
デフォルトの名無しさん :2010/09/30(木) 19:15:56
msysってどこで手に入るの?
(´;ω;)バイナリ配布先書いてあるんだから少しはてんぷら読んでやれよ かわいそうだろ
436 :
デフォルトの名無しさん :2010/09/30(木) 19:43:36
インストーラのバグのせいでダウンロードできない
438 :
デフォルトの名無しさん :2010/09/30(木) 20:00:22
本体はどこでダウンロードできるの?
-O3を-O2にすると grs.c:595: note: LOOP VECTORIZED. grs.c:552: note: vectorized 2 loops in function. って、なるね。
440 :
デフォルトの名無しさん :2010/09/30(木) 20:04:07
本当だ!すごい!
ベクトル化出来たけどマルチポストの人でしょ。 部分的に人に教えてもらったようなSIMDが書いてあって、それより簡単なコードがSIMD化されてない。 ていうかみんな静的に用意された固定長の配列なのにアr(ry それに明らかに不要な計算が混じっていたりして、とてもやる気があるとは思えない。
そういうひとだったら、解決した時点でもういないんだろうね。
444 :
デフォルトの名無しさん :2010/09/30(木) 20:13:55
不要な計算ってどこのこと?
あ、まだいたのか。 整数演算なんだから、ビットマスクしようがしまいが結果の下位ビットは変わらないよね。
446 :
デフォルトの名無しさん :2010/09/30(木) 20:23:25
配列の添え字を計算するのにランダムな15以下の数を抽出します。 暗号鍵の配列はG[16][16][2]なのでky
447 :
デフォルトの名無しさん :2010/09/30(木) 20:25:30
下位4ビットの値を指定して暗号に使う列を決めます。データは128ビット の共用体なので型変換なしでいろいろなデータサイズで論理演算を施す 事ができます。いろいろ考えてるんです。
448 :
デフォルトの名無しさん :2010/09/30(木) 20:27:33
最適化はまだ完全じゃないと思います。これから直していくつもりです。 ビットマスクをとることで暗号文から15以下の数を計算してるのです。
馬鹿の考え休むに似たりって言葉もあってだな・・・
450 :
デフォルトの名無しさん :2010/09/30(木) 20:32:56
だったら新型を開発しろ
4ビット…だと マスクがいらないって言っているんじゃなくて、下位ビットは変わらないよねっていう話なんだが、4ビットとか言っている時点で最適化以前にそもそもテストしてねーんじゃねーのかって気がしてきた。 中間結果とか確認してるんだろうか。
452 :
デフォルトの名無しさん :2010/09/30(木) 20:43:49
何のためにs5関数があると思っているのだ。 短い周期がない事と、出力の統計が一様分布だということは確認済み。
自分でやる気ないのに、何いってんだか
ファイルまわりのエラー処理とか不完全なもんを公開するんかね
巣に帰れ
実装ってより、スクランブルパターンの設計をしただけでしょ
まだいたのか・・・。
0~255に絞れば、乱数で元データのパターン作れそうだな
バイト毎にxorとってるだけだから、解析されるのも速そう
460 :
デフォルトの名無しさん :2010/10/01(金) 00:26:48
あらさがしも歓迎するから解読方法が見つかったら公開してくれ。
固定の鍵がソースにハードコーディングされてりゃ解読もなにも・・・
16バイト毎に順番入れ替えるとかすると、速度が出なくて没になったとか?
PN符号の方が実装は楽だ
464 :
デフォルトの名無しさん :2010/10/01(金) 09:27:21
Cygwin環境でGCCのビルドに失敗します。原因はよくわかりません。 失敗のメッセージはどこに書かれているのでしょうか?
パッケージを使わないことが原因ですね。
466 :
デフォルトの名無しさん :2010/10/01(金) 09:36:20
パッケージって何ですか。tar.gzだけではビルド出来ないのですか。 Cygwinは一応全部入ってます。
467 :
デフォルトの名無しさん :2010/10/01(金) 09:40:55
アセンブラメッセージERROR unknown pseudo-op .symver libstdc++v3/src ここでエラーが出ます。
全部入れるってのも基地外字見てるが、expパッケージまでは入れておるまい。
もしかしたらpatchセットがあるのかもしれないということを 疑ってみることさえしないなんて、ある意味尊敬するわ。
470 :
デフォルトの名無しさん :2010/10/01(金) 10:37:47
exp入れればコンパイル出来ますか。パッチセットって何ですか。
なんやこいつ
xor暗号くんでしょ
cygwinのgcc -v でみれるconfigureでやってみな。オプションが解読できればの話だが
クロスコンパイルしようとしてるのなら、target用のbinutilsが入ってないだけでしょ
cygwinのmingwクロスビルド用ツールチェーンのパッケージ入れて使えばいいだけなのに 大して意味も無いGCCのビルドをやってるってことか。荒らしって本当にアホだな。
minGWつかえよwww
TDMで Bundle Installer (The easiest install) tdm-gcc-4.5.1exe 20.6 MB ここ数ヶ月放置してたらかなり進歩したのが出てた。 うれしいな。
mingw-w64-1.0-bin_i686-mingw って32bitで64bitターゲットのクロスコンパイラと 64bitのdllが同じ場所に入ってるのか… 64bitと32bitのdllが同じ名前だとローダーも区別できないと思うんだが…
え、バイナリの中身見てで64bitと32bitを見分けてるんじゃないの?
64bit にも対応してる dll って話だと思うんだけど
はあ?
w64 の使った事無いから根拠無くイッテミタダケ・・・すまなんだorz 一方は shared でもう一方は static じゃねの?根拠無いけど・・・ 今試しに DL してみたけどディレクトリ構成酷いな・・・ もっとスッキリまとめろよと言いたい
staticなら.dllじゃなくて.aでしょ
484 :
478 :2010/10/02(土) 15:24:20
x86_64-w64-mingw32-objdump.exe -f
で調べると、binutilsやコンパイラは32bitでlibstdc++-6.dll等は64bitとなっていた。
dllのサーチ順の関係で、exeと同じフォルダやSystem32にインストールされるようなdll以外は
64bitと32bitを区別するのが難しいから競合する可能性があるよ。
64bitと32bitを分けて、自家ビルドのプログラムを別の場所にしている場合は
そっちにもdllをコピーしといたほうが安全だと思うな。
>>482 MinGWも以前はlibiconvやlibintlを動的リンクしてたと思ったけど、新しいのは
静的リンクになってるみたいだね。dependencywalkerで見てもkernel32やmsvcrtとか
標準的なdllだけになっていた。
x86_64-w64-mingw32とmingwのフォルダは合計サイズが同じだから
単にコピーしてフォルダの名前をmingwにしただけみたいだ。
32ビット,64ビット両対応のgccをビルドインストールすると ベースが64ビット実行環境なら bin bin/32 みたいに32ビットなdllとかは、32のdirに詰め込んでくれるよ、たぶん
cygwinダウンロード失敗して何回も何回もアンインストールして もう一回したらselect Packagesのとこが No packagese foundになってます。 どうしたらいいですか?
package path を適当なものに
488 :
デフォルトの名無しさん :2010/10/04(月) 10:22:25
mpc-0.8.2をminGWでビルドしようとするとconfigure --with-mpfr-lib=/libと やってもlibmpfr not found となり失敗します。mpfrのビルドには成功して make installしてあります。どうす
れ
490 :
デフォルトの名無しさん :2010/10/04(月) 10:27:52
どうすればいいですか
libだけじゃなくて、headerとかも指定せんといかんのじゃ /usr/lib?
492 :
デフォルトの名無しさん :2010/10/04(月) 12:11:09
headerの指定方法を教えてください。 /libにも/usr/libにもライブラリはコピーしてあります。 mpfrのmake checkでエラーがでるのですが、気にしなくて いいのでしょうか?
--with-mpfr-include ってなかったっけ
GCCでユニコードの文字を使う方法知りませんか? 例えばSJISの文字をユニコードに変換するやつとか ""で囲まれた文字がユニコードにする方法とか お願いします。
--exec-charset=utf-8 とかなんとか指定したらいいんじゃない
そうするとどうなるの? char a[]="あいう";みたいなこと やるとaの中のコードがユニコードになるの?
>>494 何をやりたいのかもう少し詳しく書いてくれないと答えようがないよ。
「ユニコード」と言ってもいろいろあるけど,UTF-8? UTF-16? あるいはもっと別のエンコーディング?
それとやりたいことは,ユニコードで書いたソースコード内の文字列リテラルを正しく認識させたいと
いうことなの?
そもそもユニコードを使う目的は何?
WindowsのプログラムでUnicodeって言ったらUTF-16のことだろ
L"あいう"ってだけの話じゃね
そんなら
>>496 に従えば,
wchar_t a[] = L"あいう";
だね。
SJISでもユニコードでも何でもいいコードで書いたソースコードの 変数の中にユニコードのデータを保存したい。
WバージョンのWIN32 API(::MessageBoxW()とか)に渡すの? それから「SJISでもユニコードでも何でもいいコードで書いた」ってのは、 「ソースコードは何で書くんでも構わないから」という意味なのか、「どんなエンコードで書いても 大丈夫な方法が知りたい」のか、どっちなの? 聞くときはもうすこし意味がわかるように書いてくれ。
wcharがユニコードである保証はないので どんな環境でもユニコードのデータを保持したいのなら数値を直接書く以外ない C++0xにはユニコードが追加される予定でgcc 4.5で実装されたはず
>>492 ./configure --help
をやってみませう
それとエラーは端折らないでコピペしませう
505 :
デフォルトの名無しさん :2010/10/04(月) 18:25:27
binutilをmake installしようとすると libiberty.a.n:Malformed archive とでてインストールに失敗します、なぜですか。
msgid "Malformed archive" msgstr "おかしな書庫です"
507 :
デフォルトの名無しさん :2010/10/04(月) 18:36:38
makeでコンパイルエラーがでるので適当に書き換えました。 ヘッダファイルとCのソースで定義が重なっている所があったので。 それが原因でしょうか?
馬鹿なの?死ぬの?
> makeでコンパイルエラーがでるので適当に書き換えました。 ここでお前は死んでいる?
エスパー募集か? コンパイルしてるソフト名すらまともに書けてない gccのバージョンも一切書いてない どこをどう変えたのかすら書いてない
511 :
デフォルトの名無しさん :2010/10/04(月) 18:47:56
GCC4.5.0 tc-i386.h 397:extern const struct relax_type *md_relax_table; tc-i386.h 402:extern int flag_16bit_code; を其々コメントアウトしました。
binutilsのバージョンが妖しい
わざとbinutilsのバージョン明示的に聞かなかったらやっぱり書かないんだな・・・
514 :
デフォルトの名無しさん :2010/10/04(月) 18:55:53
binutils-2.9
諦めろ
ageてんのはここのところ棲み付いてるアイツだろ、触ったら負けだよ。
UNIX環境想定のC言語によるプログラミングの練習のために cygwinをDLしなければならないんですが、PCのHDDが壊れてて DL時間がやたら長いです。項目はAll install でvim groff man をskipするやり方です。 ダウンロード先で早いところとかないでしょうか? 1%DLするのにだいたい7分〜15分くらいかかります・・・orz
それってVM入れてUbuntuでも使ったほうがよくね?
ring serverかmirrors.kernelじゃね
HDDが壊れてるのにミラーを変えて解決するわけがない。
521 :
デフォルトの名無しさん :2010/10/04(月) 19:42:11
>>519 それ全然違いますか?
jpやmirrorで
は試しましたが・・・
HDD壊れてるのに2ちゃんは余裕で書き込めますからねw
計算以外のアナログコンテツなどはほぼ壊滅的です。
>>518 試してみます
cygwinってall installじゃ最新のPCでもめちゃくちゃ時間かかるんじゃね? 100%になったかと思うとtotalじゃないしw 最低何をDLしてりゃCの大部分は使えるんだろう。
もうこのあほに触るな
あほのほあ〜
>>521 さあね、gnu直よりましでしょ。gnuはミラー推奨だけど
>>517 とりあえずデフォルトインストール+wgetでapt-cyg使うといいよ。
>>517 FAQ
Q. Cygwin は UNIX の勉強に使えますか?
A. Cygwin は UNIX に慣れた人間が Windows 上で楽するのには向いていますが、
UNIX の勉強には向いていません。
俺はcygwin->vm(linux)->linuxの流れでやったけど
>>527 そんなコマンドなくてワロタww
やっぱcygwinよりポートランドのほうがいいのかなぁ?
Linux入れて実際プログラミングやるやつ何ているの? アプリ作ってるの?
アプリっていってもいろいろあるでよ
Cygwinも使えないのにPGIとか
unix系のコマンド使う分にはプログラム関係ないでしょ
>>531 電気関係のツールとかLinuxが多くて、それらとリンクするために仕事ではLinuxメインでプログラムしてる。
cygwinは便利だけどmakeが遅いから、Windows用のツールもLinuxで作成して、
Windowsに持ってきてる俺。
make もそうだが、 configure が Windows では激しく遅いよな。 ファイルシステムかなんかの都合かねぇ。
すげー勢いでforkするからエミュレーションのコストがかさみまくってるんだろう。 以前cygwinスレあたりでshにsedを内蔵させてconfigureを高速化したツワモノがいたはず。
>>530 笑う前にググればよかったのに。
apt-cygの公式サイトはすぐ見つかるよ。
>>517 > 項目はAll install でvim groff man をskipするやり方です。
どこでそんな変な手順を覚えたのやら
>>539 これだけおんぶに抱っこで自分では何も努力しない奴だから、
apt-cygが追加ソフトで外部ツールだと思いもしなかったんだろうね。
HDDが壊れかけるんじゃなくて、HDDのコヤシになるものいれすぎて、空き容量不足とか
543 :
デフォルトの名無しさん :2010/10/05(火) 08:08:44
minGWでmpfr-3.0.0をビルドするとmakeの時にFile truncatedというエラー が出て失敗します。なぜですか。
cygwinでspoonwepをコンパイルしたいけど 肝心のソースが無い
msgid "File truncated" msgstr "ファイルが途切れています" 古いbinutilsを使ってるからでしょ
次は、gmp-5.0.1でビルドに失敗しますかな?
547 :
デフォルトの名無しさん :2010/10/05(火) 09:28:26
最新のmingwで再インストールをしても同じエラーがでます。 新しいbinutilsにするにはどうすればいいですか。
548 :
デフォルトの名無しさん :2010/10/05(火) 09:29:51
GMPは成功してます。
549 :
デフォルトの名無しさん :2010/10/05(火) 09:31:11
Cygwinでやるとウイルスができてmake checkに失敗します。 げんいんh
cygwinかと思ったら、msysですか? msysは更新されてないから、msysが古いのかもね。 比較的、新しいmsysのパッケージを入れてみたら、状況が変わるかも 何がしたいのか、何をしてるのか、わからんからこれ以上は... HDDが壊れかけてるといってた人なら、パソコン変えたほうがいいと思う。 情報は小出しにしないように
551 :
デフォルトの名無しさん :2010/10/05(火) 09:42:33
msysなつかしす
552 :
デフォルトの名無しさん :2010/10/05(火) 09:45:51
別人です。 msysのソースをコンパイルしてインストールするのですか。
dllがほしいのなら、本家mingwにgmpとかビルドしたのがあるから、それ使ったら 何やりたい(やってる)のかは言わないのね
554 :
デフォルトの名無しさん :2010/10/05(火) 10:04:39
GCCのビルドをやってます。
ウイルスの人なら、マシン変えたほうがよさような気がするけど 本家mingwだとgmpのheaderとかもdevのついた奴に入ってるみたいだから gmpとmpfrとmpcはそれ使ったら x86用のmingwなgccならわざわざビルドせんでも、配布してるところはいっぱいあるのに不思議
556 :
デフォルトの名無しさん :2010/10/05(火) 10:26:02
配布先が一か所しか知りません。 Winで動くクロスコンパイラなら何でもいいですが、自分の環境が 開発に適合しているのかを試しているのです。
お前の頭が適合してねー
559 :
デフォルトの名無しさん :2010/10/05(火) 10:37:41
解決しました。全部私が悪かったです。バージョンの古いbinutils をインストールしてwhich arで調べたら/usr/local/binに入ってた ので/usr/local/binを全部削除したら直りました。 一部文法エラーが出ますが。バージョン変えてやってみます。
560 :
デフォルトの名無しさん :2010/10/05(火) 12:22:54
>>502 >WバージョンのWIN32 API(::MessageBoxW()とか)に渡すの?
渡しません。ユニコードで文字を処理します。
文字は表示しないで記号として使います。
>>503 gcc 4.5で u"あいうえお"みたいな書き方が出来るってインターネットでかいてあったけど
できませんでした。
それはCではなくC++の機能のはずだけど、ちゃんとC++としてコンパイルした?
質問者の振りをした荒らしが住み着いてるな……
たちがわりいな
>>561 アンカーついてないけど
>>560 に対する書き込みか?
そうじゃないならアンカーくらいつけろ。
ちなみに
>>560 としたらstd=c++0x風のオプションはつけたぞ
無視だな無視。
↑小学校でみんなに無視されたやつ
煽り・荒らしは華麗にスルー! 荒らしを構う人も荒らしです。
568 :
デフォルトの名無しさん :2010/10/05(火) 15:57:29
MINGWでbinutilsとGCCのコンパイルに成功しましたが、make checkをかけると WINDOWSエラーが出ます。何か対処方法があったら教えてください。 cc1.exeは動作を停止しました。問題が発生したためプログラムが正しく動作 しなくなりました。
569 :
デフォルトの名無しさん :2010/10/05(火) 16:08:32
test-pexcute.exeが何かをしているようです。
570 :
デフォルトの名無しさん :2010/10/05(火) 17:49:59
msys1.0のdllがはいっているのですが、バージョンを上げるには どうしたらいいですか。
ファイル名をmsys12.dllなど、上げてみてください。
make checkに失敗してるのはメッセージを見る限り 新しいdllが読み込めなかったからとかじゃないですか? make checkするときに新しいdllの場所を一時的にPATHに指定してみてはいかがでしょう
573 :
デフォルトの名無しさん :2010/10/06(水) 15:09:49
cygwinでGCCをコンパイルすると、ウイルスができてしまいビルドできません。 Cygwinをクリーンインストールしても変わりません。MINGWでビルドすると cc1.exeがmsys1.0.dllで暴走しいるのがGDBで分かりました。無理にビルドする 必要はないのですがどちらが開発に適した環境かわかりません。GCCのビルドが 目標ですが何かアドバイスお願いします。
お前には無理だからあきらめろ、というのがもっとも親切なアドバイスな気がするが 聞く耳を持ってはくれないんだろうなあ……。
575 :
デフォルトの名無しさん :2010/10/06(水) 15:59:28
GCCのビルドってそんなに難易度高いんですか? configure+makeで全自動でできるんじゃないんですか? 一応手順通りにやっているのですが、ウイルスができたり暴走したり して失敗しているのです。ツールが悪いんじゃないんですか。
無理にビルドする必要がないのなら無理にビルドしなくていいじゃない ツールが悪いのでビルドできません終了、ってことでいいじゃない
(´・ω・)もれも GCC ビルド中にウイルス認定されて隔離されるファイルがある が、それは誤診しているだけ ちなみに使っているアンチソフトは、ESET(゚∀゚)昔使っていた Norton に戻そうかしら・・・ まぁ某ウイルスソフトの誤診&勝手に削除に比べたら何て事無いけどw 取りあえず、Cygwin の所から必要なの DL して PATH 切って使えば良いじゃん 自前ビルドじゃないといけないのか?
バカは放っておけよ
GCCなんてかなりスキルを要求される相当難しいレベルのものに手を出すわりに なんとお粗末なレスをしてるのかと呆れるばかりだ。
>>575 > configure+makeで全自動でできるんじゃないんですか?
おいおい……
まさかstage1とかstage2とか全部すっ飛ばしてるんじゃないだろうなw
ちょっとは事前に下調べ位しろよ(ヤレヤレ
581 :
デフォルトの名無しさん :2010/10/06(水) 17:25:45
最後に触ったのがGCC2.95のころだったのでそのレベルで考えてました。 ステージ1?何の事だか分らないので調べます。
gccは3回コンパイルされて完成。
>>575 成功したといったり、出来なくなったといったり
どっちが正解なの?
どういう環境、どういう手順でやってるかがわからないので、(gccのどのverをビルドしてるのかも)
頓珍漢なレスが帰ってくるだけですよ。
少し前からログを読むと判るが、それ、質問じゃないから。
少なくとも
>>356 の頃には既に荒らしが棲み付いていたようだ。
>>400 過ぎる頃にはもう目も当てられない状況になってるし。
586 :
デフォルトの名無しさん :2010/10/06(水) 18:41:03
GCCのバージョンは4.5.1です。 Cygwinではconfigure+makeするとウイルス誤認とgenautomata.exe Permission denied というエラーが出て止まります。 minGWでも同じバージョンでconfigure+makeですがcc1.exeが暴走して WINエラーで止まります。どっちも失敗してます。正しいビルドの方法が わかりません。クロスコンパイラを作りたいと思ってます。 必ずしも必要なわけではないのですが、作れないと気持ちが悪いのと、 GCCの方がVisualStudioよりもバイナリの性能がいいので環境依存しない GCCを使おうと思っています。(依存しないというのは正しくないですが) WINで動くアプリの制作にGCCを使おうと思っています。
気持ち悪いと言って時間潰すのは無駄 出来上がったバイナリ使う方がいいよ
msysで4.5だとほげほげしないとビルドに失敗する。(動かないgccがでける) cygwinでのgcc4.5のビルドはやったことないけど、msysと同じ問題を抱えてるのかも gcc4.4系でやったら
589 :
デフォルトの名無しさん :2010/10/06(水) 19:01:38
難しいんですねやっぱり。4.4でも試してみます。 因みに、MINGWではmake stage1-bubble,make stage2-bubbleは 成功しています。それでも出来なかったら諦めます。
ふつうに出来合いのクロスコンパイラ使え
そのつかってるmingwのgccはver4.5じゃないの?
592 :
デフォルトの名無しさん :2010/10/06(水) 19:36:00
使ってるMINGWのGCCは4.5.0でCygwinは4.3.4です。 MINGWでmake compareまでできましたが、make checkで失敗します。 このままインストールするとせっかく動いている環境が破壊される かもしれないので、今日はここまでにします。
まさか、gccビルドするとき ./configure ほげほげ って、やってないよね
594 :
デフォルトの名無しさん :2010/10/06(水) 20:20:03
何もしてません。>./configure 一応通ります。
それ、間違い
gccでは推奨されないやり方の方があってるかな?
597 :
デフォルトの名無しさん :2010/10/06(水) 20:36:34
知りません。全く解りません。
>>592 > Cygwinは4.3.4です。
cygwinのMinGW32クロスビルド用のGCC4.5はなんで無視し続けてるんだ?
もれ configure ほげほげ → make でやってるんだけど、何かおかしいのか?
mkdirやって、そこにcdしてから そこでconfigureとmakeを実行 でわかるかな?
>>599 昔はそれでgccのビルドに失敗してたんだけど
最近は、成功するのかな?
むしろ最近はディレクトリ作ってそこでconfigureしろって文句言われて止まる
>>601 なるほろ、そなのか
取りあえず、もれの環境だと問題無く出来るお
stage1とかやってないって言ってるくらいだから、sourceディレクトリと別に buildディレクトリを作ったりはしてないんだろうね。 GCCのビルドやろうって人間としたらちょっと考えられない蛮行。
>>603 それだとGCCの初回のビルドは通るかもしれないけど、
それ以降の手順に進めなくないか?
606 :
デフォルトの名無しさん :2010/10/06(水) 20:52:59
Cygwinの方はエラーが出るので諦めました。 マニュアルの方にはディレクトリ作ってどうのとかいがありますが 作らなくてもできそうなのでやってません。 そのせいでできないのかもしれません。
592は途中で止まるっていってるね
なんのマニュアル見てるんだか、いまさら
gmpとかもmsysほげ.dllに依存したものつくったのかも
610 :
デフォルトの名無しさん :2010/10/06(水) 21:00:06
このスレは教え方が悪い。教える気あるのか。 あれがだめこれがダメ言う前に正しいコマンドでも教えてみろ
>>610 センスのない人間は止めたほうがいいんじゃない?
小出し君は出来ないと怒るのかな
614 :
デフォルトの名無しさん :2010/10/06(水) 21:05:24
make LANGUAGE=c で出来たよ。余計なものはいらない。
はいはい、よかったね
configure に --disable-bootstrap やってるから 3-stage は無視してるお(゚∀゚)
マニュアルも無視する、検討できる実際の手順やログも出さない、そりゃ釣りとしても低レベル過ぎだわww
mingwなgccでgccのmake checkやってるいってたけど msys用のdejagnuはなかったような? 自力でいれたんかね? 探せばあるみたいだけど...
cygwinのパッケージの中に mingw64-i686-gcc mingw64-x86_64-gcc ってのがあるじゃないか
>>620 そうそう。もう何回も出てるのにね、その話は。
悪いが見落としてた。 いつ頃、入ったの?
調べた。 先月の中頃だった。
MinGWとEclipse-CDTを組み合わせて使う事は出来ますか?
>>618 (´・ω・)Core と G++ しか使ってないですお
>>625 javaはダメってことで
昔は、gcc(2.9の頃かな)本体のbuildでこけてたから、知らないうちに進歩してるんだね。
cygwinのパッケージには見えなかったな、申し訳ない
そのあとにも前にもcygwinのパッケージって言ってんのにねwww
32bitのmingwなdllはここにあるのか /usr/i686-w64-mingw32/sys-root/mingw/bin/
cygwinの環境でgcc-4.5.1をbuildしてみた。 gccのbuildに必要なパッケージをinstall $ tar xjf gcc-4.5.1.tar.bz2 $ mkdir cygwin $ cd cygwin $ ../gcc-4.5.1/configure --disable-win32-registry --enable-languages=c,c++ CC=gcc-4 CXX=g++-4 $ make の手順で無事終了 make installでこけるかどうかはやってない。make checkも
面白い面白い MinGW4.5.1+Eclipse Heliosで完璧じゃん
MinGWとEclipseについての質問です コンソール画面にprintf()などで出力した文字列が現れるのは scanf()で入力した後になって頭が混乱するんですけど、fflush(stdout); なんかを入れるとデバッガで停止します 何とかいい方法はないでしょうか?
一例ですが printf("x = "); fflush(stdout); scanf("%d", &x); printf("y = "); fflush(stdout); scanf("%d", &y); printf("z = "); fflush(stdout); scanf("%d", &z); こんな感じで書かないとコンソール出力がうまく行きません コマンドプロンプトに出るような感じではうまく行かないでしょうか?
改行しても構わなければ\n追加かputsに 行バッファリングだからさ
>>635 ありがとうございます
Eclipseのコンソール出力がコマンドプロンプトと挙動が違うので迷ってました
やってみます
うーん\nを付けてもだめですね・・・ 1 2 3 x = y = z = いちいちfflush()しないとだめというのも気持ち悪いなあ
setvbuf(stdout, NULL, _IONBF, 0); これでいいんじゃね
>>638 うまく行きました
ありがとうございます
C++の場合はstd::endlを最後に付けるようにしているので
フラッシュされますが、Cの場合はバッファリングモードそのものを
OFFにしないといけないみたいですね
Eclipseの開発元にコンソール画面のプロパティで設定出来るように
メニューを付けてもらえないかメールを送っておきます
>>639 いや、最後の2行だが、多分だめじゃないかな
バッファリング戦略はstdioの話、つまりユーザが書いてるプログラムのプロセスに
属する問題なので、Eclipseという外部プロセスからどうこうできる話じゃない
ふつーstdioでは標準出力が端末の場合(isatty()が真を返す場合)にのみ
行バッファリングにする
Unixだと擬似端末という仕組みを使ってttyに出力しているようにみせかけることも
できるが、Eclipseは単にパイプで入出力しているんだろうし
Windowsではいずれにせよptyは使えないんだからダメだろう
>>641 そういう事情があるんですね
という事はMinGWのコマンドプロンプトはむしろ異端的な環境みたいだと
本当はEclipseからコマンドプロンプトを呼び出せればいいんですが、それは
無理みたいだしC言語の仕様という事で諦めるしかないですかね
その点Dev-C++はコマンドプロンプト出力だから良かったよな 開発が停止してしまったのは惜しい Eclipseの真の強力さはそのデバッガにある
windows8からコマンドプロンプト無くなるらしいのに しかもscanfとか、いや何でも無いけど
「らしい」とかそんな不確定要素はいらん
何らかのコマンドラインインターフェイスは残すだろ PowerSehell を推したい意向じゃなかったっけ。
XPのコマンドプロンプトも全然DOSとは関係ないしな
WSH 涙目
cygwin環境でmingwなgccをクロス?ビルドしようと思えば出来るね。 msysの立場が微妙だけど、mingw64でもmsysの配布をやってるんだ。
キター Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒(。A。)!!
653 :
デフォルトの名無しさん :2010/10/12(火) 15:01:54
mingw32のシェルで日本語の入力ができません。 これは仕様ですか?Cygwinで入力した文字が正しく認識されません。 GCCのバグのようですが解りません。mingwのコンパイラでは同じプログラムで 正常に動きます。日本語処理に詳しい方教えてください。
>>653 問題を整理してくれ。問題を一つずつ主語と目的語を明示して書き直すだけでずっと判り易くなるぞ。
うん
触るなと。 上の方のログ見ればどんな奴かわかるだろ。
657 :
デフォルトの名無しさん :2010/10/12(火) 16:20:44
Cygwinをいじっているうちにおかしくしてしまったようで、 同じプログラムが同じように動きません。文字コードを入力して 表示するプログラムなのですが日本語の2バイトコードが正しく 表示されません。CygwinのGCCでコンパイルするとおかしくなります。 MINGWのコンパイラだと正常に認識します。 もう一つはmingwのシェルですが日本語を入力しようとしても 文字が消えてしまいプログラムに引数渡しができません。 以前は問題なく動いていたと思うのですが今日突然おかしい事に 気づきました。これは今まで気づかなかっただけで普通の現象なの でしょうか。日本語がコマンドプロンプトから入力できないことは ないと思うのですができません。
658 :
654 :2010/10/12(火) 16:22:54
cmd.exe使えって言われないのが不思議
質問です。 普通にmsysをインストールして普通に起動したらDELキーを押したとき「~」が出るわ、 lessコマンドの表示でカーソルキーが使えないわで何か変なんですけど、 どう設定すれば正常になるでしょうか?
それが正常
mingw, msys の GNU make で -jN がデッドロックしない版を呉
msysでcmdのインターフェースがすごく使いにくいからrxvt使おうとしたら日本語だめだめだった・・ minttyは便利だな。 設定もパッチもいらずにそのままで使えるぜ。
ckw 使おうぜ
gcc-4.6 で mingwrt-3.18, w32api-3.15-1 を build した後、生成されたファイルを上書きインスコ 試しに以下のソースを build してみたんだけど、出来上がった実行ファイルは動かなかった(´・ω・`) #include <stdio.h> int main(int argc, char *argv[]) { printf("hello, world\n"); return 0; } どっちが原因で動かない実行ファイルが作成されるのか試してみたんだけど、どうやら mingwrt-3.18 らしい とりあえず w32api-3.15-1 は、問題無いみたい・・・上のソースじゃ確認にもならないかもだけど・・・ ちなみに環境は XPSP3 の自前ビルドです えらいひと修正してくんないかな・・・(´・ω・`)スキル無いもれは他力本願ですスマン
>動かなかった(´・ω・`) を詳しく書かンと相手にされないよ。ソース晒して、追試してじゃ...
> (´・ω・`) コテ付けろ、あぼーんしづらい
Cygwinにg++の4.5入れたいんですが、ソースしかありません コンパイル法を教えていただけないでしょうか
TDMでいいじゃん
$ gcc-4 -v でconfigureが出てくるのでそれを改良してやるんだね。
>>670 ビルドされたのあるじゃん(# ゚Д゚)プンスコ!!
>>667 lto-pluginで
*** Warning: Trying to link with static lib archive ../libiberty/pic/libiberty.a.
ってのが出て、ビルドがこけるぞ
>>667 mingwrt-3.18が駄目なときの回避方法を書いてくれ
特に駄目って事ないみたいだけど...
とりあえず、linuxな環境で作ったmingwなgcc4.6でコンパイルしたruntimeだと 問題ないけどね、hello world 君の環境で動かない時にwindows君はなんか文句は言わんのかね? なにを基準に動かないと言ってるのかいまいち不明
677のサイトのやり方だと出来損ないのgccができそうだけど 動かんgccのconfigureのオプションを晒してくれ
>>680 binutils-2.20.51
../binutils-2.20.51/configure --prefix=/mingw_new --with-sysroot=/mingw_new --with-build-sysroot=/mingw_new
--build=i686-pc-mingw32 --target=i686-pc-mingw32 --infodir=/mingw_new/share/info --mandir=/mingw_new/share/man
--libdir=/mingw_new/i686-pc-mingw32/lib --includedir=/mingw_new/i686-pc-mingw32/include --enable-64-bit-bfd
--enable-targets=i686-pc-mingw32,x86_64-pc-mingw64 --disable-bootstrap --disable-werror --disable-nls --enable-static
--disable-shared --enable-threads=yes --disable-multilib --disable-libada --enable-libssp --disable-rpath --with-host-libstdcxx=-lstdc++
--with-ppl=/mingw_new/sup --with-cloog=/mingw_new/sup --with-gmp=/mingw_new/sup --with-mpfr=/mingw_new/sup
--with-mpc=/mingw_new/sup --with-libelf=/mingw_new/sup --enable-lto --with-pic --with-zlib --enable-plugins
gcc-4.6
../gcc-4.6-20101023/configure --prefix=/mingw_new --with-sysroot=/mingw_new --with-build-sysroot=/mingw_new
--build=i686-pc-mingw32 --target=i686-pc-mingw32 --infodir=/mingw_new/share/info --mandir=/mingw_new/share/man
--includedir=/mingw_new/i686-pc-mingw32/include --enable-languages=c,c++ --enable-version-specific-runtime-libs --disable-bootstrap
--enable-sjlj-exceptions --disable-win32-registry --disable-werror --disable-nls --enable-static --disable-shared --disable-decimal-float
--enable-threads=win32 --disable-multilib --disable-libmudflap --disable-libada --enable-libssp --disable-libgomp --disable-rpath
--disable-debug --disable-libstdcxx-pch --with-host-libstdcxx='-lstdc++ -lsupc++' --with-ppl=/mingw_new/sup --with-cloog=/mingw_new/sup
--with-gmp=/mingw_new/sup --with-mpfr=/mingw_new/sup --with-mpc=/mingw_new/sup --with-libelf=/mingw_new/sup --enable-lto
--with-system-zlib --enable-fully-dynamic-string --with-pic
>>681 続き
w32api-3.15-1
../w32api/configure --prefix=/mingw_new --build=i686-pc-mingw32 --target=i686-pc-mingw32 --libdir=/mingw_new/i686-pc-mingw32/lib
--includedir=/mingw_new/i686-pc-mingw32/include
mingwrt-3.18
../mingwrt/configure --prefix=/mingw_new --build=i686-pc-mingw32 --target=i686-pc-mingw32 --libdir=/mingw_new/i686-pc-mingw32/lib
--includedir=/mingw_new/i686-pc-mingw32/include
>>678 作成された a.exe を実行すると windows がエラーダイアログを表示
a.exe 単体のエラーで ntdll.dll とか他のを巻き込んでのでは無かったです
ちょと今すぐには確認出来ないので、また後でエラー表示内容をアップしたいと思います
> --enable-static --disable-shared にしてるから、mingwrtにもいるんじゃないだろうか?
>>681 補足
cloog-ppl-0.15.10
gmp-5.0.1
libelf-0.8.13
mpc-0.8.2
mpfr-3.0.0-p7
polylib-5.22.5
ppl-0.11
zlib-1.2.5
----------
bzip2-1.0.6
dlfcn-win32-r19
libiconv-1.13.1
pthreads-w32-2.9.0
よう詰め込んだもんだ dllとstaticが混在して、環境破壊してるような?
mingwrt の configure に static.shared の項目無かったから省いているんだけど 後で試して見ます すいません、眠くなってきたので取りあえず此処までで・・・ レスありがとうございました(´-ω-`)オヤスミナサイZzzz
おはようございます。
これから仕事なので手短に
>>684 mingwrt-3.18
configure: WARNING: unrecognized options: --enable-static, --disable-shared
やっぱり、駄目ですね
>>683 windows が表示したエラーダイアログ内容
----------
エラー署名
AppName: a.exe AppVer: 0.0.0.0 ModName: a.exe
ModVer: 0.0.0.0 Offset: 00007fff
----------
>>689 追記
hello, world も表示されないまま、エラーで落ちます
--enable-static --disable-shared でgcc4.6作って、
上の続き runtimeをBUILDして、hello worldをコンパイルしてみたけど 特に問題はでなかったな。 動くものと動かないものをバイナリーで比較してみるぐらいしか...
>>692 そちらは問題無かったですか・・・
多分、もれの環境が原因なのかもですね
一応、動くものと動かないもの(※1)のバイナリ比較はしてみましたが、GCC-4.6 で生成された実行ファイルのサイズは同じものの
中身は違うものでしたね・・・動かないんだから当たり前か・・・orz
もう少し、色々と試してみようと思います
※1
動くもの:GCC-4.5.2 環境で build した mingwrt-3.18 使用時
動かないもの:GCC-4.6 環境で build した mingwrt-3.18 使用時
crt2.oがくさそうだから objdumpで逆汗とかして比べてみたら
汗くさそう…
MinGWを使用して、 リンカスクリプトというものを勉強しています。 1.勉強に使っているソース Test1.c #include <stdio.h> int main(void) { printf("hoge\n"); return 0; } 2.gcc Test1.cでコンパイル・リンクし出来上がった a.exe をobjdumpで調べたところ、 > objdump -h a.exe a.exe: file format pei-i386 Sections: Idx Name Size VMA LMA File off Algn 0 .text 000009b4 00401000 00401000 00000400 2**4 1 .data 00000050 00402000 00402000 00000e00 2**4 2 .rdata 000000d0 00403000 00403000 00001000 2**4 3 .bss 000000e0 00404000 00404000 00000000 2**4 4 .idata 00000294 00405000 00405000 00001200 2**2 となっていました。また、a.exeは正常に動作します。
697 :
696 :2010/11/01(月) 21:47:35
3.最も単純なリンカスクリプトを作りたくて下記をScript1.xの名前で作成しました。 SECTIONS { . = 0x00401000; .text : { *(.text) } . = 0x00402000; .data : { *(.data) } . = 0x00403000; .rdata : { *(.rdata) } . = 0x00404000; .bss : { *(.bss) } . = 0x00405000; .idata : { *(.idata) } } 4.gcc -T Script1.x Test1.cでコンパイル・リンクしたところ下記のエラーが出ます。 ..\mingw32\bin\ld.exe: warning: dot moved backwards before `.rdata' ..\mingw32\bin\ld.exe: section .idata.1 [00403000 -> 00403013] overlaps section .rdata [00403000 -> 004030cf] ..\mingw32\bin\ld.exe: section .bss [00404000 -> 004040df] overlaps section .idata.2 [00404000 -> 00404003] collect2: ld returned 1 exit status 最低限のリンカスクリプトはどう書けば良いのでしょうか? 参考になるサイト等あれば教えて頂けると助かります。 (/MinGW/mingw32/lib/ldscripts/i386pe.xは見ましたが、 ゴチャゴチャしていて私には理解できませんでした。)
エラーメッセージからすると .idata.1 と .idata.2 というセクションがあってそれが指定されてないからアドレスが上手く割り当たってないように見える *(.idata.*) にしてみたら
>>698 とりあえず
*(.idata$*)
にしたらコンパイルリンクは通りました。
出来上がった a.exe を実行するとまともに実行できず、戻り値が127になったので、
i386pe.xを削る方向でやってみたところ下記で正常動作しました。
SECTIONS
{
. = 0x00401000; .text : { *(.text) *(.ctors); }
. = 0x00402000; .data : { *(.data) }
. = 0x00403000; .rdata : { *(.rdata) ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .; }
. = 0x00404000; .bss : { *(.bss) }
. = 0x00405000; .idata :
{
SORT(*)(.idata$2)
SORT(*)(.idata$3)
LONG (0); LONG (0); LONG (0);
SORT(*)(.idata$4)
SORT(*)(.idata$5)
SORT(*)(.idata$6)
SORT(*)(.idata$7)
}
}
↑の何故これだと上手く動くのか私には分かってません。
>>699 見てみます。
○ /ヽノ  ̄ ̄ ̄
Dev-c++ 4.9.9.2 に TDM MinGW gcc4.5.1を入れてみたんだけど 「Dev-c++ was unable to find GNU Make with current settings however there's GNU Make in Dev-c++'s bin directory.」 というエラーメッセージが消えなくて困ってます。 何か追加設定が必要なんでしょうか? (コンパイル自体は成功している) 4.4.1の時は、Compiler Option の Program タブの make の所を make.exe になってたのを mingw32-make.exeに修正すれば、エラーも出ず動いたのに。 ちなみにDirectoriesタブの設定は Binaries C:\MinGW32\bin Libraries C:\MinGW32\lib C Includes C:\MinGW32\include C:\MinGW32\lib\gcc\mingw32\4.5.1\include C++ Includes C:\MinGW32\lib\gcc\mingw32\4.5.1\include C:\MinGW32\lib\gcc\mingw32\4.5.1\include\c++ C:\MinGW32\include にしてあります。
>>693 わかったよ、動かない理由が。
runtimeが最適化されてると駄目みたい。
回避策としては、
CFLAGS=-g
とかで、runtimeをビルドする。
どの最適化オプションが影響してるかはわからない
>>702 tdmにはmakeは入ってないのでは?
>>703 追加情報
gcc/PR44997で報告されてる。
回避方法
runtimeのtlssup.cの
for (pfunc = &__xd_a + 1; pfunc != &__xd_z; --pfunc)
を
for (pfunc = &__xd_a + 1; pfunc < &__xd_z; --pfunc)
に
上書き後の動作も確認しました ありがとうございました 本家は、何で fix しないんだろう・・・
Invalid. で止まってるね。なんでだろ?
>>705 一応、確認なのですが
runtimeのtlssup.cの
for (pfunc = &__xd_a + 1; pfunc != &__xd_z; ++pfunc)
を
for (pfunc = &__xd_a + 1; pfunc < &__xd_z; ++pfunc)
に
ですよね?
>>709 そう
もう、4.6の環境消したからあとは自力で
ほかで引っかかる可能性は否定できない...
乙でした
これやれば、--disable-sharedをやらなくてすむよ lto-pluginのdllをつくるためのpatch --- gcc-4.6-20101023/ltmain.sh +++ gcc-4.6-20101023/ltmain.sh @@ -5438,7 +5438,7 @@ func_mode_link () case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) - valid_a_lib=no + valid_a_lib=yes case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift
mingw系特有の現象みたいだ。(他の環境だと再現しないようだ) -ftree-ccp が悪さしてるところまでは突き止めた。(-O1以上とペアで有効になる)
mingw(特有) の fix は後回しなのかな・・・(´Д⊂グスン
tar玉が20100626までは大丈夫みたい。 おかしくなるのは最適化で分岐が消えてるからなんだけどね。 自力で治すか、 出来ないなら、しっかりしたレポートを書いてお願いするしかないでしょう experimentalに特攻するのもどうかと思うけど...
おかしくないか?
UTF-8, UTF-16, UTF-32の三つのUnicode符号化形式サポートはまだですか?
何のことだ?
gcc4.6を気軽にさくっと試せるのは一体いつになるんだ・・・
来年の春ぐらいかな?
TDMさんの気まぐれ更新を待とう
動くことは動くだろうが、最終更新日が2004年2月のmingwとか使いたがるやついるのか?
日本語化しようとしたけど、gccに文字コード指定が追加されたので放置されたみたい
-ja じゃなくて -jp だから日本語化じゃなくて日本化プロジェクトだなw 名前からして先の運命が見えていたようにしか思えないww
TDM MinGWにしとけ Eclipseと組み合わせて使ってるけど今の所不都合無し
TDMはホント便利。 でもいつアップデートされるのかとかが不安なのがねw
TDM 4.6早くビルドして欲しいよな しかしC++0xでmoveとcopyの論争が起きているので様子見なのか
TDMって正式リリースされたもの以外も出すのか?
現状のTDM MinGWのgccのversionはいくつなんでしょう 私が1年ほど前試した時は、4.4.1-2 (記録違いだったらすまん)でした これだと本家の3.4.2(これだと日本語が使えた。現状インストールできるかどうかわからん) とあるプログラム速度の違いを調べたとき本家の方が2割ぐらい早かったんです。 プログラムの書き方の相性もあるでしょうが、 現状TDMは、どの程度進歩してるのでしょうか?
なんで自分でTDMのサイトにいかんのだ?
versionは、4.5.1 のようですね。 すいません。前にも言った様に入院しているもので ネットはのぞくだけで、ダウンロードしてテストができないもので 私の技量が低いもので、 前のものはインストールしないとverがよく分からなかったものですから
「前にも言ったように」ってお前が誰かなんて知らんよ。 過去発言を前提にするなら数字コテくらい付けろ。
737 :
735 :2010/11/23(火) 19:42:21
>>736 すいません。それぐらいはするべきでした。
自分ではここのところの話の流れからして
>>724 から連続して
質問しているつもりでした。
お前が退院するころには4.5.2なり4.6.0なりがでとるかもしれんだろ 暇もてあましてるなぁ、コンパイラの心配よりもコードのこと考えろよ
739 :
735 :2010/11/24(水) 13:06:38
>>738 コードのことについては、今扱わなければならないコードの簡単な方について
精読しているところです。
ついでに理論やアルゴリズムも調べているところです
あつかわなければいけないコードの複雑なほうはソースだけでも
病院に持ち込めない量があるので、それを解説した資料を見ているだけです
簡単な方を改造して複雑なほう並みの性能をだそうと思っているのですが、
うまくいくかどうかは分かりません
「前にも言ったように」ww 2chは便利屋じゃないんですぞ。
MinGWとLinux(Redhat)のgccで、動作を切り替えたいのですがどのようにすればよいでしょう? イメージ #ifdef デフォルトでMinGWのみにdefineされている文字列
gcc -xc -E -dM /dev/null を実行して、それっぽいものを探す
>>742 ありがとう。linuxのほうに
__linux__
とかあったんでそれを使うことにしました。
mingw-get-inst-20101030.exe を利用してインストールすると gcc.exe、g++.exe、gfortran.exe等は4.5.0のものが入りましたが、gcj.exeは無いようです。 4.4.0にはgcc-javaもあるようですが、gcjを使うには4.4.0のgccパッケージを一つ一つ手動インストールするか gcjを有効にしたものを自力でビルドする必要があるのでしょうか?
> 自力でビルドする必要があるのでしょうか? 自力でpatchを当ててビルドしないとlibjavaのビルド中にこけます。
ありがとうございます。 今の私には少しハードルが高そうですし、今すぐ必要というわけでもないので 暇が出来たときに少しずつ勉強しようかと思います。
MinGW(特にTDMとか)は、window7 とか Vista 上で動くんでしょうか? 64-bit 版があるので動きそうな気もするんですが。 新しい高速なマシンを買おうかどうか迷っているものですから。
動く
9xで動くかどうかならともかくVista/7で動くかどうかって・・・ 64bit関係ないし・・・
TDMに64bit buildがあるんだよ
64bitターゲットじゃなくて?
mingw-w64のgcc.exeやg++.exeは32bitバイナリなのを知らない人なんだろう
XPモードで動かせばいいじゃん
XPモードで動かせばいいですね
XPモードで動かせばいいのかよ
>>752 i686,x86_64の両方とも32bitバイナリなの?
cygwinのは32bitバイナリでしょ。
そなのか、ありがとう
759 :
デフォルトの名無しさん :2010/12/14(火) 11:02:56
TDM のMinGW を入れてテストし始めてるんだけど make は、どうするの 昔のものはmsysを入れてたんだけど 今はどうするのが普通なの? MinGWに付いてるmake? msysを入れるとしたら1.0.10?1.0.11?
>>759 俺は面倒臭いんでeclipseを入れている
これなら自動的にmakefileを作ってくれるし
761 :
759 :2010/12/14(火) 19:04:05
Java など、あまり使ってみたことが、なかったので(gcjしか) 見よう見まねでEclipse CDT を入れてみたら、中にMinGWとmsysが入っていて どうもそれを認識しているみたいだ MinGWの場所の設定の仕方を検索してみたら、 1.eclipse 2.ランゲージパック 3.MinGW 4.msys 5.gdb 6.CDT の順番にインストール するページぐらいしか引っかからない みているページが古いのか?
古いのですかね
>>761 >>759 のmake は、どうするの
これは、コンパイラ/ライブラリはTDMのを使い、IDE(Eclipse)を使って
クリック一発でmake(プログラム作成)する方法を教えてってことだろ?
いまのゆとり時代にプログラム開発でIDEを使わない、自分でmakefileを作成する
なんてことは信じられないよな。
で、Eclipseのインストール・設定でトラブっているのか?
MinGWとかコマンドプロンプト直書きかバッチで十分だろ。 それで足りないなら統合環境でって感じで。 バッチに"gcc *.c"とでもかいておk・・・ あっ・・・・
765 :
759 :2010/12/15(水) 07:22:58
ターゲットが二つ有り、それぞれによって、コンパイル時に定義するマクロを変えたり したいんですが、makeだとそれなりに分かるんですが、 IDE とかででそういうことができるようになるにはどれぐらいかかるんでしょう 実際、インストール・設定のレベルで出来ていません
>>765 eclipseなら左のプロジェクト名を右クリック→Makeターゲットで新規ターゲットを作成し、
再度左のプロジェクト名を右クリック→プロパティ→C/C++一般→パス及びシンボルの
シンボルタブにマクロを定義できる
TDM MINGWにGDB付いてますか? 付いてないならどうしたらいいですか?
ついてるなら安心だな。 これでやっと疑問から解決されて 晴れ晴れしい気分で明日を迎えることが出来るよ。
eclipse CDTの方が遙かに高機能なデバッガが付いてるんだけどな これはスレ違いか
それはデフォで入ってんの? それなら俺のコンピューターに知らず知らずのうちに 高機能なデバッガがインストールされていたと言うことが確定されるな。
変なのに捕まったね
774 :
デフォルトの名無しさん :2010/12/16(木) 00:53:13
すいません。 ひとつ聞きたいことがあります。 学校でプログラミングをコンパイルするときは ***.cのファイルをテキストエディタでつくり、 コマンドプロンプトで gcc-4 ***.c -o ***.exe というふうにやっています。 しかし家ではそのようにすると 「'gcc-4' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません」 とでます。家のパソコンにGccはないということでしょうか。 出来る限り学校のやり方に忠実に再現したいので、どうすればよいのか教えていただければありがたいです。
>>774 >出来る限り学校のやり方に忠実に再現
なら、学校の人(先生)に家のPC持ってくるから学校と同じようにGCCを使えるようにして
と頼んでね
マルチポストするような奴にはそれなりの対応しかしないってことだよ
>>775 ここには頭の良い奴なんて居ないから学校の頭の良い奴に相談しろ
>>774 要するに情報不足。
同じOSでもディストリビューションやリビジョンの細かい差もある。
それ以前に機械のアーキテクチャが違うなら同じの買わないとな。
GCCだけ同じバージョンでもそれは「学校のやり方に忠実」とは言えない。
まぁ、実際にはそこまで忠実でなくてもよいとは思うし、
初心者レベルならとりあえず適当にGCCを入れれば済む話だとは思うけど、
それの判断を第三者に求められても困る。
どの程度忠実であればいいのかを判断できるのは我々ではない。
とりあえず質問に答えるなら、自分がGCCをインストールしていないのであればGCCは無いんだろうということと、
インストール手順は
>>1-2 参照ということ。
>>774 とりあえずMinGW入れとけ。
それでダメならCygwinな。
ばかなの?
>「'gcc-4' は、内部コマンドまたは外部コマンド、 >操作可能なプログラムまたはバッチ ファイルとして認識されていません」 環境変数が設定されてないのかgccがインストールされてないかのどちらかじゃないの? lsコマンドあたりを打ってみてそれも表示されないなら Cygwinのインストールディレクトリ下のbin(C:\cygwin\binとか)を 環境変数pathに追加すればいい
Linux環境ごっそりもってくるのではなく bash、make、その他基本的なコマンド少々だけがほしいんですけど そういう場合はCygwinではなくMinGWを選択するのが正解なんですか?
何したいかによるから、正解は自分で見極めないと
>>785 「基本的なコマンド」とか言われてもわからないよ。すくなくともMinGWにはbash含まれてないだろ。
とりあえずCygwinだと大げさすぎるっていうんならMSYS使えばいいんじゃね。
>>774 これうけるしネタとして面白い
何故かって
>>774 の質問を「Cygwin + MinGW + GCC 相談室 Part 5」なんてスレッドに投稿してて、
それがすでに答えになってるからね。
つまりはマルチポストなんだろう、ということはわかるが、そうじゃないとしたら面白い
>>785 欲しいものだけ入れたいならUNIX-like toolsのような個々のコマンドの移植版を
必要に応じて入れるってのが普通なんじゃないの?
そもそも現時点で Cygwin の gcc-4 をインスコするのは、
とくに
>>774 にとっては地獄のような難易度だろうな。
せんせーが持ってる Cygwin のインストールキット一式をコピーさせてもらえ!
legacyすなわち1.5を見つけるのが一苦労。setup-legacyにて出てくる
エイゴのコワイ文言にひるむ。あげくのはてはこのスレじゃなかった板に再び爆撃。
792 :
785 :2010/12/17(金) 18:47:12
レスどうもです MinGW+MSYSというのがちょうどいい感じだったので導入しました
UNIXコマンドのいくつかを利用し始めると、だんだん別のが使いたくなって、 結局、Cygwin入れといたほうがいいということもある
Cygwinは見た目がダサい
折角なら andLinux 入れちゃえば?
ナイスで素敵な林檎にしなさい
ナイスで素敵な林檎にしなさいですね
798 :
デフォルトの名無しさん :2010/12/19(日) 13:08:22
gcc-4.5.2
cygwinでいらない機能だけアンインストールするのはどうすればいいですか?
setup.exeから指定
803 :
759 :2010/12/22(水) 22:36:46
私はeclipse 向いていないかもしれない 取りあえず、msys 1.0.10 を入れてTDMが早いのを確認したので そのまま、試行錯誤の末、Europaにpleiades-all-in-one-cpp-jre_20080303.zipを上書きして 何とか実行可能が動くところまではいったんだが -finput-charset=cp932 -fexec-charset=cp932 を設定しないと動かないプログラムを抱えていて、設定の仕方も分からないのでついでだから makefile プロジェクトを試すと org.eclipse.cdt.internal.core.index.IWritableIndex.getPrimaryWritableFragment()Lorg/eclipse/cdt/internal/core/index/IWritableIndexFragment; という内部エラーが出てなかなかそれ以上前に進めない。 eclipseの設定自体誤っているのでしょうか? 夜の1、2時間しかなかなか時間が取れないものでなかなか色々試せない
cygwinにはTDM GCCがないから古い環境でしか できないんですか?
低レベルな質問で申し訳ないんだが、CDTで 実行可能のプロジェクトで-finput-charset=cp932 -fexec-charset=CP932 などの コンパイルオプションは、どこで設定できるのでしょうか シンボルの設定箇所しか見当たらない。探し方が悪いのでしょうか?
探せばある。
MSYS+MINGW=CYGWIN ですか?
いいえ違います
えっ・・・・
POSIX 互換レイヤを用意してその上に Unix 由来のソフトウェア群 (コンパイラ等の開発ツールも含む) を載せたものが Cygwin 。 互換レイヤを指して Cygwin と云うこともある。 Unix と Windows の差は互換レイヤで吸収するので移植は簡単だが、 互換レイヤを経由するので若干パフォーマンスが低下する。 特に I/O 関連は性能の低下が著しい。 Mingw は GCC を Windows で動かせるようにしたもの。 GCC を使うにあたって最低限のツール類も含んでいる。 Msys は Mingw に加えて Unix Like なツールを移植したものとかのパッケージ。 Mingw や msys は互換レイヤを使わないので移植の際は面倒な部分が多いかも。
msysはcygwinからのforkだろ
msys+mingwはAutotools(configure, make, etc...)を使うための最低限の環境。 Cygwinだと大げさすぎるとかPOSIXレイヤに依存しないとかいう時に便利。 あと、Cygwinの互換レイヤのライブラリがGPLなんだよね。
pathの扱いがどれもこれも違いすぎて
インストーラで普通にインストールしたらサーチパスにカレントディレクトリが入ってて 某言語処理系のビルドのときにハマった。 いらんことするなと小一時間問い詰めたい。
msysがダウンロードできる場所がわかりません。 一杯ファイルがありすぎてどれかわかりません。
MinGWのgrepで、UTF-8でエンコードされているテキストファイル(日本語を含む)をgrepすることは、今可能でしょうか。MinGW-shellでやってみたのですが、うまくいきませんでした。
818 :
デフォルトの名無しさん :2011/01/03(月) 09:36:38
CCとかって定義されていないとおもうんですけど linuxとかだとできるんですか? 全然分かりません教えてください。
>>817 mingwはUTF-8対応していないのか?cygwinの1.7以降なら特に問題ないが
mingw-get-inst-ほげほげでmsysがいれられない?
cygwinて標準installだと当たり前のごとく使うコマンドがぼろぼろ抜けちゃうよね。 んで、面倒なんで全部にすると入れるのに時間が掛かる。 標準と全部の間にもう少し選択肢を入れてもらえないかと思う。
まるで標準と全部以外に入れられないかのような言い草だなw
>>822 MSYSの公式ホームページによると
msys1.0.0.11をいんすとーるしてから
msys coreとかをコピーするみたいなことかいてあるんだけど
全然意味わかりません。
最新のバージョンだとmingw getみたいなプログラムつかうんでしょ。
もっと詳しく教えてください!!
827 :
デフォルトの名無しさん :2011/01/07(金) 13:46:59
msysのbinフォルダーは環境変数に入れて ドスプロンプトから使えるようにしてもいいんですか?
それが普通の使い方 そして最終的にCygwinに落ち着く
スレ違いならスルーして下さい。
MinGwを使っておりますが
http://keicode.com/winprimer/wp12.php のプログラム(106行あります)を
gcc -o sample.exe sample.cpp -mwindows
とコンパイルすると
simple2.cpp: In function 'int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)':
simple2.cpp:22:14: warning: converting to non-pointer type 'UINT' from NULL
simple2.cpp:47:7: warning: passing NULL to non-pointer argument 1 of 'HWND__* Cr
eateWindowExA(DWORD, const CHAR*, const CHAR*, DWORD, int, int, int, int, HWND__
*, HMENU__*, HINSTANCE__*, void*)'
ってwarningが出ます。実行はできます。
VC++では正常にビルドできます。
mingwの設定に何か問題あるのでしょうか。
はじめてwinmain関数…というかwindowsプログラミングをします。
あ〜 ものすごい長い間悩んでいたのに何か私の使い方が 間違えてるっぽいことがわかりました。 何がいけないのかまだはっきりわかりませんがもう少し悩んでみます。 スレ汚しすいません。
>>826 mingw-get-inst-ほげほげ.exeを起動して
select componentで
MSYS Basic System
を選択すればいいのでは?
832 :
デフォルトの名無しさん :2011/01/09(日) 14:03:02
巷に売ってるLinuxネットワークプログラムの類の本は、Cygwin+GCCでいけますか?
いけてます
cygwinフルダウンロードで2ギガ近くあるな。
>>834 そもそもフルダウンロードするような類のものじゃないからいいんじゃね?
わからないひとはだまっててください
その話もう終わってるから
cygwinをフルインストールするやつは相当アホウ。
>>835 それには、本家MINGWが入っているのですが、どうやってそれを外すのですか?
843 :
842 :2011/01/13(木) 11:25:25
すいません。自己解決しました。 削ったら動きました
cygwinについて調べてみた。違うところあったらおしえて。 cygwinはlinuxのアプリケーションを実行することは出来ない。 cygwinにあるautoconfigとautomakeをwindowsで使えば linux用のソースコードをwindowsの実行ファイルとしてコンパイルできる。 ただしcygwinのダイナミックライブラリーが無いと実行できない。 Msysを使えばダイナミックライブラリーがなくても実行できるが コンパイルできないソースコードがある。
× autoconfig Msys ○ autoconf MinGW
x ダイナミックライブラリー
cygwinについて調べてみた。違うところあったらおしえて。 cygwinはlinuxのアプリケーションを実行することは出来ない。 cygwinにあるautoconfとautomakeをwindowsで使えば linux用のソースコードをwindowsの実行ファイルとしてコンパイルできる。 ただしcygwinのダイナミックリングライブラリーが無いと実行できない。 Msys+MinGWを使えばダイナミックリンクライブラリーがなくても実行できるが コンパイルできないソースコードがある。 posixを使わなければ絶対コンパイルできる。
×ダイナミックリングライブラリー ×posixを使わなければ絶対コンパイルできる。
cygwinのgccの標準ライブラリーはposixを使っているので cygwinでコンパイルしたソフトはどんなソフトでもダイナミックリンクライブラリーが必要である。 よってcygwinではGPLのソフトウェアしかつくることができない。 MinGW+M-SYSならGPL以外のソフトウェアを作ることが出来る。
850 :
デフォルトの名無しさん :2011/01/15(土) 11:21:30
windowsなバイナリを作りたい時はmingw系を使う unixなバイナリがほしい時はcygwinを使う でしょ
標準ライブラリーでもダイナミックリンクライブラリー必要?
必要 cygwin-gcc使った場合は、HelloWorldですらcygwin1.dllとcyggcc_s-1.dllを要求される
単なる標準入出力でさえ Windows と POSIX の実行モデルは違う。 そもそもプロセスの生成からエミュレートが必要なので、 Hello World どころか何もしないバイナリでも必要だよ。
854 :
デフォルトの名無しさん :2011/01/15(土) 16:01:42
実行時の初期化部分がcygwin1.dllにあるんだから、依存するのはしょうがないでしょ windowsはmsvcrt.dll
855 :
デフォルトの名無しさん :2011/01/15(土) 16:13:49
code::blocks
×windowsは
昔あった-mno-cygwinて無いのかな
858 :
デフォルトの名無しさん :2011/01/15(土) 19:51:42
普通にあるよ
>849 ×よってcygwinではGPLのソフトウェアしかつくることができない。 cyggcc_s-1.dll (gcc ランタイム) も cygwin1.dll (Cygwin ランタイム) も例外条項がついてる。 cygwin が OSI 認定オープンソースライセンスであることを要求するのでオープンソースライセンスで ある必要はあるけど GPL である必要はない。 >857 >858 gcc-3 にはあるけど gcc-4 にはないので代わりに MinGW クロスコンパイラを使う。
DLL依存はGCCだけ関係するんだから M-sys+minGWじゃなくてcygwinのGCC以外のツール+minGWが最強なんじゃないのか?
cygwinでconfigureとか走らせると死ぬほど遅いし どうせmingwターゲットでクロスコンパイルするならLinux上でやったほうがいいんじゃね Windows機なら、VirtualBoxでもいい cygwinよりはマシだと思う
それ言い出したらLinuxでMinGWを使うのが最強ってことになり実際そうである
>>862 そうだよね
GNU系のツールセット使うんなら、ファイルシステムやshell系のツール等が
Unix-likeでないと色々不便
cygwinでは擬似的にそれを達成できるけど、forkやファイルアクセスが非常に遅いので
プロセスを大量に生成しコンパイルするmakeのような作業に不向き
ということで、早々にLinuxでクロスコンパイルがベストという結論になったよ
colinux
ディストリによってはmingw系のパッケージが充実してるし
colinuxってx86のみじゃなかったっけ? cygwinもだけど、cygwinはただのユーザモードアプリだからAMD64でも動くわな いまだとVirtualBoxのほうがいいんじゃない
andlinux BOW
868 :
デフォルトの名無しさん :2011/02/01(火) 00:41:41
ふう
Cygwinコマンドのcatというコマンドボタンを cygwin画面で使いたいんです。 cat (option)[file name]が形式何ですか、file name=ten.txtとします。 cat option ten.txt としたんですが、エラーが出ました。 optionって何ですか?optionコマンドってあるんでしょうか?
すいません、質問取り下げます。
cygwinでsshd立てたんですが、接続してきた人がcygwinの外に出られないようにすることって可能ですか?
よく知らないけどファイルの所有権を sshdを立てるユーザだけ除外すればいいんじゃないの
プログラミング無関係
__stdcall __cdecl じゃなくて?
#define reserved_stack_size 8000h よ〜わからんけど、ここをいじるんじゃないの?
TDM版MinGW4.5.1、なんか重いなぁ・・・。
mingw-get-inst-20110211.exe で、MinGWとMSysインストールしたら、 Aviraでウィルスが検出された。 C:\MinGW\libexec\mingw-get\gui.exe [検出] TR/Spy.9216.58 トロイの木馬です
ひとり脱落。
>>875 「VCから使う」ってのがよく分からんけど、別プロセスにして呼び出すんじゃダメなの?
難しいことをやろうとしてる自覚がない人には何言っても...
cygwin入れてgccのバージョンは3.44です。 std::tr1::shared_ptr使いたいんですが、何をincludeすればいいんですか? 'std::tr1'has not been declared でエラーなります。 g++ test.cpp -o test って感じでコンパイルしてます。
3にtr1は入ってない
>>884 cygwinをupdateしてgcc更新したらできました。
失礼しました。
インターネットに繋がってないパソコンでcygwinをアップデート すんにはどうしたらよいですか?
繋がってるPCでDownload Withoutで必要なもの全部落とせ 繋がってないPCに何とかして持って行ってfrom Local
890 :
デフォルトの名無しさん :2011/02/18(金) 18:20:49
インターネットに繋がってないパソコンでMinGWをインストール すんにはどうしたらよいですか?
まるちんこ
いいえ初めてです><
893 :
890 :2011/02/18(金) 19:47:36
get-instのオフライン用的なものが欲しいです
ないなら、自分でつくるとか? Installerのソース見れるでしょ
(´・ω・`)はあ
897 :
890 :2011/02/19(土) 00:12:33
申し遅れました>< ネカフェからダウンロードして持ち帰りたいんです
ネット環境を使わせてくれる友達探したほうが...
(´・ω・`)はあ
携帯で接続したら
(´・ω・`)テザリングするお金無いです
net環境ないのにプログラムやるのは辛いかもね
(´・ω・`)そろそろ教えて下さい
mingwなgccが使いたいなら、tdmを落とせば、としか...
tdm最強 俺大好き
guile 2.0 が出たので mingw でビルドしようとしました。 すると libunistring が無いのでインスールするようにとメッセージが出ました。 configure: error: GNU libunistring is required, please install it. config.log を見るとこういうコマンドでチェックしようとしたようです。 configure:12953: gcc -std=gnu99 -o conftest.exe -g -O2 conftest.c -liconv -lunistring >&5 Mingw の gcc の場合、この -liconv と -lunistring の順番が逆でないと依存関係が解決できないのですが、 コマンドライン引数の順序を制御することは出来るでしょうか? ちなみに libiconv も libunistring も静的ライブラリとして用意しています。
自己解決。 こうやったらなんとかなりました。 LIBS="-lunistring -liconv" ./configure --prefix=/c/guile --disable-shared ちょっとダサい方法ですが、なんとかなったのでまあいいやという感じで。
と、思ったけど guile 2.0 はまだ Mingw 対応は充分じゃないみたいだね。 どうにかちょっとした修正でなんとかしようと mmap をのりきったと思ったら今度はネット関連が… そんなこんなで結局ビルドはあきらめたのでした。
初心者です MinGWを使えばWindows上でLinuxで動くプログラムを作れますか?
質問の意味がわかりません
912 :
910 :2011/02/22(火) 20:04:32.35
Windows上でMinGWを用いてコンパイルしたプログラムはLinux上で動きますか?
913 :
910 :2011/02/22(火) 20:07:40.36
すみません、訂正します Windows上でMinGWを用いてコンパイルして動作したプログラムのソースコードはそのままLinux上に持って行ってもコンパイル可能ですか?
MinGWで動作しLinuxでコンパイルできないプログラムも存在しえます 例えばMinGWではWindowsAPIを呼ぶことができますがLinuxではWindowsAPIを呼べません
915 :
910 :2011/02/22(火) 20:31:41.83
WindowsでLinux向けのC/C++のコードを書いていく上で、 Linuxでもコンパイル可能なソースコードだ、という保証を得るには何ができていればいいんでしょうか? 例えばCygwinのgccをEclipseから利用して、 それでコンパイルできていればLinux上でもコンパイル出来ますか?
>>915 Windows上でLinux動かして(colinuxとかvmwareとか)そこでコンパイル&実行するのが手っ取り早いんじゃね
>例えばCygwinのgccをEclipseから利用して、
C/C++の文法チェックならそれで十分だけど、ライブラリの依存関係に関しては全く役に立たない。
WindowsとLinux両方に存在するライブラリ「だけ」を使わないといけないから。
クロスコンパイル環境を構築するのはたいへん面倒くさい作業なので、
>>916 の言うような仮想マシンを用意する方法に一票。
>>915 どこから保証を得たいのですか?
Cygwin も gcc も Linux もそれ自体は何も保証しません。
あるがままのものとして提供されるのみです。
(仕様は存在しますが。)
あなたが書くソースコードについてなんらかの保証を与えるのはあなたの責任です。
POSIXに規定された物しか使用しなければ99%くらいは保証できるんじゃね まぁLinuxがPOSIXに準拠してるって保証もないが 一応どっかの会社がUNIX認定を取ったことあったよね?
保証とは関係ない話だけど、逆の発想したほうが上手くいくこと多いような Linuxで動かすために書いたものをWindowsでも動くようにするためには・・・って感じで
cygwinはnewlibベースだからね。 こまかい違いをわかってないと苦労するだけでしょ。
WindowsでMinGWを使って書いたQtのソースは Linuxでコンパイルしたらそのまま動きました
>>913 mingw cross 用の gcc と binutils を持ってくれば問題なくコンパイル可能だよ。
ちなみにウチ(f12)だと
mingw32-runtime
mingw32-gcc-c++
mingw32-cpp
mingw32-filesystem
mingw32-binutils
mingw32-gcc
mingw32-w32ap
生成したバイナリは Win32 上でしか動作確認ができないことは言うまでもない。
あと、ソース中に #include <Windows.h> とかあったら発狂してくれ。
LinuxネイティブがターゲットならLinuxでやれよって
linuxっていってもいろいろあるでよ。archの違いもわかってないようだけど...
linuxが何かわかってない奴が多いな。 linux=コア。 コレくらい分かるよな。 cygwinのコア=linux。 これ常識。
面白いと思って書いてるんだろうなぁ
えっ、まさか面白そうに見えた? 全然そんなつもりで書いてないんだけど。 逆にそういうことを書かせたと言うことは、 心の中では面白いと思ったんだろうな。 それを認めたくないからそのようなレスをしたと・・・ 最後に、見透かされてしまって逆上しないでね。
Cygwinでssh-agentとkeychain使ってcronでssh接続を試みようとしてるのですが Permission denied (publickey).と出て接続できません。 手動だと接続できるので多分cronでkeychainが使えてないっぽそうなのですがどうすればいいのでしょうか? ググってみると source ~./keychain/$HOSTNAME-sh でcronでもkeychainが有効になると書いてあったのでやってみたのですが接続できませんでした。 ご教授願います。
>>930 cron で keychain を使うという発想がそもそも間違ってると思われるので
新しくフレーズなしの cron 専用秘密鍵公開鍵ペアを作った上で command= とかで制限付けた authorized_keys のエントリ作るのがいいと思う。
ってここじゃスレ違いだった、ごめん。
933 :
デフォルトの名無しさん :2011/02/24(木) 21:16:20.23
MinGW全く知らないんだけど MinGWシェルから何かmake installするときって export INCLUDE_PATH=/usr/local/include とかのパスは"C:\MinGW\include"とかになるの? それとも"C:\MinGW"がルートになって/include でいいとか?
934 :
933 :2011/02/24(木) 21:21:03.77
自己解決しました
935 :
930 :2011/02/25(金) 13:15:01.29
>>931 スレ違いでしたか、すいません。
ありがとうございます。フレーズなしでcommand制限掛けるという発想はありませんでした!
ちなみにこういった質問はlinuxの質問系スレのほうがよかったでしょうか?
今後のために出来れば誘導お願いします。
>>935 UNIX板にCygwinスレあるでよ
URLは今わからんので自力で探してくれ
Cygwin って Unix 板なのか。 なんか変な気がするなぁ。
940 :
930 :2011/02/25(金) 19:51:14.96
UNIX板だったのですね みさなんありがとうございます!
えくりぷすスレで聞いたら誘導されたのでこっちで質問します。 Eclipse3.5.2+CDT+mingwでC++使ってるんですが、メモリリークの検出はどうすればできますか。 具体的にはVisualStudioの_CrtSetDbgFlag()みたいなやりかたってありますか。
Mudflap や valgrind を使えばいいと思うよ。
Windowsでvalgrindは無理だろう
valgrindはWinダメでmudflapはmingwじゃ使えなかった(´・ω・`)
リーク検出くらいやっつけで作っちゃいなYO
ダブルクリックでシェルスクリプトを使うようにできませんか?
できます
ありがとうございます。 やり方はわかりませんが出来ることがわかってよかったです。
環境、ターゲットは、win32api / TDM's minGW32 です。 winsock2 / iphlpapi.h の ULONG WINAPI GetAdaptersAddresses(ULONG,ULONG,PVOID,PIP_ADAPTER_ADDRESSES,PULONG); をリンクしたいのですが、インポートライブラリがみつからないみたいです。 mingw32-gcc -mwindows -o sss.exe sss.o maindialog.o debugout.o wmalloc.o sss.cof f -lwsock32 maindialog.o:maindialog.c:(.text+0x58): undefined reference to `GetAdaptersAddre sses@20' maindialog.o:maindialog.c:(.text+0xda): undefined reference to `GetAdaptersAddre sses@20' maindialog.o:maindialog.c:(.text+0x21c): undefined reference to `getnameinfo@28' どのライブラリにはいっているのでしょうか?
API名でぐぐれば1つめのサイトに出てるのに何故調べようとしないんだろうか
>>951 MSDN で OK とは知りませんでした。ありがとうございました。
wsock32 の立場は・・・
Cygwin上のgccでプリプロセッサをかけて 下のようなソースコードを見たいんですがどうすればよいですか? gcc -E -P a.c > a.txt とか色々試してるけど、ヘッダファイルが展開されてしまいます。 gcc -E とかの出力から自分で加工するしかないでしょうか? --- a.c #include <stdio.h> #define MAX(X,Y) ((X)>(Y)?(X):(Y)) int main() { printf("%d\n", MAX(10,20)); return 0; } --- ほしい出力 #include <stdio.h> int main() { printf("%d\n", ((10)>(20)?(10):(20))); return 0; }
>>954 sed 's/^#include/include/' a.c | gcc -E - | grep -v '^#' | sed 's/^include/#include/'
956 :
954 :2011/03/24(木) 20:47:32.30
>>955 ありがとうございます。
これでやりたいことができます。
基本的な図形などの描写をプログラムを兼ねて勉強したいので Xwindowsを利用したいんですが、Windows7上では無理ですか? cygwinも使ってます。Unixをダウンロードしないとだめでしょうか?
基本的な図形などの描写をプログラムを兼ねて勉強したいので Xwindowsを利用したいんですが、Windows7上では無理ですか? cygwinも使ってます。Unixをダウンロードしないとだめでしょうか?
>>959 Xwindowsはwindows7でよいと思います!!
最近は Xwindows ってなんですかとか言う人居なくなったの?
Cygwin使ってます。 Cライブラリのパスを確認するシェルコマンドってどうしたらいいですか? 例えば"stdio.h"とかprintf関数のパスを調べたいです。
>>963 gcc -print-search-dirs
>>964 こうなりました・・・orz
gcc-print-search-dirs: Command not found.
何故でしょう。
空白
>>966 gcc: print: No such file or directory
gcc: search: No such file or directory
gcc: dirs: No such file or directory
gcc: no input files
となりました・・・
正確に書き写せよw gcc と空白と -print-search-dirs だ
gcc: unrecognized option `-printf-search-dirs' gcc: no input files となりました・・・orz /usr/include/stdio.hなんですよね? printfとかはどこにあるんですか?関数はstdio.hの中に含まれてるんですか?
わざとやってるだろお前
正確に書き写せよ糞
>>969 ひょっとしてそれはギャグでやってるのか?
-printf-search-dirs じゃない!! -print-search-dirs だっつの。
>>954 をコピペすればいいだけなのになんでそんなアホなやりとりをするのか小一時間問い詰めたい。
973 :
デフォルトの名無しさん :2011/04/05(火) 00:14:25.00
>>972 まじですいません。
やっと出てきました・・・
20行くらい出て来ました・・・何がなんだか。
Dカップなら許す。
>>973 その libraries:= 以下に書いてあるのが、Cのライブラリのパスだよ
gcc はそこに書いてあるパスを先頭から順に辿って目的のライブラリを探すよ
printf の場合は libc.a というライブラリに入っていて、パスを辿っていくと /usr/lib に見つかるよ
でもまぁそれはただのインポートライブラリで、実際のコード自体は共有ライブラリの方に入ってるよ
cygwin の場合は /bin/cygwin1.dll っていう共有ライブラリを使うよ
objdump -t /bin/cygwin1.dll ってやればシンボルの一覧が見られるから、その中に printf も入ってるのがわかるよ
objdump -d /bin/cygwin1.dll ってやれば中身を逆アセンブルすることもできるよ
objdump をインストールしてない? setup.exe 実行してパッケージの一覧から binutils を探してチェック付けとくといいよ
いつも #include している <stdio.h> は、察しの通り /usr/include にあるけど、 printf の宣言が書いてあるだけで、中身は無いよ
977 :
デフォルトの名無しさん :2011/04/05(火) 08:04:52.03
>>975 ありがとうございます!!
ちなみにCygwin1.dllは入ってません・・・
じゃあそれはcygwinじゃないな
979 :
デフォルトの名無しさん :2011/04/05(火) 19:00:16.95
>>978 Windows上でCygwinのホームディレクトリから実行ファイル開こうとすると
Cygwin1.dllがないので〜って出てくる。
パスが通ってないだけだったり
他に話題がないからってバカに構うなよ