GCCについて part7
..
369:デフォルトの名無しさん
06/10/16 16:39:25
>>361
Wikipedia日本語版に、GCCはK&R Cで書かれているとあるが、実際のところどうなんだろう?
370:デフォルトの名無しさん
06/10/16 17:25:14
ソース見ればわかるじゃん。
371:デフォルトの名無しさん
06/10/16 17:33:10
どう見てもANSI Cです。(関数宣言のあたり)
ってGREPすると__attribute__も少しは見かけるな。
372:デフォルトの名無しさん
06/10/16 17:51:02
環境:cygwin+3.4.4-2シリーズ
fURLリンク(ftp.dti.ad.jp)
URLリンク(www.gnu-pascal.de)
解凍後
./configure --verbose --prefix=/usr --exec-prefix=/usr
--sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib
--mandir=/usr/share/man --infodir=/usr/share/info
--enable-languages=c,ada,c++,f77,pascal,java,objc
--enable-nls --without-included-gettext --enable-version-specific-runtime-libs
--without-x --enable-libgcj --disable-java-awt --with-system-zlib
--enable-interpreter --disable-libgcj-debug --enable-threads=posix
--enable-java-gc=boehm --disable-win32-registry --enable-sjlj-exceptions
--enable-hash-synchronization --enable-libstdcxx-debug
make CFLAGS='-O' LIBCFLAGS='-g -O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
make install
できた。
373:デフォルトの名無しさん
06/10/16 21:19:40
>>372
乙彼サマですっ(゚Д゚)>ビシッ
374:デフォルトの名無しさん
06/10/17 02:55:16
俺もできることはできたんだけど何故かディレクトリ設定がしっちゃかめっちゃかになっていて
Cygwinのインストーラーで入れるgccバイナリのように何も考えずに使うことはできない状態。
やっぱりCygwinによくなじむgccはCygwinの中のおっさんにしか作れないのかもしれない。
けどおっさんは例え3.4.4に不具合報告されていようと自分自身がその不具合に遭遇しない限り
ビルドする気なさげっぽいんだよな。
375:デフォルトの名無しさん
06/10/17 08:34:07
説得する側の説得力と貢献が足りないのでは?
376:デフォルトの名無しさん
06/10/18 18:42:18
というわけでCygwinからMinGWに鞍替えします。
377:デフォルトの名無しさん
06/10/18 22:52:49
URLリンク(xxx.upken.jp)
”MinGW用”GCC 3.4.6バイナリ
Pass:mingw
有効期限は3日、ダウンロードは5回までです。
378:デフォルトの名無しさん
06/10/18 23:18:35
転載要る?
379:デフォルトの名無しさん
06/10/18 23:37:12
( ^ω^)
380:デフォルトの名無しさん
06/10/19 02:19:58
スレの住人数的に5人で十分つーか普通は自分で作れるっしょ。
381:デフォルトの名無しさん
06/10/19 18:10:19
自分で作れない奴は使えなくていいんだよ
382:デフォルトの名無しさん
06/10/19 18:53:15
gccのコンパイルは自分でやったこと無いけど、
某g*cはコンパイルに丸一日かかると聞いたので
時間が惜しい人もいるかなあ、と。
383:デフォルトの名無しさん
06/10/19 20:39:49
そんなに時間が惜しければ、寝ていたり出かけていたりする間にやらせれば良いだけ。
384:デフォルトの名無しさん
06/10/19 21:33:05
自分でやりたくなければ、バイナリが配布されるのを待てばいいじゃない
385:デフォルトの名無しさん
06/10/19 21:41:31
半年以上待ってます。
386:デフォルトの名無しさん
06/10/19 21:47:36
--enable-languages=c,c++
だったらすぐじゃん。
java→SUN使え
pascal→でるふぃ使っとけ
ada→知らん
f77→知らん
objc→知らん
387:デフォルトの名無しさん
06/10/20 00:59:57
c++を友好にするだけでけっこうかかるぞ。
それにやっぱ今はjavaを有効にしてネイティブコンパイルするのがトレンドじゃないか。
388:デフォルトの名無しさん
06/10/20 01:06:15
>>387
どうせ不安定
389:デフォルトの名無しさん
06/10/20 17:36:58
>>388
そこが萌える
390:デフォルトの名無しさん
06/10/20 18:22:23
>>389
ツンデレ?
391:389
06/10/20 18:41:30
>>390
今のgcjはツンデレどころかツンツン
#とくにWin32環境では…
392:デフォルトの名無しさん
06/10/23 00:41:56
スレリンク(tech板)l50
停止しました
393:デフォルトの名無しさん
06/10/23 07:53:02
gccとはちと離れますが、
gasでのIA32のニーモニックやオペランドの表記方法について解説した文書ないですか?
394:デフォルトの名無しさん
06/10/23 08:11:31
本でいいならCQ出版のx86アセンブラ入門
Webならググレ
395:デフォルトの名無しさん
06/10/23 18:32:24
ぐぐってもちゃんとしたのは出てこないな。サワリだけのページならあるけど。
396:デフォルトの名無しさん
06/10/23 21:48:43
>>393
URLリンク(mysearch.intel.com)
URLリンク(www.linux.or.jp)
> gasの欠点はgasがAT&T-syntaxを使っていることです。これは
> Intel-syntaxと大きく違っています。 DOSユーザーはほとん
> どがIntel-syntaxを使っています。
AT&T Assembly Syntax | Sig9
URLリンク(sig9.com)
がんがれ>>393
397:デフォルトの名無しさん
06/10/24 00:52:06
>>393
URLリンク(homepage1.nifty.com)
URLリンク(www.mars.sannet.ne.jp)
398:デフォルトの名無しさん
06/10/24 02:04:20
>>393
gas付属のinfoは?
399:393
06/10/24 04:46:38
>>396-397
ありがとうございます。
教えていただいたページを参考になんとかなりそうです。
>>398
私は英語がダメで……というわけでもないんですが
一遍見たのですがgasの文法しか書いてないと思ってしまってました。
ご指摘を受けてもう一度よく見直したらMachine Dependent Features
という節があってそこになんか書いてありますね(アセ
やっぱ英語ダメなのか。
400:デフォルトの名無しさん
06/10/25 14:48:44
401:デフォルトの名無しさん
06/10/25 14:54:58
>>400
ageてまでする話じゃないな
402:デフォルトの名無しさん
06/10/26 00:30:48
fURLリンク(gcc.gnu.org) に 4.3 ができてた。
よく知らないが、そろそろ 4.2 がリリースされるんかな。
403:デフォルトの名無しさん
06/10/26 00:34:07
へぇ、branch切ったんだ。
URLリンク(gcc.gnu.org)
魅力的な要素があまり無いなぁ。
404:デフォルトの名無しさん
06/10/26 03:15:11
>>401
405:デフォルトの名無しさん
06/10/26 03:59:43
えぇっ、フリーのOpenMPはでかいんじゃないのかいな。
ていうかなんでfastjar消されるの?
406:デフォルトの名無しさん
06/10/26 04:44:29
所詮ただのZIPだから。
407:デフォルトの名無しさん
06/10/26 15:14:53
やっぱそうだったんだorz
408:デフォルトの名無しさん
06/10/28 13:28:01
>>405
はげどう。
>>403 はこのままだとマルチコア時代を生き抜けないぞ。
409:デフォルトの名無しさん
06/10/28 19:20:42
ただでさえ4.*はバージョンが古くないと問題ないはずのソースがコンパイルできなかったり
まさに発展途上だからなぁ。
410:デフォルトの名無しさん
06/10/29 02:50:55
安定してるバージョンはなに?
411:デフォルトの名無しさん
06/10/29 07:50:12
3.4.4
412:デフォルトの名無しさん
06/10/29 18:15:19
3.4.6が3.*の最終版だがffdshowの改良版がコンパイルできないそうだ。
ffdshowの改良版がまともにコンパイルできるのは4.0.2”だけ”で
4.0.1でも4.0.3以降でもダメらしい。
つまり4.*はもちろん、もう更新されない3.4.6ですら未完成な部分がある。
修正するガッツを持っている人間はネットをググった程度じゃ出てこない。
413:デフォルトの名無しさん
06/10/29 18:20:42
>>412
ffdshowの改良版とやらの方の不備ではないのか?
414:デフォルトの名無しさん
06/10/29 18:21:00
>>412
そもそもGCCのコードを弄れる奴が世界に何人いるかだ。
415:デフォルトの名無しさん
06/10/29 19:20:10
gccのコードほど複雑怪奇なものはないと思うんだが。
416:デフォルトの名無しさん
06/10/30 00:59:12
>>414
CygwinとMingwの中の人なら平気で弄ってるよな。いや、平気じゃなくて根性かもしれんけど。
417:デフォルトの名無しさん
06/10/30 12:45:43
コンジョだコンジョ
418:デフォルトの名無しさん
06/10/30 22:05:16
カスミン懐かしい…
って板違いだな
419:デフォルトの名無しさん
06/10/31 21:18:28
参考までにffdshowの改良版
svn co URLリンク(svn.sourceforge.net) ffdshow-tryout
作ってる人たち自身がGCCなら4.0.2じゃないとダメと言ってるからソースに問題はないと思うんだが。
ちなみに3.4.6ではInternal Compiler Errorが出てコンパイルできなかった。(/src で make)
420:デフォルトの名無しさん
06/11/01 07:39:23
>>412
>つまり4.*はもちろん、もう更新されない3.4.6ですら未完成な部分がある。
この結論がおかしい。最後の数パーセントを完璧にするには数百倍の努力を必要とする。
421:デフォルトの名無しさん
06/11/01 08:13:53
別にその結論自体はおかしくないと思うけど
422:デフォルトの名無しさん
06/11/01 09:07:53
そっか、ならよかった
423:デフォルトの名無しさん
06/11/01 14:50:50
>>420の文の意味がよく分からん。
残り数%の未完成が判明しても最終版は完成とみなすの?
424:デフォルトの名無しさん
06/11/01 14:58:50
>>423
たぶん、「ですら」ってとこに違和感感じてるんじゃないの?
完璧にするのは長時間かかるんだから、もちろんあるだろうということで。
425:デフォルトの名無しさん
06/11/01 18:23:24
俺は普通に読んで「ですら」ってのは「完璧じゃないんですよということを強調」する意味で
特に違和感ないと思ったんだが。
「結論がおかしい(=間違ってる)」というのが何を意味するのか俺も分からん。
「もちろんあるだろう」ならそのまま「そりゃそうだろ」で済むからそれは違う気がする。
文系じゃないので深読みはしなかった。国語苦手だよ。
426:デフォルトの名無しさん
06/11/01 22:19:12
coutで文字列を出力した後にwcoutでワイド文字を出力すると文字化けする。
逆もそう。gcc4.0.2(vine3.2)。
うちの環境だけ?
427:デフォルトの名無しさん
06/11/01 23:32:21
具体的なコードでくれ
428:デフォルトの名無しさん
06/11/02 01:28:42
>>423
gccくらいのサイズのソフトウェアは完成することはない。
429:デフォルトの名無しさん
06/11/02 02:00:49
どれくらいのサイズのソフトウェアなら完成しますか?
430:デフォルトの名無しさん
06/11/02 02:18:52
>>425
「ですら」は「容易であるのにも関わらず」というニュアンスを持っているけど、
>>423 は「本当は容易じゃないんだぜ」って事を言いたいんじゃないかな。
>>412 は、機能追加が無いから 4.* よりは「容易であるのにも関わらず」
という話だから、用法を間違ってる訳じゃないんだけどね。
>>429
「完成したソフトウェア」を定義出来ないから、サイズに関わらず無理という
結論が返って来るに 100 ルピー。
431:デフォルトの名無しさん
06/11/02 03:39:32
>「ですら」は「容易であるのにも関わらず」というニュアンス
どこの国のニュアンスだよ
URLリンク(dictionary.goo.ne.jp)
板違いだからよそでやれ
432:デフォルトの名無しさん
06/11/02 06:43:05
ですらー総統万歳
433:デフォルトの名無しさん
06/11/02 08:23:34
Wikipediaの記事酷いな
悪意を持った半可通ほどタチの悪いもんはない
434:デフォルトの名無しさん
06/11/02 16:36:54
質問します
ある統計データのグラフを画像として出力するプログラムを作りたいのですが、
GCCで利用可能な良いライブラリがありましたら教えて下さい。
形式はjpeg、gif、pngの何れかに対応しており、文字列を画像に出力可能なものを探しています。
よろしくお願い致します。
435:デフォルトの名無しさん
06/11/02 17:52:30
gnuplot使えばいいんじゃ
436:デフォルトの名無しさん
06/11/03 06:32:23
gnuplotのコマンド出力してくれるライブラリが欲しいです
437:デフォルトの名無しさん
06/11/03 08:16:04
というか、スレ違いなんだが、
gnuplotは、デバイス非依存にするために、term抽象化をしているから、
*.trmで定義されているtermモジュールを、切り替えて使うようにすればOK。
$(GNUPLOT)/term/README読め。
話の続きがしたければ、くだ質スレ行け。
438:デフォルトの名無しさん
06/11/03 16:32:30
popenで十分じゃない?
439:デフォルトの名無しさん
06/11/05 10:56:17
>>433
むしろ、このスレの住人には神が何人もいるわけで、
このスレで少し議論して書き直してもいいと思う。
440:デフォルトの名無しさん
06/11/05 16:30:46
ada使ってる猛者いる?
441:デフォルトの名無しさん
06/11/05 18:10:03
指先が擦り減るから止めた
442:デフォルトの名無しさん
06/11/05 19:34:09
>>440
スレリンク(tech板)
443:デフォルトの名無しさん
06/11/05 19:57:43
歴史あるスレですね
書き込んでスレを進めるのがもったいなく思います
444:デフォルトの名無しさん
06/11/06 11:28:46
gcc(g++)で特殊化されてないテンプレートに特殊化されたテンプレートを
定義する方法はありませんか?
VCやBCBでは非標準の機能も使えてしまうわけで、g++でもそういう機能を
有効にするようなオプションなりなんらかの方法を探してます。
バージョンはgcc4系を目標にしてます。
445:434
06/11/06 15:06:33
>>435,437,438
返信遅くなりましたが、有難うございます
gnuplotでの作成を検討したいと思います
446:デフォルトの名無しさん
06/11/10 02:49:15
質問です
linux上で静的リンクでコンパイルしたつもりなのですが、
glibcに依存(?)しており、sharedな状態となっているためか、
プログラムが変なところで終了するようになりました。
glibcに依存しない、完全に独立したバイナリを作成するには
どうしたらよいでしょうか?
ポインタなど頂けると嬉しいです
lddで対象プログラムを参照するとstaticだと言われるんですが、
コンパイル時に以下のようなワーニングが出ます。
warning: Using 'gethostbyname' in statically linked applications requires
at runtime the shared libraries from the glibc version used for linking
/usr/lib/libc.aは確かにgethostbynameのシンボルを保持しているのですが、
libc.aをldするとglibcに依存するので完全に独立させたいです
447:デフォルトの名無しさん
06/11/10 11:01:20
libcにはexit(2)など、
プログラムの実行に必須の関数(およびシステムコールインターフェース)が入っているので、
なしでプログラムを実行することは不可能です。
あなたがlibcの代わりのシステムコール、main()スタブを書けば問題ないですが、
質問内容から言ってもそれは到底無理でしょう。
448:デフォルトの名無しさん
06/11/10 11:01:58
gethostbyname()を他から持ってくる。
449:デフォルトの名無しさん
06/11/10 23:02:02
libc,libgcc抜きの環境でやってたときは結構面白かった。
車輪の再開発はやっぱり楽しい。
450:デフォルトの名無しさん
06/11/11 10:38:09
>>449
libgcc抜きは相当キツいだろうな・・・
451:デフォルトの名無しさん
06/11/11 17:43:33
ちょいと質問ですよ。
手元のgcc(for cygwin)は-m64がないのだけれど、-m64オプションを指定したときsizeof(int)はいくつになるの?
LinuxとSolarisのそれぞれについて、教えてくれると助かります。
452:デフォルトの名無しさん
06/11/13 18:25:13
int main() {
static int foo();
return foo();
}
static int foo() {
return 0;
}
上記コードはgcc 3.4.4ではコンパイルできますがgcc 4.0.3ではできません。
以下はgcc 4.0.3のエラーログです。
test.c: In function ‘main’:
test.c:2: error: invalid storage class for function ‘foo’
test.c: At top level:
test.c:5: error: static declaration of ‘foo’ follows non-static declaration
test.c:3: error: previous implicit declaration of ‘foo’ was here
これはgcc 4.0.3での仕様変更でしょうか?
サンプルソースの記述方法は標準仕様(ANSI CないしC99等)に違反していますか?
453:デフォルトの名無しさん
06/11/13 21:05:25
こういうの萎えるけどまぁしゃーない。漏れも暇だ。
> これはgcc 4.0.3での仕様変更でしょうか?
だろうね、望ましい(厳しい)方向の。
> サンプルソースの記述方法は標準仕様(ANSI CないしC99等)に違反していますか?
厳密に違反(?)かは分からんが、
> static int foo();
この位置じゃmain()の中だけでしか宣言が有効じゃない。
しかも引数にvoidがないからPost-ANSIスタイルじゃない(==K&R)。
-pedantic -std=c89 -W{all,strict-prototype}
とかとりあえずやっとけ。
454:デフォルトの名無しさん
06/11/13 22:15:02
int型で扱える整数の最大値はいくつですか?
PC-9801時代のC言語入門しか持ってないんですが
printf ("%d\n",123456789);
としても普通に表示されるようです。
この本だとエラーになる。
455:デフォルトの名無しさん
06/11/13 22:35:09
処理系による。limits.hでもお読みなさい。
456:454
06/11/13 22:35:36
原始的に一桁ずつ変更してみたら
2147483647でWarningが出なくなったけど、これで合ってるのかな…
457:デフォルトの名無しさん
06/11/13 22:36:36
>>454
sizeof(int)の値をnとして、(2^n)/2-1だよ。
intのサイズが4バイトなら2147483647ね。
458:デフォルトの名無しさん
06/11/13 22:39:35
俺のところでは、
/* limits.h */
#define __INT_MAX__ 2147483647
459:454
06/11/13 22:40:58
ありました!
# define INT_MAX 2147483647
460:457
06/11/13 22:45:37
間違えたwww
nは8をかけてビット単位にしてね。
461:454
06/11/13 22:59:30
>>457>>460
ありがとうございます。
しかし私が理解できる数学は中学校2年レベルまでです…orz
462:デフォルトの名無しさん
06/11/13 23:25:09
>>457 そんな決め付けはよくないな。
463:デフォルトの名無しさん
06/11/13 23:43:11
>>461
457はそれくらいの数学がわかれば十分理解できるはず。
(Cではxorだが)ここでは^が冪乗の意味。2 ^ nは2のn乗ということ。
464:デフォルトの名無しさん
06/11/14 01:18:45
m桁のn進数の数値が表せる最大の数は(n^m)-1だろ?
465:デフォルトの名無しさん
06/11/14 01:23:07
>>464
しかしここでは2の補数による符号付き整数型を考えているので457。
ただ2^(n-1) - 1と書いたほうがいいのではと思うがな。
466:デフォルトの名無しさん
06/11/14 01:23:53
>>464
int の有効桁数は sizeof(int) では確定しない。
467:デフォルトの名無しさん
06/11/14 07:39:54
intを格納するのにパディングが必要になる処理系というのも
考えづらいけどね。
468:デフォルトの名無しさん
06/11/14 13:08:35
そりゃただの想像力不足だろ。
ILP64のように、intがマシンにとって最も自然なワードという仮定は
もはやプラットフォームによっては崩れてる。
469:デフォルトの名無しさん
06/11/14 13:25:10
>プラットフォームによっては
>プラットフォームによっては
>プラットフォームによっては
470:デフォルトの名無しさん
06/11/14 23:29:39
int はそのプラットフォームにおいてもっとも高速であること見込めるサイズと定義されているのに(w
471:デフォルトの名無しさん
06/11/15 00:19:27
>>470
はつみみです。
何のどこに定義されているのですか?
472:デフォルトの名無しさん
06/11/15 01:20:42
どっちにしろ、C99からはint8_tとかつかえばおk
473:デフォルトの名無しさん
06/11/15 20:34:20
>>470
とするのが理想だが 定義じゃねーYO!
474:デフォルトの名無しさん
06/11/15 23:23:11
>>472
int_fast8_tのことかぇ?
475:デフォルトの名無しさん
06/11/16 11:21:19
stdint.h
476:デフォルトの名無しさん
06/11/19 20:42:26
; Linux 板から引っ越してきました。
質問です。
/lib/ld.so の様に,実行も出来る共有ライブラリを作るには GCC に対してど
ういうコマンドを発行すれば良いのでしょうか?
% file /lib/ld-2.4.so
/lib/ld-2.4.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped
% /lib/ld-2.4.so
Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]
You have invoked `ld.so', the helper program for shared library executables.
...
477:デフォルトの名無しさん
06/11/20 09:15:42
つ ld-*.soのソースとMakefile
478:gcc4
06/11/23 17:18:39
みんな -fpmath は sse にしてる?
479:デフォルトの名無しさん
06/11/23 22:01:05
ええ
480:デフォルトの名無しさん
06/11/25 10:16:27
はやくgcc-4.2こい〜こい〜
481:デフォルトの名無しさん
06/11/25 13:50:55
>>480
4.2のウリはなに?
482:デフォルトの名無しさん
06/11/25 13:52:01
ニダ!
483:デフォルトの名無しさん
06/11/25 14:56:18
>>481
openMPのサポートじゃないの?
484:デフォルトの名無しさん
06/11/25 15:48:58
>>481
ここ読め、カス!
URLリンク(gcc.gnu.org)
forward propagation passが入るよー。
485:デフォルトの名無しさん
06/11/25 17:10:34
OpenMPは庶民にはあまり関係なさそうだな。
>>481を見ると、他の変更はあまりなさそうですね。
486:デフォルトの名無しさん
06/11/25 20:47:01
RTL での forward propagation は 4.3 からじゃない?
487:デフォルトの名無しさん
06/11/26 01:09:36
GCCのソースを読むのは疲れるぞい。
488:デフォルトの名無しさん
06/11/26 08:42:21
ETFは少し下げてっるぽい。
489:デフォルトの名無しさん
06/11/26 10:22:49
forward propagationってコピー伝播のこと?
490:デフォルトの名無しさん
06/11/26 11:02:19
>>489
URLリンク(gcc.gnu.org)
491:デフォルトの名無しさん
06/11/26 15:15:20
>>490
さんきゅ。あってるみたいだね。
しかし、今まで入ってないのが不思議なくらい基本的な最適化だが…
492:デフォルトの名無しさん
06/11/26 16:10:16
伝搬の方向と、解析の方向の違い。
493:デフォルトの名無しさん
06/11/26 18:08:20
ObjC2.0っていつサポートされる予定なの?
494:デフォルトの名無しさん
06/11/26 18:16:54
>>491
その辺はopen sourceの限界だろうな。
商用コンパイラなら常識だが、フリーのものは思わぬところで手が抜かれている
495:デフォルトの名無しさん
06/11/26 19:13:26
>>489
違う。
496:デフォルトの名無しさん
06/12/10 23:09:58
質問なんですが、gccで、
動的ライブラリのSOファイルにiostreamをインクルードすると、実行時に、
undefined symbol: __dso_handle
ってエラーがでるんですけど、なんか対処法ないですか?
$ g++ -Wall -g3 -c test.cc
$ g++ -shared -nostartfiles -o test.so test.o
こんな感じでコンパイルしてます。
497:デフォルトの名無しさん
06/12/11 00:30:11
ぐぐると出てくるぞ
URLリンク(d.hatena.ne.jp)
498:デフォルトの名無しさん
06/12/11 00:59:42
>>497
ありがとうございます。
extern void* __dso_handle;
って宣言するってことですかね?ちょっと試してみます!
499:デフォルトの名無しさん
06/12/17 13:20:01
gdb でマクロ参照したい時 gcc -g3 しますが、
enum hoge {
HOGE_A = 123,
#define HOGE_A HOGE_A
...
というコードのデバッグで HOGE_A を参照できず困ってます。
macro expand HOGE_A すると 123 ではなく HOGE_A になる上、
実コードで enum hoge i = ... のように使われてないので、
この enum/macro 値の実値がデバッグセッション中からまったく
取れないのです。
いまはやむなくヘッダ grep して毎回探し回ってるんですが、
実は gcc/gdb 的にちゃんと参照する方法があったりしないでしょうか?
500:デフォルトの名無しさん
06/12/17 13:56:20
print出来ないの?
501:デフォルトの名無しさん
06/12/17 14:01:27
あ、出来ないわ。
debug情報に含まれてないね。> hoge, HOGE_A
リテラルになってる。
502:デフォルトの名無しさん
06/12/17 14:05:16
そうなんですよ。
#define HOGE_A 123
ならコード中で使ってなくても gdb から見えるのに、
enum { HOGE_A = 123 }
だと何と見えなくなってしまって。gcc/gdb に手を入れないと対応不能?
503:デフォルトの名無しさん
06/12/17 17:38:34
Symbol tableにないから無理だね。
504:デフォルトの名無しさん
06/12/17 17:44:58
やぱりそうですか。
マニュアル見てると -feliminate-unused-debug-symbols とか -gfull とか
ちょっと関係してそうなものがあるので、定義を見ただけで突っ込むように
できないかもう少し見てみます。
505:デフォルトの名無しさん
06/12/18 00:08:18
上、できてるんで報告しときます。
gcc -fno-eliminate-unused-debug-types -ggdb3 foo.c
でデバッグターゲット中にない enum などの型情報もデバッグセッションで
参照できるようになりました(-ggdb3 -> -g3 でもおけ)。
これで pt enum hoge とか p HOGE_A+0 とかもばっちりです。
506:デフォルトの名無しさん
06/12/18 12:38:59
good bad know how
507:デフォルトの名無しさん
06/12/20 21:10:35
gdb関連で質問なんですが、ロードしたプログラムのテキストセグメントに
オンメモリでパッチをあてて関数のNOP化などをしたいのですが、そのまま
run しようとすると Text File busy とか言われてしまいます(Linux)。
一回 gdb -write で書き換えたバイナリを保存して、gdb を再起動して
再実行する場合は問題ないのですが、書き換え→保存→再実行→元ファイル
復元→・・・と試行錯誤するのが面倒なので、オンメモリのイメージだけ
書き換えて実行したいです。これは gdb でできるのでしょうか?
508:デフォルトの名無しさん
07/01/04 11:45:29
アーキテクチャも分らないのに
509:デフォルトの名無しさん
07/01/04 20:19:52
アーキテクチャ関係なくね?
510:デフォルトの名無しさん
07/01/06 05:56:19
>>509
ちげーよ
ある仮定を1つ言ってないだけさ
511:デフォルトの名無しさん
07/01/31 22:46:48
fURLリンク(gcc.gnu.org)
512:デフォルトの名無しさん
07/02/07 19:18:53
ううむ、4.2はまだリリースされないのか。4.1.2と同時リリースなのか?
513:デフォルトの名無しさん
07/02/07 22:42:13
4.1.2の後に4.2pre→4.2でしょ。
4.2はまだ1月ぐらいかかるんじゃないかな…
514:デフォルトの名無しさん
07/02/08 23:17:12
>>512-513
もうすでにIR版で6.0が出てるわけだが
URLリンク(2chart.fc2web.com)
515:デフォルトの名無しさん
07/02/09 02:34:15
514はたぶんものすごいバカ
516:デフォルトの名無しさん
07/02/12 03:09:56
>>515
お前も釣られたんだな・・・
517:デフォルトの名無しさん
07/02/12 03:35:15
まあもちつけ、兄者。
釣りにはスルーで対抗せよ。
518:デフォルトの名無しさん
07/02/14 18:27:21
GCC 4.1.2 has been released.
URLリンク(gcc.gnu.org)
やっと出た…
さっさと4.2こーい
519:デフォルトの名無しさん
07/02/15 10:43:02
4.2からOpenSSLやFirefoxが起動しない。
OpenSSLのMLみりゃ載ってるけど、strickt-aliasingか何のためか詳しく分からんが
関数ポインタのキャスト(かな?)で禁止になった次項が増えたらしい。
これが検出されたら、そこに強制終了コード埋め込まれる。
詳しい人、日本語で解説よろぴく。
520:デフォルトの名無しさん
07/02/15 10:56:41
>>519
どれかアーカイブで示してくれるとうれしいんだが。
URLリンク(www.openssl.org)
521:デフォルトの名無しさん
07/02/15 18:18:38
URLリンク(marc.theaimsgroup.com)
URLリンク(gcc.gnu.org)
あたりかな?
cast_via_void_fptr()がダメになったらしいけど、素人の私にはさっぱりorz
522:デフォルトの名無しさん
07/02/16 02:22:29
古い (ANSI 以前の知識ベースの) C プログラマがこういう行儀の悪いコード書くんだよ
そういう奴らを一掃するためにもがんがんエラーにしてくれ
523:デフォルトの名無しさん
07/02/16 02:22:42
Cではコンパチブルじゃない型のaliasを禁止している。
それを実行時に察知してabort()する範囲が増えた。
524:デフォルトの名無しさん
07/02/16 03:51:47
errorじゃなくて abortするのがなあ。まあ、warningもでるけど。
525:デフォルトの名無しさん
07/02/16 09:03:27
Buffer overflowなんかの絡みもあるんじゃないのか?
一昔前じゃ、実行時チェックなんてあり得ないセンスだけど。
526:デフォルトの名無しさん
07/02/16 21:01:27
なんで実行時なんだ?
527:デフォルトの名無しさん
07/02/20 16:40:47
4.2の出来が悪すぎるんでどうしようか迷っているらしい
URLリンク(gcc.gnu.org)
528:デフォルトの名無しさん
07/02/20 17:30:59
4.1.2も3.4.6に比べて大分性能悪くなってた
4.0系は試してないから分からないけど
529:デフォルトの名無しさん
07/02/21 04:00:01
-fwhole-compile --combine って C++ で使えない?
1クラスだけの簡単なサンプルでやってもメンバ関数が undefined reference に
なってしまうんだが。v4.1.2、ちなみに C なら問題ない。
仕方ないので、単体ファイル毎に -fprofile-generate/use して自分ツールビルド
してみたら 1% 速くなたw
まあこれでもいっか、と MinGW で同じようにやったら internal compiler error orz
530:デフォルトの名無しさん
07/02/21 04:13:03
>>529
書き間違い済まぬ -fwhole-program っすね
531:デフォルトの名無しさん
07/02/21 04:15:13
今試したらできなかった
-fwhole-compileじゃなくて-fwhole-programだったけど
532:デフォルトの名無しさん
07/02/24 22:35:57
進歩した部分もあれば後退した部分もあるから gcc-4 はまだまだ主流になれそうにないね。
最適化パスが Tree SSA と RTL で重複し始めてるような気もするが?
533:デフォルトの名無しさん
07/02/25 16:08:15
>>528
4.0はもっとひどかった。4.1になってちょっとマシになった。
534:デフォルトの名無しさん
07/02/26 03:37:49
SPECの結果って最近どうなの?
535:デフォルトの名無しさん
07/02/26 23:17:10
2CPU構成で1CPUしか使ってくれないソフトをGCC4.1でOpenMPを有効にしてmakeすれば2CPU使ってくれるのでしょうか?
GCCマスターのお知恵をおかしください・・・
536:デフォルトの名無しさん
07/02/26 23:24:16
>>535
そうはいかんざき。
OpenMP用にソースにちょっと手を入れないといけない。
537:デフォルトの名無しさん
07/02/26 23:41:18
1位3.3系
2位3.4系
3位4.1系
538:535
07/02/26 23:42:09
>>536
アホらしい質問すいません。
ありがとうございます。
SolarisやLinuxでnbenchというCPUの性能を測るものがあって、これを複数CPUで動かして計測したいのですが、1CPUでしか動いていませんでした。
オプションに-fopenmpをつけてmakeすれば複数CPU対応版になってくれれば良いな、と思った次第です。
世の中そんな甘くないのですね。
SolarisやLinuxで複数CPUに対応したCPUベンチマークソフトがあれば良いのですがね。
539:デフォルトの名無しさん
07/02/26 23:54:46
横から失礼します。
-ftree-vectorizeで並列化した場合は、マルチCPUで効果があるのでしょうか。
540:デフォルトの名無しさん
07/02/27 01:22:01
>>539
vectorizeはSSEを使った高速化じゃないの? だとすれば、一つのコアしか使わないと思われ。
>>538
プラグマで、OpenMPの対象とするforループを指定してやるとかすればいい。
541:デフォルトの名無しさん
07/02/27 04:33:48
目的がよく分からないんだけど,元々1CPU用のベンチを自分で適当に弄って
意味あるの? 元の製作者がやるんだったらともかく
542:デフォルトの名無しさん
07/02/27 10:03:51
>>538
そんなあなたに、Intel compiler。
-parallelオプションで、ある程度自動で並列化してくれる。
非商用目的なら無償で入手できます。
543:デフォルトの名無しさん
07/02/28 03:50:56
>>539
ubench とか sysbench とか。
んでも、1 個のベンチマークツールだけに頼らない方が良いよ。
それと、なるべく自分が想定しているアプリに近い負荷で試した方が良い。
アプリに付属しているベンチマークツールを使うとかね。
マイクロベンチマークは落とし穴がいっぱいあるから、きちんと統計情報も
取得した方が良いよ。
544:デフォルトの名無しさん
07/03/06 07:21:59
Mingwが3.4.6出す夢を見た。
545:デフォルトの名無しさん
07/03/11 13:00:40
gcc 4.2の正式リリース予定日はまだ決まっていないのでしょうか?
546:デフォルトの名無しさん
07/03/11 15:01:01
3月中旬
547:デフォルトの名無しさん
07/03/12 14:12:52
gcc-4.2って>>527の話があったけど、どうなったの?
3月中旬にリリースってことは、結局そのままリリースするのかな?
548:デフォルトの名無しさん
07/03/12 15:17:29
その様だ
明日RC1が出る
GCC 4.2.0 RC1 Status
URLリンク(gcc.gnu.org)
549:デフォルトの名無しさん
07/03/12 15:37:34
となると、4.2はスルーしたほうがよさげだなぁ
550:デフォルトの名無しさん
07/03/12 18:34:29
>>547
URLリンク(d.hatena.ne.jp)
3/4 に続行って出てた
551:デフォルトの名無しさん
07/03/12 19:50:02
>>550
Thanks
URLリンク(gcc.gnu.org) のステータスレポートですな
んでヲレは当分は4.1のままでいることにしますだ
552:デフォルトの名無しさん
07/03/13 02:58:57
現時点での最強のgccを教えてください
553:デフォルトの名無しさん
07/03/13 03:03:20
gcc
554:デフォルトの名無しさん
07/03/15 09:37:39
ecc
555:デフォルトの名無しさん
07/03/15 11:17:05
.2.95.3
に決まってる
556:デフォルトの名無しさん
07/03/15 15:25:25
あれはよかったのう…
どこで間違ったんですかねえ
557:デフォルトの名無しさん
07/03/15 19:38:12
長い間バージョンが上がらなかった反動で
出来がいかに糞でもバージョンが上がればいいと思い込んでしまったところ。
558:デフォルトの名無しさん
07/03/15 21:31:36
Makefileについてなんですが、現在以下のようなフォルダ構成でsrc以下
にソースファイルを置いています。
┬src
├obj
└run
Makefileはrunにおいていて、makeコマンドを実行したら.oはobjに置かれ、
実行ファイルだけrunにできて欲しいのです。
しかし、makeコマンドを実行した場所に一緒に.oができてしまい、イライラしています。
Makeファイルはrun以下に置いて、.oはobj以下に作成されるというような解決方法は
ないでしょうか?
559:デフォルトの名無しさん
07/03/15 22:58:01
>>558
マニュアル読め。
そんなの質問するようなことか?
560:558
07/03/15 23:48:26
MakefileでVPATHとOPTIONってどうやって両方とも有効にすればいいんでしょうか?
VPATH = ../src
OPTION= -D_NDEBUG
abc.o : a.c b.c c.c
#[tab]$(CC) $(OPTION) -c $@
こんな感じでやっても、OPTIONが有効になりません。
かといって、#を削っても今度はVPATHが有効になりません。
どなたか、お助けを。
561:デフォルトの名無しさん
07/03/16 00:22:31
>>558
GNU make のパターンルールくらい嫁。基本じゃん
$(target): $(objects)
$(objects): ../obj/%.o: ../src/%.c
562:389
07/03/16 10:34:15
>>558
gccの話をしれ
563:デフォルトの名無しさん
07/03/16 15:43:52
質問
転職してVisualC++を使う開発からGCCを使う開発に変わるんだが
VC++のようなIDEって無いの?
GCCとViが基本?
564:デフォルトの名無しさん
07/03/16 15:50:19
emacs
565:デフォルトの名無しさん
07/03/16 15:51:20
>>563
eclipse+cdtとかkdevelopとか
566:デフォルトの名無しさん
07/03/16 15:52:44
>>563
スレリンク(linux板)
567:デフォルトの名無しさん
07/03/16 16:19:25
皆さんThx!
568:デフォルトの名無しさん
07/03/16 21:24:45
いまさらですがMakefileの話題はこちらへ
make makes many problems
スレリンク(tech板)
569:デフォルトの名無しさん
07/03/18 02:50:56
>>548の後、相次いでバグが発見されたために延ばし延ばしになっていたRC1がようやく出ました。
GCC 4.2.0 RC1
URLリンク(gcc.gnu.org)
ヤレヤレ…
570:デフォルトの名無しさん
07/03/18 06:35:48
なにがヤレヤレ…なの?
571:デフォルトの名無しさん
07/03/18 13:01:22
>>570
>>569 のメール読めばすぐ分かるだろ.
> we still have quite a number of GCC 4.2.0 P1s which concern me.
572:デフォルトの名無しさん
07/03/18 13:15:00
バグの出方を考えると、どう考えてもリリース品質とはいえないシロモノなのに、
RCにしちゃっていいの? 4.1と比べて、あまり最適化周りの性能向上もしていない
ようだし。
573:デフォルトの名無しさん
07/03/18 13:24:45
性能向上、どころか性能低下がかなり激しくて問題視されてる。
4.3は期待出来そうなんだが…
まぁこの経験を生かしてこれからはより良い開発プロセスを作ってほしいね。
574:デフォルトの名無しさん
07/03/18 20:12:54
4.xと3.xの比較ではどんなにググっても3.xがいいという人しか見つかりませんが
4.xでしかコンパイルできないソースを書かない限りは3.xでFAなんかいな?
575:デフォルトの名無しさん
07/03/19 01:05:34
3.4以降が4.xになったんじゃないの。
どうせ最高性能は2.95なんだから、最新がほしけりゃ4シリーズを使うべき
だと思うけどね〜。まあ、lvalue assignmentの問題とか致命的な人には
致命的なんだろうけどさ。
576:デフォルトの名無しさん
07/03/19 01:55:31
C言語しか使わない人は2.95でもいいかもしれないけど、
C++ 使う人には思い出したくない過去な気が
577:デフォルトの名無しさん
07/03/19 01:56:12
Linuxのメジャーどころのディストリビューションが3.x以降に移行し、
FreeBSDも5以降は3.xに移行してから結構時間が経ってしまっている現状、
2.95.xではmakeが通らないアプリも結構あるからなぁ。
ってことで、Solarisで長いこと付属のcompanion CDに入っていた2.95.3を
使ってきたけど、SunFreewareの3.4.6に入れ替えた。
にしても、4.2がリリースされたら、4.1から入れ替えちゃって4.1がつかえなくなる
ディストリビューションがありそう。Debianの場合、パッケージが用意されているのは
2.95、3.3、3.4、4.1なので、4.2がリリースされても大丈夫だろうし、FreeBSDのportsも
そんな感じだから、ヲレ的には無問題なんだけど。
578:デフォルトの名無しさん
07/03/19 03:35:37
>>577
Solaris 10 以降だったら /usr/sfw/bin の下に GCC 入ってるよ。
バージョンが幾つだったか忘れたけど。
579:デフォルトの名無しさん
07/03/19 12:02:31
>>576
C++はそうだね。3.x以降で劇的に変わっているし。
あと、amd64などの新しいアーキテクチャへの対応もあるし。
にしても、>>575のいう最高性能が2.95っていう理由がよくわからんのだけど。
まさかコンパイル速度だけを見ているわけじゃないよね?
580:デフォルトの名無しさん
07/03/19 16:05:58
見ているわけだろ。
581:デフォルトの名無しさん
07/03/20 15:55:40
コンパイル速度しか見ていないヤシ、以前UNIX板のgccスレにも湧いていたな
582:389
07/03/20 17:11:47
コンパイル速度とコードサイズの小ささは2.95のがよかったな。
実行速度は比べたことないんでしらんけど。
まぁ C99 や C++ や他のフロントエンドを考えると今更戻る気はしないな
583:デフォルトの名無しさん
07/03/20 17:57:44
実行速度は自分が使うやつでは3.3が一番速かった
4.1は姫野ベンチってやつでは-O2以上にすると何故か3.4に比べて2倍くらい遅くなってた
-O1とかでもそれまでと比べて遅くなってるけど
584:デフォルトの名無しさん
07/03/21 09:43:40
姫野ベンチのソースコードは公開されてるの?
585:デフォルトの名無しさん
07/03/21 10:57:09
されてるよ。ググればトップに出て来るけど。
586:デフォルトの名無しさん
07/03/21 14:45:25
fortranがベースなのか?
587:デフォルトの名無しさん
07/03/21 17:59:33
ご自分でどうぞ。
588:デフォルトの名無しさん
07/03/21 20:22:54
>>586
Fortranベースじゃないかな。トップページに、Cの配列宣言をFortranに合わせた、って記述が。
言語の特性上、だいたいベンチ系はFortranベースのものが多いし。
589:デフォルトの名無しさん
07/03/23 15:52:02
下のページを試しているのですがgcc時にエラーが出てしまいます
URLリンク(www.hellohiro.com)
jni.hがないと言われるのですが、lsで確認したところ存在します。
どこがまずいのでしょうか・・助けてください。
bash$ gcc -shared -l/usr/java/jdk1.6.0/include/ -l/usr/java/jdk1.6.0/include/linux/ HelloWorldJNI.cpp -o libHelloWorldJNI.so
HelloWorldJNI.cpp:1 から include されたファイル中:
HelloWorldJNI.h:2:17: error: jni.h: そのようなファイルやディレクトリはありません
HelloWorldJNI.h:15: error: ‘JNIEXPORT’ does not name a type
HelloWorldJNI.cpp:2: error: ‘JNIEXPORT’ does not name a type
bash$ ls -l /usr/java/jdk1.6.0/include/jni.h
-rw-r--r-- 1 root root 67831 11月 29 18:49 /usr/java/jdk1.6.0/include/jni.h
590:デフォルトの名無しさん
07/03/23 17:07:14
l じゃなくて I だよ
lは -lpthreadみたいにライブラリに対して使う
591:デフォルトの名無しさん
07/03/23 17:59:14
>>590
ありがとうございます
できました
本当に助かりました
592:デフォルトの名無しさん
07/03/31 20:35:04
4系ってコンパイルを正常に終わらせられるソフトウェアはまだ多くないと聞いたんだけど
それと、Debianは2.95からパッケージに置いてあるのに
Fedoraは3.3より先は切り捨てられているのはどうかと思うが
593:デフォルトの名無しさん
07/03/31 20:37:45
debianってそういうディストロだし
fedoraってそういうディストロだし
594:デフォルトの名無しさん
07/03/31 20:39:14
>>593
で、4系ってどうなのよ
アレな出来なのか?
595:デフォルトの名無しさん
07/03/31 20:46:50
4.0 まぁ許容範囲
4.1 ギリギリ許容範囲
4.2 …だめぽ
4.3 期待の新星
javaとfortranについては順調に進歩してる。
が、肝心のcが…
コンパイル時間は増える、バイナリはでかくなる&遅くなる、
でいい事あんまなし。
596:デフォルトの名無しさん
07/03/31 20:54:41
>>595
ありがとう
まだ3系のほうがいいのね・・・
597:デフォルトの名無しさん
07/03/31 22:15:44
4.0 転換期。まぁ少しの性能の低下はしかたない。
4.1 すこし性能が回復。まだ3.6に及ばず。
4.2 なにそれうまい?
4.3 memcpy! memcpy!
598:デフォルトの名無しさん
07/03/31 22:42:26
何と引き換えに性能が劣化してるの?
599:デフォルトの名無しさん
07/03/31 22:47:07
>>598
URLリンク(www.jp.redhat.com)
600:デフォルトの名無しさん
07/04/01 04:48:19
IA32への対応はそろそろ限界なのでは?
601:デフォルトの名無しさん
07/04/01 09:48:20
案の定、4.2で多くのパッケージをコンパイルしたアホなLinuxのディストロが出てきたねぇ。
602:デフォルトの名無しさん
07/04/01 10:11:17
俺は使わないが、問題の炙り出しになるので大歓迎。
603:デフォルトの名無しさん
07/04/01 10:40:42
問題の炙り出しっつーても…
これ、どうせ廃棄ものだぜ?
2.96や3.3みたいに残しておく価値ないし
4.2で握るんなら4.3cvsで握ってくれた方がうれしいよ…
たとえ爆死してもまだ納得できる
604:デフォルトの名無しさん
07/04/02 17:28:52
>>601
Momonga 4なら4.2は捨てて4.1で行くことにしたらしいぞ。
URLリンク(developer.momonga-linux.org)
URLリンク(developer.momonga-linux.org)
605:デフォルトの名無しさん
07/04/03 00:22:24
そんな日本ローカルな鳥なんてどうでもいい。
606:デフォルトの名無しさん
07/04/03 02:06:59
あー momonnga ってまだあったんだー
607:デフォルトの名無しさん
07/04/07 11:14:29
gcc(ていうかGNU ld?)で、未使用な関数とかを自動的に除去して
サイズ縮小したいんですが、そもそもそんな機能ありますか?
608:デフォルトの名無しさん
07/04/07 12:24:40
>>607
gcc -ffunction-sections -Wl,--gc-sections 以下略
URLリンク(www.radiumsoftware.com)
609:デフォルトの名無しさん
07/04/07 12:53:16
結果的に未使用な関数の除去は出来るけど、
-ffunction-sectionsは性能の低下を引き起こすので使用には注意。
結局、その手の機能はまだ実装されてないんだね…
610:デフォルトの名無しさん
07/04/07 12:56:30
>>608
アリガトン!でも除去してくれなかったよorz。
611:デフォルトの名無しさん
07/04/07 13:22:17
>>610
ソースを一つに纏めて、全ての関数にstaticをつけると未使用関数は消えてなくなるんじゃね?w
612:デフォルトの名無しさん
07/04/07 15:49:11
>>611
その辺を-fwhole-programが面倒見てくれるのかと思っていた時期もありました・・・
613:デフォルトの名無しさん
07/04/07 16:09:56
MacOSXでg++の4系列を使い始めたのですが,
以下のコードでコピーコンストラクタがないと起こられます.
#include <iostream>
using namespace std;
class A {
A (const A &p);
A &operator = (const A &p);
public:
A () {}
friend ostream &operator << (ostream &p_os, const A &p_a) {return p_os;}
};
int main ()
{
cout << A () << endl;
return 0;
}
エラーメッセージは
test.cpp:4: error: 'A::A(const A&)' is private
test.cpp:12: error: within this context
です.g++-3.3では起こられないのですが,これってg++-3.3の方が正しいですよね?
powerpc-apple-darwin8-g++-4.0.1 (GCC) 4.0.1
g++-3.3 (GCC) 3.3 20030304
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5498日前に更新/201 KB
担当:undef