オーム社のプログラミングの力を生み出す本 というものを読み始めました。 この本に載っているGCC(GNU C)の 最新版の入手方法がわかりません。 GCCを使って、アセンブリ言語コード、 C++言語コードさらにJAVA言語コードの コンパイルをしたいと思っています。 GCCの最新版の入手方法とコンパイルまでの流れを教えて下さい。
単発質問につき終了
単発質問ってなんですか
>1 板出入り禁止
>>1 入手はWinMXでできます。
Adobe PhotoShopとMicrosoft Visual Studio 6.0を用意すれば
たぶん交換してもらえるでしょう。
WinMXはこちらです。
ttp://www.winmx.com/
>>9 MXでAdobe PhotoShopとMicrosoft Visual Studio 6.0を共有することが。
gccがそんなに多機能だとは知らなかったよ>1
>>12 GNU Compiler Collection の略だしね。
f77, c, c++, asm(gas), java(gcj) に対応。
ただし、gcj はまだ Windows 環境じゃ上手く動かない(少なくとも3.0は)。
Objective CもあるYO
CPadつかっとけ.
最新版は、GCC 3.0.2 JAVAは、GCC 3.1 には、Windows 環境 でもうまく動くようになるらしいですね
18 :
デフォルトの名無しさん :01/12/08 22:07
GCJ以外で、ネイティブコードへのコンパイラって何が有るの?
19 :
デフォルトの名無しさん :01/12/09 00:28
>>12 GCCって確かPascalとかObjectiveCとかも
コンパイルできなかったっけ?
けっこう多機能なんだよ、アレ
洩れも詳しくはないけど
GCC教えてスレッドに再利用age
>>18 商用のは VisualCafe に付属していたシマンテックのコンパイラを始めいくつかある。
大抵は数万円するから個人では買わないね。謳っているほど効果があるか疑わしいし。
>>19 中間言語があるからフロントエンドさえあれば何でもOK
22 :
デフォルトの名無しさん :01/12/09 12:03
「おいオメー さっきから うるせえぞ 『知りません』『知りません』ってよォーーーー 『知りません』・・・そんな言葉は使う必要がねーんだ なぜなら オレやオレたちの仲間は その言葉を頭に浮かべた時には! 既にGoogleや書籍で調べがついちまって もうすでに『知っている』からだッ! だから 使った事がねェーーーッ 『知っている』なら 使ってもいいッ!」
23 :
デフォルトの名無しさん :01/12/09 12:12
>>20 じゃあ、GCJがフリーでは初めてなのかな。
gasはbinutilsの方だと思うが。 しかしgcjってネイティブコード吐けるのか。知らなかった。 .class作るだけならIBMがGPLで出してるjikesも速くていいよ。 UTF-8にしないと日本語混じりのソースで文句言うけど。
25 :
デフォルトの名無しさん :01/12/09 22:15
安芸
26 :
デフォルトの名無しさん :01/12/09 22:35
gcc, make, autoconfあたりを網羅した解説書が欲しいな。
autoconf+automakeはどっかでみた。
29 :
デフォルトの名無しさん :01/12/10 06:17
ちょっと遊んでみよと思ったけど、 gasって浮動小数点備わっていないわけ??
>30 浮動小数点を扱うには、$99.00でレジストが必要です。
GNU関連(てか、中核)で$が要求される場合があるという驚き。 #じゃ、しばらく遊んだらnasmだな
>>34 gcc -Sを見るとfstplとか使われてますが。
>>31 ワラタ
って・・・ねただよね・・・(おどおど
え、え!!
$99.00は(float)99の即値という意味です。
>>26 iconvが使えるなら、jikesでもUTF-8にする必要ないよ。
少なくとも、Debian GNU/Linux sidに入ってるパッケージは出来た。
cygwinでもちょっと試してみたけど、iconv使うようにするとうまくコンパイルできなかった。
あと、solarisのiconvもだめらしい。
40 :
デフォルトの名無しさん :01/12/27 03:00
gcc-3.0.3 でたので age。 しかし、C++ で virtual 使いまくりのときに destructorが 2回呼ばれるバグってどうなったんだろう? GNATSでみると open bug ばっかりでDBとして破綻してる気がしてくる。
41 :
デフォルトの名無しさん :02/01/17 07:53
int i,j,k,a[6][6]; for (i=1;i<=5;i++) for (j=1;j<=5;j++) a[i][j]=0; for (i=1;i<=25;i++){ while (a[(k=rand()%25)/5+1][k%5+1]!=0); a[k/5+1][k%5+1]=i; } これで振り分けするつもりだったのに gccだとうまくいきません。cc,bccとかならうまくいくのにな。 これってバグかな?
>>41 とりあえず while んとこの ; がなんとなく気になる。
でも、cc,bccでうまくいく、ってのは、もっと気になる。
とりあえず gcc version 2.96 20000731 (Red Hat Linux 7.0) でためしたけど、 ちゃんと動いてるみたいだよ。
最後に for (i=1;i<=5;i++) for (j=1;j<=5;j++) printf("%2d ",a[i][j]) ; で表示すると 23 13 3 25 15 17 20 16 1 11 6 2 10 12 24 4 22 7 5 19 21 9 14 18 8 にナターヨ、どー?>41
46 :
デフォルトの名無しさん :02/01/17 10:08
"If you want to generate a random integer between 1 and 10, you should always do it by j=1+(int) (10.0*rand()/(RAND_MAX+1.0)); and never by anything resembling j=1+((int) (1000000.0*rand()) % 10); (which uses lower-order bits)."
gcc 2.95 (AIX4)ですけど、
>>46 さんの通りにやってもこんなになります。
0 21 6 0 0 14 24 19 11 20 17 0 8 0 0 12 0 5 2 25 15 7 4 23 16
おとなしく別アルゴリズムにしろって感じでしょうかね。
ありがとうございます。
48 :
デフォルトの名無しさん :02/01/22 08:22
[foo]$ cat foo.cc
class foo{
public:
void pbuff(void){
static char buff[16] ;
}
} ;
void foo::pbuff(void){
static char buff[16] ;
}
void main(void){
return ;
}
[foo]$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.0)
[nic@nina cye]$ gcc foo.cc
foo.cc:7: redefinition of `void foo::pbuff ()'
foo.cc:3: `void foo::pbuff ()' previously defined here
foo.cc: In method `void foo::pbuff ()':
foo.cc:7: Internal error #19990919.
foo.cc:7: Internal compiler error in setup_vtbl_ptr, at
../gcc/cp/semantics.c:1203
Please submit a full bug report.
See <URL:
http://www.gnu.org/software/gcc/bugs.html > for instructions.
[foo]$
こういうのは、やっぱレポート送ったほうがいいんでしょうか?
それとも、そもそもソースがおかしい場合は、そっとしといたほうがいいんでしょうか?
とりあえず、GCC 3.xで再現するか試したら?
java1.4beta3ってどうよ?
51 :
デフォルトの名無しさん :02/02/02 03:21
g++がどんなアセンブリコードを生成するのか説明したよいサイトはないですか? できれば日本語のがいいのですが。。。 やっぱりgcc.gnu.orgのやつを熟読しないとだめかな?
なにがしたい?
・・・スレをあげたかっただけです。全て見透かされてましたね。エヘヘ
gcc で NASM 構文のインラインアセンブラが使えるパッチとかってない?
55 :
名無しさん@お腹いっぱい。 :02/02/02 03:48
>>48-49 $ g++-3.0 foo.c
foo.c:7: redefinition of `void foo::pbuff()'
foo.c:3: `void foo::pbuff()' previously defined here
foo.c:10: `main' must return `int'
foo.c: In function `int main(...)':
foo.c:11: return-statement with no value, in function declared with a non-void return type
$
【不幸のレス】 このレスを見た人間は十三日以内に死にます。 ※あなたに訪れる死を回避する方法が一つだけあります。 それはこのコピペを一時間以内に7つ、別のスレに貼り付ける事です。
コピペをするときは E-mail欄に元スレを書き込んでください これがあればもっと面白かったかも
58 :
デフォルトの名無しさん :02/02/02 11:12
59 :
デフォルトの名無しさん :02/02/02 13:59
あげ
61 :
デフォルトの名無しさん :02/02/23 10:33
3.0.4リリース、おめでと、あげ 変更点は以下の通り ・GCC 3.0 now supports newer versions of the NetBSD operating system, which use the ELF object file format, on x86 processors. ・Correct debugging information is generated from functions that have lines from multiple files (e.g. yacc output). ・A fix for whitespace handling in the -traditional preprocessor, which can affect Fortran. ・Fixes to the exception handling runtime. ・More fixes for bad code generation in C++. ・A fix for shared library generation under AIX 4.3. ・Documentation updates. ・Port of GCC to Tensilica's Xtensa processor contributed. ・A fix for compiling the PPC Linux kernel (FAT fs wouldn't link).
62 :
デフォルトの名無しさん :02/03/14 19:57
hozen
【不幸のパッチ】 このパッチを当てた人間は十三日以内に死にます。 ※あなたに訪れる死を回避する方法が一つだけあります。 それはこのパッチを一時間以内に7つ、他人のGCCに当てる事です。
3点、やりなおし
すでにここは 乂 1000取り合戦場 乂 となっています。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/|ii|U|ii|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
66 :
デフォルトの名無しさん :02/04/15 11:11
マンセー
mingwいい加減にgcc3.xxでビルドしてくれー cygwin使いたくないよ〜
68 :
デフォルトの名無しさん :02/04/15 11:47
cygwinマンセー
cygwin の gcc 3.xx にしてフォスィ
70 :
デフォルトの名無しさん :02/04/15 12:51
ンダンダ
gccのソースって異様にきたなくね? 中見ても何がなんだかさっぱり分からん。 mdファイルをどう処理してるのかだけでも 理解しようと思ったんだけど、しんどい。。
72 :
デフォルトの名無しさん :02/04/16 00:35
cygwinにもjava処理系が入っている! ?
速く3.1が出ないかな。ワクワク
75 :
デフォルトの名無しさん :02/04/16 12:40
gcc に限らず GNU のソースって汚くて読みづらい。
gdbって デバッグAPIとか提供してないのかな。 gdbのエンジンでフルスクリーンのGUIデバッガ作りたいYO!
>76 cygwin の gdb ではダメなのか?
78 :
デフォルトの名無しさん :02/04/16 14:08
gccは普通、何と呼ぶのですか? 私はグッシッシと呼んでます。グッシッシ
じーしーしー
>>79 あまりの下らなさに笑ってしまった、、、鬱
82 :
名無しさん@お腹いっぱい。 :02/04/17 00:58
>>71 Emacsも昔からあるところはヒドイっすよ…Stallman先生…
>>75 一般化しすぎ。
つまり、オープンソースの本締は「恥ずかしがっちゃだめ☆」だと…
そうそう。だよね。 ネーミングは、プログラマーの心意気なんだよね。グッシッシ
GNUは明らかにBSD関連とは文化が違うんだなって思ったよ。
86 :
デフォルトの名無しさん :02/04/17 15:18
今週中にgcc3.1が出ると予言
外れたら首くくって氏ね。グッシッシ
既に3.1(CVS)使ってますが何か? 本当にリリースされるなら嬉しいが。
89 :
デフォルトの名無しさん :02/04/18 08:03
gccマスタの人は-drオプションでの出力も理解できるのでしょうか? あれ、意味がさっぱり分かりません。
91 :
名無しさん@お腹いっぱい。 :02/04/21 15:46
マスターどうのこうのよりも、 読む必要のある人、読みたい人が読むってことだから、 そうであるなら${GCC-SOURCE}/gcc/doc/rtl.texiを読め。 でなければ、( ゚д゚)ポカーンでよいではないか。
92 :
デフォルトの名無しさん :02/04/21 15:55
gcc version 2.95.3-6 (mingw special) というのを使ってみたんだけど、 同じプログラムをbcc32でコンパイルしたら 異様に早くなった。 もともと時間かかる処理なんだけど、 bcc32で実行時間4分。 gcc 待ちきれなくて強制終了(w こんなもんなんですか? ちなみにcygwinでのgccは速かったです。
早くなったんじゃなくて、たまたま動いて(以下略)
>>92 つーか、そんな事書いている暇あったら他のプログラムで試してみろ。
cl(vc++) 最適化:普通 bcc32 最適化:芋 gcc 最適化:幼稚園児の日本語並み
gccに性能を求めるのは間違ってるだろ。
>>95 自分が無数の最適化オプションを使いこなせないからといって幼稚園児並と表現するのはどうかと。
>>95 お前がgccを直せ。
三島のような日本語を話せるようにまでしろ。
そして俺たちに使わせろ。
99 :
デフォルトの名無しさん :02/04/26 19:02
cygwin で gcc-2.95.3-5 をインストールしたのですが、うまく動きません。 $ gcc test.c -o test.exe と入力しても何も生成物が作られず、またエラーも出ずにプロンプトに戻ってしまいます。 $ gcc -save-temps test.c -o test.exe と入力すると test.i test.s test.o が生成されますので、途中までは動いているようです。 $ gcc -save-temps -v test.c -o test.exe と入力すると、各処理が表示されました。 cpp0.exe で test.c から test.i を生成しているようです。 cc1.exe で test.i から test.s を生成しているようです。 as.exe で test.s から test.o を生成しているようです。 collect2.exe で test.o から test.exe を生成するようなのですが、生成されていません。 ためしに -v で表示された collect2.exe の行をコピーアンドペーストで再度実行すると (test.i, test.s, test.oは存在する状態)、ちゃんと test.exe が生成されました。 test.exe を実行すると 正しく Hello,World!! と表示されます。 ??? なぜ gcc -v で吐き出された処理を順番にコピーアンドペーストで 貼り付けるとコンパイルできるのに…? Windows2000を使用しているのですが、テンポラリファイルの作成される タイミングかなにかが影響しているのでしょうか? なにか情報があれば教えてください。
100げと。
>>99 メモリが足らないんだよ。
最近出たマシンに買い換えなさい。
最近出たマシンに買い換えて、ついでにcygwinを最新版にしたら コンパイルできないという罠。 …なんです。 メモリは 512M 積んでいるんです。
102 :
デフォルトの名無しさん :02/05/01 07:19
April 30, 2002 Vladimir Makarov, of Red Hat, has contributed a new scheme for describing processor pipelines (commonly referred to as the DFA scheduler). This new scheme can model certain pipeline architectures more effectively than the old scheme, which in turn can improve the code generated by the compiler. これってどんなもんなんでしょうかね?
103 :
仕様書無しさん :02/05/01 23:19
>>102 それってRTL勉強しなおしってこと?
今一生懸命勉強してんだぞ!ゴルァ!!!
>>103 いや、instruction scheduler(の候補が出たきた)だけでしょ。
-march=athlon
106 :
デフォルトの名無しさん :02/05/07 22:03
>>95 最適化スイッチいじればgccでも結構いけると思うのだが
>>107 つーか、
>>95 は単なる煽りだって。bccより悪いわけがない。
bccは「最適化はしてない」と言っていいくらい。
いやー、コンピュータに幼稚園児なみの日本語が喋れるわけ
ないんだから、
>>95 はgccを絶賛してるんでは?
コンピュータのレベルを越えてると。
gccの最適化スイッチって、何使っている? -finline-functions -fomit-frame-pointer -funroll-loops 程度しか追加していないけど。。。
>>110 -fomit-frame-pointer
は -O オプション指定だけで付くらしいよ。
-O6
114 :
デフォルトの名無しさん :02/05/09 01:53
-O157
-OOO-
116 :
デフォルトの名無しさん :02/05/09 09:43
gccマンセー!!!
ccさくらタンのグロ画像キボンヌ
118 :
デフォルトの名無しさん :02/05/16 07:00
gcc3.1出たよー
20020506のsnapshotじゃまだ -fpmath=sse のオプションがうまく使えなかったんだけど、直ったのかな?
>>71 確かに。効率は良さそうだけど。俺の汚物見てくれよハァハァ
って感じがする(;´Д`)
121 :
デフォルトの名無しさん :02/05/16 12:34
早くDebianに取り込まれないかな
>>119 スマン。別のソフトでは使える場合もあった。
ダメだったのはnbench-2.1のHUFFMANのところで
セグメンテーションのエラーが出たところだった。
ダウソ中。それにしてもデカイ・・・
126 :
デフォルトの名無しさん :02/05/22 00:37
リンカースクリプトってむずかしい
とりあえず、Linuxのカーネルはいける。
Solarisで makeにしっぱいしたよ!!
129 :
デフォルトの名無しさん :02/05/23 02:48
>>111 When you specify `-O', the compiler turns on (中略)
`-fomit-frame-pointer' on machines that can support debugging even
without a frame pointer.
だそうです。(info gccより。)
x86系だと machines that can support debugging even without a frame
pointer じゃないので、-O だけでは -fomit-frame-pointer は付きません。
130 :
デフォルトの名無しさん :02/05/23 03:45
x86系限定ですが、何のwarningも出さずにおかしなコードを吐きます… $ cat hoge.cc #include <stdio.h> #ifndef __stdcall #define __stdcall __attribute__((__stdcall__)) #endif #ifndef __cdecl #define __cdecl __attribute__((__cdecl__)) #endif void __stdcall print_i(int i) { printf("%d,", i); } void __cdecl print_i(int i); int main(int argc, char **argv) { int i; for (i = 0; i < 20; i++) print_i(i); printf("\n"); } $ gcc -v Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs gcc version 2.95.3-5 (cygwin special) $ gcc -Wall -o hoge hoge.cc $ ./hoge 0,1,2,3,4,5,6,7,8,9,10, Segmentation fault (core dumped) $
attributeって関数のシンボルに反映されないんじゃない? 上書きが警告されないというのも変だけど...
$ gcc -v Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs gcc version 2.95.4 20011002 (Debian prerelease) $ gcc -c attr.c attr.c:11: conflicting types for `print_i' attr.c:8: previous declaration of `print_i'
133 :
デフォルトの名無しさん :02/05/23 23:02
>>132 .c だけじゃなくて、.cc でもやってみよう。
.cc → エラー無し(130) .c → エラー(132)
135 :
デフォルトの名無しさん :02/05/23 23:14
>>131 上書きっていうより、あいのこになってしまいます。
print_iを呼ぶとき、
__cdecl なら
addl $-12,%esp
movl -4(%ebp),%eax
pushl %eax
call _print_i__Fi
addl $16,%esp
__stdcall なら
addl $-12,%esp
movl -4(%ebp),%eax
pushl %eax
call _print_i__Fi@4
addl $12,%esp
となるはずが、両方指定すると
addl $-12,%esp
movl -4(%ebp),%eax
pushl %eax
call _print_i__Fi@4
addl $16,%esp
になってしまって、どっちやねん!
139 :
デフォルトの名無しさん :02/05/31 03:03
writeとかreadとかを自分で書いたのに置き換えたいんだけど libcのコンパイルをしなおさないで済ます方法をおしえてくり。
140 :
デフォルトの名無しさん :02/05/31 03:11
>> 139 LD_PRELOADとか使って普通にinterpositioningするんじゃだめ?
>140 スタティックリンクしたいんだけど。無理かな?
>>139 Linuxだったら/usr/lib/libc.soをテキストエディタで覗くと幸せになれるかもしれない。
143 :
デフォルトの名無しさん :02/05/31 03:42
$cat /usr/lib/libc.so /* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a ) これってどういう意味?
-lcの時、/lib/libc.so.6を見てから/usr/lib/libc_nonshared.aを見るようにできるんじゃないの? これを利用すれば一部の関数だけオーバーライドできそうだけど。
>> 139=141 static linkでいいならそれこそ普通のobject interpositioningでOKでないの? $ cat caller.c #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int main(int argc, char** argv) { open("/dev/null", O_RDWR); return 0; } $ cat open.c #include <stdio.h> int open(const char *pathname, int flags) { printf("object interpositioned\n"); return 0; } $ gcc -c caller.c $ gcc -c open.c $ gcc open.o caller.o $ ./a.out object interpositioned $
146 :
デフォルトの名無しさん :02/05/31 21:22
>>139 そのwriteとかは自分が呼ぶだけ?
それともprintfとかが呼ぶwriteも置き換えたいの?
どっちだろう。
>146 printfが呼ぶ奴も乗っ取りたいのでシュ!
150 :
デフォルトの名無しさん :02/06/01 00:02
>>149 昔のUNIX系の処理系では乗っ取れてしまうものがある。
これって、ANSI C的にはまずいんだけど。
というわけで
>>139 よ、古いUNIXを探してみたらどうだろう。
newlib作り直してまーす。 writeとかその辺の底辺チックな分を全部取っ払って 自分libをリンクしないとダメなようにしてみてます。 でも、本当は #ifndef hoge void hoge( int fd, char* buf, size_t size){ return 0; } #endif みたいな仕掛けを作りたいです。 Javaでいうところのオーバードライブでしたっけ? そんな感じ
Javaでいうところのスーパーチャージャーです。
>>151 ふぁらんじゃーでジェットサウンドの方が効率良いよ。
www.google.com
アーカイブにチョクリン求む
グッシッシage
161 :
デフォルトの名無しさん :02/06/07 16:58
Javaでいうところのオーバードライブage
162 :
デフォルトの名無しさん :02/06/07 17:21
gccのJavaはSwingはおろかAWTさえ使えないんですよね。 これって何か使い道あるんでしょうか。
public class test { public void main(String a[]) { System.out.println("hello,World!"); } } をコンパイル、実行して「Javaできます!!」と履歴書に書けます。
164 :
デフォルトの名無しさん :02/06/07 19:46
>>163 すばらしい!!
ぼくもgccしたい!!
でもディス鳥TL8はgcc 2.96だ。
よほどバグでもあるんだろうね。3.x
168 :
デフォルトの名無しさん :02/06/09 10:03
アセンブルしたとき、アセンブラとCとの比較をしたいとき アセンブラのある行が、Cのどの行がコンパイルされてできたものかを 知りたいときはどんなオプションをつければいいのでしょうか?
170 :
デフォルトの名無しさん :02/06/09 10:38
標準ライブラリ使ってないのに、勝手にmemcpyとかmemsetとか使われて リンクエラーになる。 ちょーウザい。どうにかならない?
171 :
名無しさん@お腹イパーイ。 :02/06/09 10:53
>>170 -fno-builtin
// -ffreestandingな人なのかな?
172 :
名無しさん@お腹イパーイ。 :02/06/09 11:11
>>171 ごめん。
-fno-builtin(あるいは-ffreestanding)するとlinkしようとするってことだね。
逆だね。-ffreestanding -fbuiltinだね。
>171 いやーそれつけてもダメなの。困った困った。
174 :
名無しさん@お腹イパーイ。 :02/06/09 12:44
じゃあ、-daとsource codeだ(w
175 :
御茶目菜子 :02/06/09 13:31
GCCだって?バカじゃないの? いまのじだいポケコンBASICじゃんか
176 :
デフォルトの名無しさん :02/06/09 13:39
cygwinとかfreebsdがgcc3.xに移行しない理由はなんだろな〜♪
>>175 BASICスレに逝けよ。
>>176 まだ不安定なんじゃない?
俺の所にもmingwのGCC 3.0があるんだけど、なんか癖有り状態だし。
178 :
御茶目菜子 :02/06/09 14:28
gccなんてうんこだね。 BASIC使えないんだって? どんくさ〜
179 :
デフォルトの名無しさん :02/06/09 14:42
gcc使ってる奴は在日
うーん。これってアセンブラのオプション、だよね? 全然わからん・・・
182 :
デフォルトの名無しさん :02/06/10 19:47
>>168 おれもわからん。
-Sのアセンブラ出力にCコードをコメントで入れてホスイってことね。
しょうがないから-g -cで一回objに落として
objdump -d -Sで見てる
>182 ナイス! とりあえずその手でいかせてもらうよ。 次に生まれ変わった時は、アンタと結婚したいな。
184 :
デフォルトの名無しさん :02/06/10 22:23
>>170 gcc -v してみると、リンクするときに自分が作ったやつ以外の
.o がリンクされてない?(crtなんとか.o とか)
crtなんとか.o とかが原因だったら、そのソースをmemsetとか使わずに
書きなおせばいいんでは。
crt*.oって標準ライブラリにリンクしてあるの? あれってただのスタートアップルーチンかなって思ってたんだけど。
crt*.oじゃリンクしてないと思うけどなぁ。nmで調べてみ。 どの関数で参照してるかとか、リンカのメッセージに出てないの?
187 :
デフォルトの名無しさん :02/06/10 22:40
>>185 crt*.oって標準ライブラリみたいなもんだけど、それはオプションで切れるよ。
>>184 memsetとかって、例えば構造体とか配列とか作ったときに勝手に初期化するもんで
(最近のgccって賢いよな) それ用にmemsetを勝手に呼ぶようにコンパイルするんよ。
自分で使ってなくても勝手にでてくるんだよね・・・
誤解招きそう crt*.oはもちろんただのスタートアップルーチンだよ。うん。
189 :
デフォルトの名無しさん :02/06/10 22:46
foo(unsigned int x){ const int hoge[4] = {0x00,0x20,0x33,0x54}; return x<4?hoge[x]:-1; } まあこんな関数があったとして、-nostdlib でコンパイルすると memcpyが必要、とか言われるんですけどなんででしょうか? アセンブラ読んでもmemcpyなんて出て来ないし・・・
>>170 static const int hoge...
ほんとーにアセンブリ吐かせたか?
>191 おー素晴らしい。オレが一方的にバカだったみたい。 なるほどね。3日悩んじゃったよ でもアセンブリ吐かせてmemcpyでてこなかったんだよなぁ。 objdump -D hoge.o | grep mem で確認してたんだけど・・・
193 :
デフォルトの名無しさん :02/06/11 06:14
194 :
デフォルトの名無しさん :02/06/11 13:05
グッシッシ
195 :
デフォルトの名無しさん :02/06/11 14:24
次のDebianはgcc3.1でパッケージ作るのかな?楽しみー
196 :
デフォルトの名無しさん :02/06/12 12:54
グッシッシ
グッピッピ
198 :
h8300-hms-gcc :02/06/14 23:03
static int a; のとき、a++; をコンパイルすると -mint32 をつけてないのに mov.w @0xfff134:32,r2 adds #0x1,er2 mov.w r2,@0xfff134:32 という感じで32ビットの足し算をしているようです。 いったいなんででしょうか? また、せっかくINC命令とかあるのになんでgccは 最適化してもそれを使ってくれないのでしょうか? グッシッシは2.95.3 、対象は3067Fです。
お前が改良しる
>>198 incはUパイプOnlyだからかと。
演算はleaとかaddにしたほうがいい。
>183 objdump -d -Sだとexternシンボルが-見えないので objdump -d -S -rのほうが吉。
202 :
デフォルトの名無しさん :02/06/16 06:04
CPUごとってーかアーキテクチャごとに最適化の仕方とかを記した ファイルがあるらしいのですが、いったいどのファイルでしょうか? また、それらを改造して自分好みの最適化を編集できるでしょうか?
203 :
仕様書無しさん :02/06/16 07:01
*.mdってファイル。 自分好みの最適化って何?
204 :
デフォルトの名無しさん :02/06/16 07:25
>203 例えばビット演算が装備されてるCPUにおいて 1ビットのビットフィールド使っているときとか 自動的にビット演算命令を使うように コンパイルしてほしいのですよ。 *.md、見てみます。
205 :
デフォルトの名無しさん :02/06/23 22:26
pragmaって行儀が悪いから使うな って聞いたんだけど、どうなのかな。
行儀が悪い悪くない以前に、pragmaは標準じゃ出来ない拡張を施す物で、 どうしても必要なら使わざるを得ない。 それから#pragmaって書くけど、プリプロセッサが理解する物ではない。
#pragmaは、処理系に定義されてないものが書かれても単純に無視する だけだけど、偶然違う意味のパラメタの文字が一致したりすると悲惨。最小限に 使おう。
俺が作ったコンパイラは知らない#pragmaがあるとファイルを全て消しにかかるから 気をつけてくれ
>208 こわっ!
>>208 それはANSI-C規格に沿ってないね。
212 :
デフォルトの名無しさん :02/06/24 00:25
割り込みハンドラを書くと、レジスタの退避を勝手に書き出してくれるけど どう考えても余計なレジスタ退避までやってて非効率的。 こういう定型処理なところは最適化の対象にならないのかな?
> 割り込みハンドラ VC++でいうところのnakedはないのかな?
214 :
デフォルトの名無しさん :02/06/24 00:40
おまんこ
>212 割り込みが頻繁に発生するの?効率を気にするほども?
216 :
デフォルトの名無しさん :02/06/26 16:08
MinGWの3.1使ってます。 __gxx_personality_v0 が出ちゃうのはどうにかならんの? 次のlibc待つしかないのかな?
217 :
デフォルトの名無しさん :02/06/27 03:15
g++でコンパイソするとなんとかテーブルっていうのが入ってるから実行ファイルが大きいのですか?
strip汁
219 :
デフォルトの名無しさん :02/06/28 19:52
2.95で-fexceptionsオプションをつけたら、 terminate__Fvが定義されていない、みたいなこと言われました。 これってどうすればいいんですか?
GCCか。 数値解析屋としてはさらなるチューンを望むな。
リンクもg++でやるか、もしくは-lstdc++オプションをつけよう。
222 :
デフォルトの名無しさん :02/07/02 12:06
GCCのソース見てみたら数学関数がアセンブラになてた。。。 ショック
>>217 2.95.2までは小さかったけど、3.1になってから実行ファイルが大きくなった
みたいだ。おそらくライブラリの大改修が行われてスタティックリンクする
ファイルが増えたと見られる。
224 :
デフォルトの名無しさん :02/07/02 15:20
自慰しぃーしぃー
225 :
デフォルトの名無しさん :02/07/02 19:41
gccは一般にunix等で使われるそうですが、windows版はあるのでしょうか?
(゚∀゚)あるよ
227 :
デフォルトの名無しさん :02/07/02 19:48
gnuサイトにあるのですか?
229 :
デフォルトの名無しさん :02/07/02 20:25
インストール途中でフリーズしてしまいます。 どうすればいいのでしょうか?
>>229 ローカルにダウンロードしてからだと上手くいくかも
ソースはどのディレクトリに置いてとくもんですか?
/usr/src
ふつー /usr/local/src
漏れは~/src/*
236 :
デフォルトの名無しさん :02/07/09 16:53
mingw で gcc3.1 を使ってるんですが、 int main(void) { char a[1000000] = ""; return 0; } みたいなソースをコンパイルすると、 なんだか巨大な実行ファイルができてしまいます。 配列のサイズを変えれば出力ファイルのサイズも変わるし、 初期化しなければ普通の?サイズになります。 ming の gcc 2.95 では再現しません。 自分が厨なだけで、こんなもんなんでしょうか? それとも gcc3 以降に新しいオプションでも追加されたのでしょうか?
>>236 1000000バイトの空文字列が初期化用に用意されるためです。
おそらくどのコンパイラを使っても同じような結果になるはず。
>>236 っつーか、空文字列だから、最適化の度合いによっては、0で埋める
ようなコンパイラもあるのか。
>>237 はchar a[1000000] = {'\0'}; と勘違いしている。
>>239 同じです。
"abc"は{ 'a', 'b', 'c', '\0' };と等価なので、
同じと解釈するコンパイラがあっても間違いではありません。
>237 構造体の初期化のように、 配列内の全ての要素が 0 で初期化されるということでしょうか? なるほどー。 厨で申し訳ないです… 勉強し直してきます。 ちなみに手持ちのコンパイラ(Win32)では、最適化なしで bcc では gcc3.1 と同じ結果になり、 gcc2.95 と cl は小さいサイズになりました。 gcc3.1 でも -Os をつけるとサイズが小さくなりました。(-O2では駄目だった)
>>240 char *a = ""; と勘違いしていた。鬱氏。
>>238 gcc 2.95.3がそれやってる。
領域を確保して0をmemset
244 :
デフォルトの名無しさん :02/07/10 16:22
mingwの3.1のcoreとやらを入れて、適当なソースファイルをコンパイルしたところ ld: cannot find -lmingwex というエラーが出たんですが、これってライブラリが見つからないってことですか? 落としてきたgcc-3_1-core-20020516-1.tar.gzには、それらしいファイルが ないっぽいんですが?
runtimeに入ってると思う
binutils core runtime (libstdc++) (make) (w32api) (gdb) 必須は上の3つ
>>245-246 ありがとうございます!助かりました!
なんかしょうもない質問だったのに、即レスありがとうございました
248 :
デフォルトの名無しさん :02/07/10 20:34
javaをnative compileしてどうするの?
249 :
デフォルトの名無しさん :02/07/10 20:40
age
>>248 C++のクラスとリンクできたりして楽しい。
ガベコレはどうなるのだろう。 参照カウントを内部でするような コードを生成するのかな?
253 :
デフォルトの名無しさん :02/07/11 18:41
age
C++とjavaのインタフェースがあったのか
255 :
デフォルトの名無しさん :02/07/12 23:23
ガベコレはネイティブコンパイルしたときも動作するのか。
当たり前
257 :
デフォルトの名無しさん :02/07/14 14:57
なあんだ
3.*と2.95〜のライブラリって混ぜても大丈夫ですかね
あ、言葉足らずでしたスミマセン ある共有ライブラリはlibc++(2.95)を使い、 ある共有ライブラリはlibc++(3.0.4)を使っています。 これらを一緒に使っても問題ないでしょーか。
だめ
262 :
デフォルトの名無しさん :02/07/14 22:44
まじですか? こりゃ困った・・・
>>260 ライブラリをコンパイルしなおせばいいんじゃないかな
265 :
デフォルトの名無しさん :02/07/15 00:49
最新のgcc-20020708.tar.gz をとってきて。コンパイルしますた。 だけど gcc/cp/parse.h がないとかエラーが出て とまってしまいます。 だれかコンパイルできてるかたはいますか? gcc/cp/parse.y ならあるんですが。。。
状況ですが、2.95のほうはソースコードのないライブラリです 3.0.4のほうは自前なので、こちらを2.95でコンパイルすればいいんですけどね・・・ ところで、ダメな理由というのはどういうものなのでしょう。
flex/bisonはインストールされてますし、 パスも通っています。
>>268 >>267 の通せってのは、パスを通せって意味じゃなくて、
parse.yをbisonに通せって意味じゃないの?
configureでflex/bisonが見つかれば、必要に応じて自動的に呼んでくれるんじゃないの?
271 :
デフォルトの名無しさん :02/07/15 11:02
Linux上でGCC使ってるんですけど、エラーメッセージを ファイルに落とすオプションって何なんでしょか? 検索かけたり、日本語マニュアルを読んだりしてみましたが 載ってないようなんです。 3年程前に参加していたプロジェクト(別の会社)では、確かに エラーメッセージをログファイルに落として、それを元にエラー修正を 行っていたはずなんですが・・・当時の資料は当然持ってないので、わかりません。 誰か教えてください〜〜!(T-T
いやマジで。マニュアルに載ってないでしょ?
>>273 GCCのマニュアルには載ってないだろうな、当然。
man sh
漏れもネタ書こうかと思ったけど
>>271 にはかないません。
いっぱい釣れた(w
279 :
デフォルトの名無しさん :02/07/17 10:04
保守
280 :
デフォルトの名無しさん :02/07/18 13:26
gcc で Windows 向けの商用アプリ作っている人っているんでしょうか。
281 :
デフォルトの名無しさん :02/07/18 14:11
メーカーサポートとMSDNがあるんでVisualC++を使います。
282 :
デフォルトの名無しさん :02/07/18 14:35
Mingw32 をソースからビルドしたいのですが、ソースの入手 先と、ビルド方について分かりやすく解説したページなど、 ございませんか。 ところで、Mingw32 のソースは、Mingw32 そのものでビルドす るのでしょうか。VC++ などでコンパイルするのでしょうか。
ビルド方--->ビルド法です。 スマソ
バイナリを配布してるとこと同じところにソースあるんでねーの? Mingw32ってGPLだろ?
保守
286 :
デフォルトの名無しさん :02/08/03 12:27
win32でgcjをビルドした人っています?
287 :
デフォルトの名無しさん :02/08/03 17:38
AthlonXPに対してVisual C++とGCCで作った、エンコーダなどのバイナリで どちらが速いかを比べてみたいのですが、GCCでWindows2000のDOS窓で動く バイナリは作れるのですか? どうもCygwinという環境の中でないとだめのようですが。。。
GNU + Cygnus(省略)
>>287 CygwinでもMingwでも落としてください。
>>288 ありがとうございます。
ひとつ賢くなれます太。
>>287 cygwin 版の gcc で cygwin1.dll を必要としないバイナリを作りたいなら、
コマンドラインオプションに -mno-cygwin つければ良い。
mingwパッケージを入れないと出来ない
292 :
デフォルトの名無しさん :02/08/04 20:21
__attribute__って結構面白いよね。 dllimport系以外、大抵はlibc位でしか使わないけど、 formatなんかは普通に便利。使っている人いる?
意味わからん どういう物なのか教えてくれ
>>292 ハードウェアよりのコードを書くときには、aligned は良く使ってる。
295 :
デフォルトの名無しさん :02/08/04 22:50
>>294 >aligned
その手があった! もっと早く言ってくれよ・・・ もう手遅れだ
297 :
デフォルトの名無しさん :02/08/14 15:48
RTLお勉強再開あげ
300 :
デフォルトの名無しさん :02/08/15 21:55
ast-optimizer-branch を使ってる人はいますか?
ここはGNU C Compilerのスレ? それともGNU Compiler Collectionsのスレ?
Cllectionスレでしょ。 gcjでもgnatでもいいんじゃない? 使ってる人少なそうだけど。。
>>303 gobjcって、使っている人多いのかな。
mingwのgcjを待ちわびているのは俺だけですか?
306 :
デフォルトの名無しさん :02/08/17 10:27
c99に対応するのはいつだ?
もう対応してるんじゃないの?
pragma全部対応してない
-Wall付けるとpragmaでwarningが出るんだけど pragmaのwarningだけ止めれないかな?
311 :
デフォルトの名無しさん :02/08/17 22:55
良く分からんのですが、C99の仕様は完全に満たしている、 ということでしょうか? C++はまだ追いついてませんよね?
gccがexportを採用すれば最強なんだが。
>>310 gccはそのへん弱いよね。俺も知りたいよ。
VCみたいに番号で抑制できればいいのにね。
gccは最適化が弱い VCはおろかWatcomにも負ける
>>315 どこかに統計的な資料がある? 昔、C++ でマルコフ情報源を使って適当な
文章を書き出すプログラム(プログラミング作法で使ってたヤツね)を走らせて
みたんだが、コンパイラの差よりも STL の実装の差の方が大きかった覚えが。
(資料どっかにやってしまったが)
vectorのreserveで1000000000ぐらい確保すると bad_allocをキャッチ出来ないでout of memoryって表示されて終了。 多分stlの実装の問題だと思うんだけど、 これなんとかなりませんか? gccは2.94です。
>>316 1998年の資料なんであんまり参考にならないけど、
http://www.geocities.com/SiliconValley/Vista/6552/compila.html によると、VC++よりは悪いけど、Watcomとは同じぐらい、表には載ってない
がBorlandやSymantecより良かったらしい。
新し目の資料として、Athlonで各種暗号アルゴリズムに対する計算速度の
比較をgcc-3.04, Intel C++ 6.0, KAI C++ 4.0eに対して行ったものがある。
http://www.randombit.net/misc/x86_comp.php ちなみに、
... this test is only a comparison of integer code. ... So please
only consider these results useful if your application is also
heavily integer-based.
という条件付きなので注意。
これによると、条件付きとは言えAthlonではgccはIntel C++より良いらしい。
VC++の最適化はだいたいIntel C++と同じくらいのようだから、Athlonでは
gccの方が良さそう。
なので、gccの最適化が弱いというのはAthlonでは当てはまらず、巷のgcc-3.x
Athlon最強説は正しいっぽいと思われ。
自分でstlヘッダ書き換えて直しました。 こういう実装があるからstlは嫌いなんだよな。
stlのヘッダを書き換えずにアロケータを書き換えるか、 もっと下のレベルのnewを書き換えるとかするべきじゃないの、本来は。
321 :
デフォルトの名無しさん :02/08/18 03:50
>>320 言葉足らずスマソ、書き換えたのはアロケータです。
ところでスレ違いかも知れんが、ドラフトに完全準拠してる処理系ってあるのかな?
athlonだけで最強でもなあ...
>>322 なんでISじゃなくてDraft準拠なわけ?
ワロタ 草案に準拠って何ダロね
>>323 でも、gccの最適化はダメという説に対する反証にはなるよね。
gcc-3.xのPentium IIIやPentium IVでのベンチマークがあればはっきりするんだけど、
見つからなかった。
これも少し古い資料なんだけど、Pentium IIIでのgcc-2.95とintel 5.0とVC++ 6.0
の比較。
http://www.open-mag.com/features/Vol_15/IntelC/intelc.htm On Linux, numerically intense CPU performance improved by 47% compared to GNU C v2.95
On Windows, numerically intense CPU performance improved by 37% compared to MS Visual Studio.
なんで、gcc-2.95とVC++ 6.0の差はそれほどではないが、gcc-2.95とintel 5.0の差は
大きいということになる。
でも、今のところ規格準拠度が他より高く、非常に多くのプラットフォ−ムに対応し、
一通りの最適化をしてくれる上、フリ−なんだから、普通に使う分には十分な性能だと
思うけどなあ。数値計算とかなら金払ってカリカリに最適化してくれるコンパイラを
買えばいいだけだし。
>>326 > 普通に使う
その「普通」に、実は 326 固有の使い方が投影されている可能性が高いと
思うが……。
なんにせよケースバイケースで、gcc が十分、あるいは gcc がベストの選択肢
となる用途もある。ただ、それを「普通」というと解釈が食い違ってフレームになる
可能性が高いから、ちと気をつけてくれ。
>>327 そうか?
「普通」というのは実行速度が極めて重要な分野など特別な事情がある場合以外
という意味だよ。
例えば、数値計算分野では、基本的に今まで計算機では計算できなかったものを
計算することに意味があり、どういう方法でもいいから速度が上がれば今まで計算
できなかった問題に対応できるようになるので、計算速度が一番重要。
でも、数値計算以外ではそこまで実行速度は重要ではないでしょ。むしろ、手軽に
入手でき、手元のプラットフォ−ムで規格に沿ったプログラムをちゃんとコンパイル
できるほうが重要。
全体的に見て、今のgccには大きな欠陥がなく他より優っている部分の方が多いん
だから、特別な事情がなければgccがbetterな選択になると思われ。
> なんにせよケースバイケースで、gcc が十分、あるいは gcc がベストの選択肢となる用途もある。
これってgccを別のものに置き換えても成り立つじゃん。
> それを「普通」というと解釈が食い違ってフレームになる可能性が高いから、ちと気をつけてくれ。
特別な事情がない場合を「普通」と呼ぶのがそんなに変か?
>>328 > 「普通」というのは実行速度が極めて重要な分野など特別な事情がある場合以外
> という意味だよ。
「特殊」は「普通」の裏返しだからな…
少なからず開発者人口がいる Win32 の分野なんかだと gcc は
- プリコンパイルヘッダに対応していないので <windows.h> 読み込むだけで
時間かかりすぎ。
- UNICODE 対応がイマイチ
- 最新の Platform SDK に対応していない
- MFC, ATL/WTL, VCL といったクラスライブラリが提供されていない
- BoundsChecker のようなリソースリークを検出するツールなど、サードパーティ
製品が充実していない
といった理由で、お奨めとは言いにくい。
「特別な事情」とか「普通」とか言わずに、具体例で示した方が話が建設的な
方向に進むと思うが、どうか?
>>326 > でも、今のところ規格準拠度が他より高く、
完全に準拠しているわけではないので、目糞鼻糞。
> フリ−なんだから、普通に使う分には十分な性能だと
性能の話しにフリーかどうかを持ち出すのはおかしいだろ。
漏れはgcc愛用してるが、少なくとも最適化は駄目だ。
信者じゃないんだったら駄目な部分も認識しておこうよ。
(athlonで最強ってのも、それこそ「普通」はathlonなんか使ってない)
>>329 そっちのほうが「特殊な事情」じゃないのか?
>>329 ちなみにWin32に限らずgcc-3.0のコンパイル速度は遅い。今まで誰も突っ込ま
なかったのが不思議なくらい。
まあ、たしかに、Win32だとgccは使いづらいかも。でもgccの問題というより周辺
の開発環境の問題だという気がする。
>>330 > 性能の話しにフリーかどうかを持ち出すのはおかしいだろ。
入手できないければ意味ないじゃん。入手できないコンパイラの性能は実質0だ。
C&C++最新規格完全準拠、最適化も最強、でも値段が1億円でライセンスガチガチ
だったらあんまり意味ないだろ。個人だとVC++すら買えんやつ多いぞ。
> 少なくとも最適化は駄目だ。
その根拠が知りたいんだけど。
よくgccの最適化は駄目だ駄目だって言われている割には具体的なベンチマークがあん
まり出ていないんだよね。コ−ド読んで最適化手法として教科書通りのことしかやって
いないから駄目って言うかもしれないけど、他のコンパイラがそれ以上のことをやって
いるとは限らないし。
たしか、egcsの1.1とVC++ 5.0あたりでは最適化アルゴリズムはほとんど同じだが、egcs
ではコ−ドが不完全で遅かったりミスコンパイルすることが多い、そこがegcsとVC++の
差だったって話を聞いたことがある。
x86以外ならともかく、gcc-3.xマンセーマンセー言ってathlon向けにgccでコンパイルして
いるフリーソフトの開発者がそこそこいるのに、一方では粘着チックにgccの最適化は
駄目だ駄目だと言われ続けているのが不思議でたまらない。
特殊な場合/普通の場合なんて曖昧な良い方しないでさ、例えばLinux+Athronで STL使わなければホゲホゲぐらい出るからフガフガだって言えばいいんでないの? 普通/特殊なんて人によって違うんだからさ。 // 本筋(どの場合にどの程度のパフォーマンスが出るのか)に関係ないからsage。
LinuxならIntelのコンパイラがタダであるし、 WinならVC++とIntelのがあるな。 標準準拠度もComeau C++ + VCで最強だが。
>>332 > 入手できないければ意味ないじゃん。
意味があるかどうかを決めるのは俺たちではなくて、ユーザの側だ。
332 の価値基準で「普通」とか「高価で買えないから無意味」とか言っても、
そんなことは誰も興味ないわけで。判断材料の一つとして
gcc は無料というのはメリット
って形で提示しようよ。
336 :
デフォルトの名無しさん :02/08/18 20:53
>LinuxならIntelのコンパイラがタダであるし、 30日だけ??
>>332 > > 性能の話しにフリーかどうかを持ち出すのはおかしいだろ。
> 入手できないければ意味ないじゃん。入手できないコンパイラの性能は実質0だ。
> C&C++最新規格完全準拠、最適化も最強、でも値段が1億円でライセンスガチガチ
> だったらあんまり意味ないだろ。個人だとVC++すら買えんやつ多いぞ。
「性能の話に値段は関係無い」って意味が分からないの?
そこで自分勝手な妄想コンパイラを例にあげるなよ。
で、普通とか特殊とか値段とかそういうfjチックなage足取りはどうでもいいから、 gccの最適化機能は、Intel C++やVC++と同レベルで、十分な最適化を行っている っていう結論であってる?
つーか、コンパイラの最適化での実行速度の差が 問題になるアプリケーションっていまだにあるの?
>>342 ほとんどないだろーよ。
それが問題になる状況ってよっぽど「特殊」なんだけど、
ここの人たちがこれにつっこまないのがフシギ。
で、Draftに準拠(藁)の話はどうなったの?
>>342 もちろん、山のようにある。問題にならないアプリケーションも山のようにある。
そこらのPCで動くアプリでは、今や速度なんて問題にならない アプリケーションがほとんどだと思うんだけど、 "コンパイラまかせで" 速度をアゲなければならないアプリを 具体的にアゲてもらえませんか? MPEG4コーデックなんかはMMXなりSSE2なり使えばいいんだから除外ね。 シミュレーション屋さん?計算屋さん?天文屋さん?
Pentiumなんていいからさ、Itaniumの方はどうなのよ。 プロセッサ自体が出回ってるとかそういうことじゃなくて、、、 イタコンは漢のコンパイラって感じがするんだけどよー intelとvc++とgcc、これについてはどんなもんでしょ。
Itaniumは専用コンパイラじゃないと性能発揮できないんでねーの?
なんか芳しいガキがまぎれこんだな。 ここはgccスレなんだよ。PC小僧はすっこんでろ。
>>345 > "コンパイラまかせで" 速度をアゲなければならないアプリを
> 具体的にアゲてもらえませんか?
それは問題定義が変。
速度を上げたければ、アセンブラで書くなり CPU 早いのに入れ替えるなり
方法はいくらでもあるわけだが、
コンパイラの最適化が優れていることで、利益が出る
ならば、最適化が優れているコンパイラを選択することに意味がある。
アセンブラだと性能と開発費(人件費・時間)のトレードオフが発生する
から、コンパイラに任せた方が安上がりってケースもあるしさ。
あと IA-32 限定で話をする必要もないと思うが。
>>348 どうしても「gcc最高!」って叫びたいヤツが紛れ込んでるよな。
べつにgccがある面で他に負けてるからと言って、そいつのせいじゃないし、
冷静に比較検討すりゃ良いだけなんだが。
VC++ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> gcc
>>350 逆に「gcc最低!」って叫びたい香具師も紛れ込んでいるよね。できる
だけ根拠を出して議論してほしいなあ。
>>351 みたいに。
>>352 > 逆に「gcc最低!」って叫びたい香具師も紛れ込んでいるよね。
いや「最低!」を主張するのは難しいと思うが。
lcc-win32 とかあるし。lcc は元々が「コンパイラの仕組み」を説明するための
教育用の処理系で、高度な最適化よりも単純な実装を優先してるから、仕方
ないと思うけど。
……もっと言えば、俺が昔、勉強がてら書いた処理系は、さらに酷い(w
>>354 論理的にgccを否定するならいいんだけど、そうじゃなくて、なんでもケチ
付けるアンチがいるでしょ?
まあ、死んじゃと安置の煽り愛は2chの鼻だからいいんだけどね。
gccは移植して使ってなんぼっていうものでしょ
>>355 文字から受ける印象と文意がかなり違うなあ、と珍しく思った。
>>356 gcc ってターゲットのアーキテクチャによっても、出力コードの良し悪しが
あるよな。IA-32 はユーザ数も多いし歴史も長いから、全く心配要らんけど。
>>358 いや、一番枯れてんのは68k用だよ。
IA-32はアーキテクチャ的にはgccには不利。
これはgccのせいというよりIA-32が思いっきりカスなだけだが。
>>352 >できるだけ根拠を出して議論してほしいなあ。
>>351 みたいに。
VC >>>>>>>> gcc っつのも大して根拠ないやろ。
小手先の最適化で勝っても(そら他チップに対応してないし
ホームベースなんだからgccに負けたらアホやな)
Windowzはシステムが思いっきりカスやしね。
MCI コマンド MCI_WAIT で送ってみ、デバイスからリターンするまで
ビジーループで待っててスレッドのCPU使用率100%や。(ワラ
1クロック短くする前にシステムのカスな部分がなくなってから
自慢してや。>> VC擁護派
>Windowzはシステムが思いっきりカスやしね。 gccマンセー派だが、コンパイラの議論には関係ないと思う。 # ネタをネタと…だなw
GNUハッカーさんがお見えになりますた。
>GNUハッカーさんがお見えになりますた。 いつかそう言われたいもんだ(笑)
(゚∀゚) gccっつーか、GNU御用達環境の最大のメリットは移植性じゃないか? ほとんど脳みそ使わずにi386からARMやらSH4からH8までサポートできるし。 なんつーか、メリットってそれだけだけどな。 あ、あと商用でもタダってのも。
>>365 > ほとんど脳みそ使わずにi386からARMやらSH4からH8までサポートできるし。
新しいアーキテクチャに対応する場合には、さすがにもうちょっと苦労するぞ。
組み込み用途なんかだと binutils と合わせて
- 対応アーキテクチャが多い
- 新しいアーキテクチャにも md ファイル書けば対応できる
(既存のアーキテクチャの変種だと、特に簡単)
- クロスコンパイラが作れる
っつーあたりは、大きなメリットだな。
> なんつーか、メリットってそれだけだけどな。
また余計な一言を……。
367 :
デフォルトの名無しさん :02/08/20 10:07
あと、__atribute__が面白いこととか。
いや、文式のほうが便利だ。
gcc依存コードなんて書く奴はアフォ
gcc では -ansi と -pedantic を必ずつける!
>>370 基本じゃないのか? Makefileに書いてしまうけど…。
373 :
デフォルトの名無しさん :02/08/21 11:15
>>366 >>また余計な一言を……。
デメリットを知っていながら隠さなくても
>>(既存のアーキテクチャの変種だと、特に簡単)
へぇ、簡単にできるのか。
>>373 > デメリットを知っていながら隠さなくても
デメリット指摘してないだろ?
>>365 > なんつーか、メリットってそれだけだけどな。
これじゃ、単に煽ってるだけだ。
>>318 > VC++の最適化はだいたいIntel C++と同じくらいのようだから、
の資料は?
377 :
名無しさん@お腹イパーイ。 :02/08/22 09:58
>>339 > これを見る限り、gccの最適化はもう駄目と言わせないレベルになったと
> 言ってもいいじゃないかな。
つーか、対VC++で「駄目」なんて言えるほど、極端に差が出たベンチ見たことない。
CPUたくさん対応してるから遅いだろうという思い込みや、
「駄目」ということにしたい人間がフレ廻っているだけと思われ
IntelやIBMが自社CPUに作ったcompilerはブッちぎりの速さなことがよくあるけど。
>>329 コードの最適化の話から外れてるじゃん(w
>>377 > コードの最適化の話から外れてるじゃん(w
何か問題が?
380 :
デフォルトの名無しさん :02/08/22 18:01
gcc 2.95で、 F:\開発\SRC\HOGE.CPP(108) : Error : Symbol '_vt.10CHoge' not defined F:\開発\SRC\HOGE.CPP(108) : Error : Symbol '_vt.10CHoge' not defined というエラーが出てしまいました。リンクエラーっぽいのでmakefileを 確認してみたのですが、何度見直してもミスしている様子はありません。 3時間ほど、いろいろ試してこのエラーと格闘していましたが、結局、私の力 だけでは解決できませんでした。 全く同じエラーメッセージがふたつ出てくるのもなにか怪しいですが……。 なにか、「こういうところはチェックしたか?」というヒントのようなものを いただけたら有難いです。
>>329 >少なからず開発者人口がいる Win32 の分野なんかだと gcc は
>といった理由で、お奨めとは言いにくい。
それで何か言った気になってるの?おまえあほだろ。
Windowsでの一番いいコンパイラはVBに決ってんだろ。
いちばん早いのはRubyです。
383 :
デフォルトの名無しさん :02/08/22 22:10
gcc でSTL使うとエラーがでるのですが、 コンパイルオプションは何をつければいいのでしょうか? (cygwin gcc 3.2 です。)
こんな感じです /cygdrive/c/DUCUME~1/...... undefined reference to std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string[in-charge]() ld returned 1 exit status
>>383 とりあえずコンパイルオプションに -v つけて実行した結果を見せてくれ。
gcc -v test.cpp > out.txt で 実行結果を出力できないのですが、 どうすればできるのでしょうか。 (out.txtに何も書き込まれない)
390 :
デフォルトの名無しさん :02/08/22 23:43
gcc2.95.3で -fprofile-arcs を付けてコンパイルして実行した後 -fbranch-probabilities を付けてコンパイルしても 同じ実行ファイルが生成されるのですが どうすれば違うファイルが生成されるようにできるのでしょうか
>>388 gcc -v test.cpp 2>&1 > out.txt
>>391 やってみましたが、テキストには出力されませんでした。...
その後、古いcygwinディレクトリをすべて削除し、installし直したら
g++でコンパイルできました。
>>384 ,386,387 ありがとうございました。
GrahamCentralCtation
>>378 いや、Intelの方が速いことが多い、と言ったつもり。分かりにくい文章でスマンが。
MIPSのコンパイラも(当時は)滅茶速いコードを生成した。
しか「も」データフロー解析アルゴリズムが美しい。
395 :
デフォルトの名無しさん :02/08/23 14:01
>394 MIPSのコンパイラも...データフロー解析アルゴリズムが美しい。 ぬ?GCCについての話じゃないけど、どう美しいか知りたいんいん。
小野寺めぐみのお○んこも美しい。 どう美しいか聞かれても答えようがない。
397 :
デフォルトの名無しさん :02/08/23 18:47
名器係数を定めるとか
>396 そういう時は、詳細がわかる参考文献あげて「これみろやゴルァ」とかするでしょうよ。 というわけで小野寺某の「おあんお」や「おあーい」の 詳細がわかる参考文献強くきぼんぼん。
エロバディXとかが参考になるかとおもわれ
401 :
デフォルトの名無しさん :02/08/24 14:49
今 gcc-3.2 のコンパイルしようとしているんですが、 その前に binutils-2.13 を入れた方がいいんでしょうか? 良く分からんのですが… 現状はこのような環境になっています gcc 2.95.3-2vl20 binutils 2.11.90.0.8-8vl5
アーキテクチャの 3つ組はなによ。 sparc-sun-solaris2.8 で binutilsをいれてはあったことならあるが。
Slackware使ってるけど、binutils 2.12.90.0.9とgcc 2.95.3で普通に コンパイルできた。昔みたいにコンパイルに丸一日…ってわけでもないだろうから、 とりあえずやってみてはいかが?
404 :
デフォルトの名無しさん :02/08/24 18:10
i386でVine linux 2.5
kernelのバージョンは2.4.18-0vl3ですね
今とりあえずやってます。。
3.2のマニュアルが英語でちょっと良く分からなかったんですが、
とりあえず $ make bootstrap で。
http://www.asahi-net.or.jp/~wg5k-ickw/ ↑ここに 2.95.2 の訳があるんですが、これって参考になりますかね?
なんか、結構変わってるようだったんで、
見るだけにしといたんですが。
405 :
デフォルトの名無しさん :02/08/24 18:11
gcc4.2って使い心地どう?
406 :
デフォルトの名無しさん :02/08/24 18:21
>>405 >gcc4.2って使い心地どう?
( ゚д゚)ポカーン
407 :
デフォルトの名無しさん :02/08/24 18:32
gccは思ったより簡単にコンパイル&インストールできるよね。 glibcは・・・
使い心地…俺は使いモンにならないと思うが…。コンパイルできないモノとかあるし。 時間が解決するもんだと思うよ。
409 :
デフォルトの名無しさん :02/08/24 18:41
いままでVBしか使ったことがなかったんです。(;´д⊂)
411 :
デフォルトの名無しさん :02/08/24 19:28
正直でよろしい
>>410 は偽者じゃないかと勘繰る俺
正直
>>408 の発言の真偽もさっぱり分からん俺
てゆうか最初gcc4.2が、さも実在するかのようにレスする
タイプのネタだとオモタ
…あー3.2のつもりでレスしたんだが。
414 :
デフォルトの名無しさん :02/08/24 21:46
今終了しました。pentium233で7時間… javaとかadaとかfortranとかobjective-Cとかのフロントエンドも 全部コンパイルしちまった。使わねーけれども。 ああもったいね…。ソースからコンパイルすると、アンインストール できねぇじゃん。make uninstallもダメだって find -ctime -1 -exec rm {} \; とかでやればいいか…
>>408 数ヶ月前、GNATSに登録したけど、まだ直ってないらしい。
結局ソースを直す羽目になる。
つーかマジでgcc, binutils, glibcの間に依存関係とかってあるんですか? 古いgccと、新しいgccでは、binutilsのコンパイル結果が違うから、 新しいの作ったら、binutilsも作り直さないといけないとか。 厨でゴメンヨ!
卵が先か、鶏が先か…ってか(笑)
glibc2.2.5も無事作れました。 gcc3.2だと構文エラーっぽいものが出たので、2.95でやってみたら問題なく。 windowMakerのドックアプリ試しにコンパイルしてみて、 ちゃんと出来てたし、多分大丈夫だろうと思います。…
>>416 オブジェクトフォーマット(elf/coff等)が同じであれば基本的には問題ないはず。
デバッグ情報とかがうまく生成されないとかいうのがあるかもしれんが、
出来たバイナリを使うだけなら問題ない。
おいらは、同じ時期にリリースされた or binutilsが新しいのを使うようにしてる。
続き glibc忘れた。 glibcはドキュメントに書いてあるバージョンを使えばいいんじゃない?
みなさんのgccを使うプラットフォームはなんですか? 私はLinuxや*BSD全般です。
>>421 SolarisとFreeBSDとcygwin
>>421 Cygwin と FreeBSD と PS2
FreeBSD プ
425 :
416,418 :02/08/27 23:49
微妙な遅レスですが、レスサンクスでした glibcは確かに面倒臭そうですね コンパイル自体は簡単だったけど、入れ替えるのが… 割と長期戦というか、少しずつ情報集めながらやらないとダメかも。 まぁ精進します。では
ニポンジンのミナサンはNetかOpenツカイマショウ
428 :
デフォルトの名無しさん :02/08/28 02:56
g++って、最近のリリースでも、やっぱり空ループは消してくれないのですか?
429 :
デフォルトの名無しさん :02/08/28 03:20
Red Hat7.1に入っていたgcc2.96を今使ってるのだが gcc3.2に移行を考えてます。 最適化とかは速くなっているのでしょうか?
最適化は速くならないだろ、うん。
>>428 そんなコト聞いてる時点でgcc3.2なんて使えない。気になるなら自分で調べれ。
できんのなら大人しくgcc 2.96.xか他のコンパイラでも使ってろ。
>>429 >Red Hat7.1に入っていたgcc2.96を今使ってるのだが
>gcc3.2に移行を考えてます。
ワラタ
429じゃないけど、さっき3.2に移行したけど何か? >429 はなんか笑える話なのか・・・?
空ループってプログラマが消すものなんじゃないの?
>>431 なんで煽られてんだ?
「消してくれる」ことはないみたいですね。
> ...the current behavior is both sub-optimal and inconsistent
> and will change in the future.
この記述ってけっこう古いバージョンから変わってないみたいだけど、
ほんとで変えるつもりがあるのかが、気になります。
>>433 じぶんでループまわしてるとこはそれでいいんですけど、
テンプレートの中に書いてあるループがヤバ目のコードを吐いたりします。
>>425 両方入れておけば。ディスク食うけど。
様子を見ていらん方を消せばいい。
> C:\DOCUME~1\usrname\LOCALS~1\Temp\ccaQaaaa.o(.text+0x20):voice.c: undefined reference to `PlaySoundA@12' 厨ですが失礼します。 MinGWを最近いじり始めたのですが、こんなエラーが出て。 いちおー匿名にしました( 'usrname\ ')が、他はメッセージ通り。 スイッチは特に指定なし。 今まで他環境で日本語化されたGCCだったのでいまいちピンと来ないのだけど、 これってリンカエラーですか? SorceForge.net で関係ありそうなバイナリは全て入れたつもり(教本掲載の窓だけ 表示するサンプルはコンパイル出来る)だけど、まだパッケージが必要なのかな〜。
>>436 ライブラリがリンクされてないだけじゃないの?
リンク時のオプションの最後に、
-lwinmm
をつければ大丈夫じゃない?
Simpleなねーみんぐのスレっすな
いえ、変わりませんでしたね。 これで私のタイプミスだったら御笑いなんですけどね・・・(^^;
>>436 w32api いれてる?
コンパイル時のコマンドラインは?
gcc -o hoge.exe hoge1.o hoge2.o -lwinmm
みたいなのでは駄目?
441 :
デフォルトの名無しさん :02/08/31 00:37
cygwin で gcj を使って javaのコードをコンパイルしたのですが、 マルチスレッドのプログラムが動きません。(;´д⊂) 情報を探していたら、GCC の non-bugs として下記の記述がありました。 Exceptions don't work in multithreaded applications. You need to rebuild g++ and libstdc++ with --enable-threads gcjも同じように --enable-threads を付けて自分でコンパイルすれば マルチスレッドで動くのでしょうか。。 それとも MinGWのgcj対応に期待して、とりあえず待っといたほうがいいかな。
>>441 これを機にコンパイル方法を覚えてしまうとか
まずは、ごめんなさい。
>436 でスイッチ指定してないとか書きましたけど、んな訳ないですね。
バッチで処理しているからいちいち記述しないだけで、バッチ内ではこんな感じです。
> gcc -mwindows -owmp wmp.c
>>440 はい、入れられる物は全て・・・と思ったけど確認してみたら入れてないし。
w32api-2.0 を慌てて入れました。
でも、変わらないです(^^;
と言うか、重月程度しかまとまった日本語資料知らないのですが、
どこか御勧めのサイトってありますかねえ?
皆さん、原文直接読めるんですね・・・。
>>443 PlaySoundA をインポートするためのライブラリが libwinmm.a 。
それが見つからないっていってんだから、リンクさせてやればいい。
この場合だと、
gcc -mwindows -owmp wmp.c -lwinmm
これで駄目なら、インストールがうまくいってないか、ソースが間違ってる。
とりあえず、gcc のマニュアルと MSDN くらい読んどけ。
445 :
デフォルトの名無しさん :02/09/01 20:15
gprofについて教えてください。どのように出力を読めばいいのでしょう? 各関数の呼び出し回数はわかるのですが、かかった時間がようわかりません。 下にあるのが実際にgprofが出力したものの一部です。 mcountというのは計測用に自動で生成された関数だということですが、これが 実行時間の約90%も占めているという意味ですか?プロファイルしないで実行 しても実行時間が 1/10 には到底ならないのですが・・・。 > Flat profile: > > Each sample counts as 0.01 seconds. > % cumulative self self total > time seconds seconds calls s/call s/call name > 63.14 10.04 10.04 _mcount > 24.97 14.01 3.97 mcount > 1.76 14.29 0.28 __get_eh_context > 1.57 14.54 0.25 24791361 0.00 0.00 vector<LR_item, allocator<LR_item> >::~vector(void) > 0.94 14.69 0.15 28433081 0.00 0.00 void vector<LR_item, allocator<LR_item> >::_M_assign_aux<LR_item *>(LR_item *, LR_item *, forward_iterator_tag) > 0.94 14.84 0.15 eh_context_static > 0.82 14.97 0.13 24791361 0.00 0.00 allocator<LR_item>::~allocator(void) > 0.69 15.08 0.11 28433081 0.00 0.00 void vector<LR_item, allocator<LR_item> >::_M_assign_dispatch<LR_item *>(LR_item *, LR_item *, __false_type) cygwinで % g++ -pg ソース % ./a % gprof a.exe としてます。
mona - libhoge.so - 2ch.so(hoge.soの関数を利用する為に-lhogeしました) monaから 2ch.soの関数呼ぶとエラーになるんすけど、これはリンクのさせ方が悪いのでしょうか? -lしないとそんな関数ねーよって言うし。
コンパイラとどんなエラーが出るのかを書かないと分からんよ.
コンパイラはエラー吐かないんす。 ↑実はpostgresでshared objectを動的にロードする形の話なんだけど、 postgresをmonaと見立てても同じことかな、思って。 ちなみにlddするとこんな感じ・・・ $ldd 2ch.so libcrypt.so.1 => /lib/libcrypt.so.1 (0x40031000) libxmlpgsql.so => /usr/local/lib/libmona.so (0x4007d000) libc.so.6 => /lib/i686/libc.so.6 (0x42000000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) このスレで聞いたのは間違いかも^^;
だからどんなエラーがでるのか書けって。 >このスレで聞いたのは間違いかも^^; 何様?
>449 いや、posgreスレの方かなと。
バッグエンドからは NOTICE: Message from PostgreSQL backend: The Postmaster has informed me that some other backend died abnormally and possibly corrupted shared memory. なのが帰ってきますが^^;、激しくすれ違いでした。
せっかくマターリとスレ進行してたのに台無しだな…夏休みは終わったってのに…. -------------------------------------------- ↓ ↓ ↓ ここから先はマターリとおながいします ↓ ↓ ↓
∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (゚Θ゚ ) <仕切り屋ウザイ Yo...!? ( U) \________ (__(_))) 荒れてる方が面白いだろうーがボケぇー
454 :
デフォルトの名無しさん :02/09/04 08:04
#include <vector> ↑の1行だけのソースでも、g++ -g ってやるとテンプレートがらみの部分 に対応したデバッグ情報がけっこうでてきます。 ソースファイルが数百あって、だいたいどんなファイルでも vector くらいインクルードされてると、 最終バイナリーの80%くらいがこのデバッグ情報の重複分になってしまいます。 なにかまちがってるような気がするのですが、こういうもんですか?
そういうものです。 変に省略されて、デバッガに嘘つかれるよりましです。 終わったらstripすればいいんだし。
>>455 vectorに関するコードが1ビットたりとも生成されてないのに、
嘘つくもなにもないと思うです。
> 終わったらstrip
デバッグ情報いるファイルのリストつくって、そいつらだけ -g とかしとこうと思いました。
>>454 重複するデバッグ情報って自動で削除されるんじゃなかったっけ…と思ったけど、
手元の資料見たらやっぱ手動でStripせにゃイカンらしい。
ちなみにその資料によると、stripしたバイナリは、他のstripされとらんバイナリの
デバッグ情報を利用できるそうだから、必要なモノだけ -g より、
不要なモノだけ strip の方が良いかも?
おいらの知識も結構怪しいので、も少し勉強しないとついていけませんな。 他のバイナリの情報を引っ張ってこれるなんて知らんかった。
>>457 > 不要なモノだけ strip の方が良いかも?
そっちも検討します。
情報ありがとうです。
ところでその資料ってやつがWebにあるもんなら、リンクいただけますかね?
>>458 騙りだー。
gcc で、標準入力からファイルを読み込んでコンパイルって可能でしょうか。 program | gcc -c -x c -o hoge.o みたいに。
>>460 #include "/dev/stdin"
↑の1行だけを書いた temp.c を作って
$ cat program.c | gcc -o hoge temp.c
463 :
デフォルトの名無しさん :02/09/05 22:38
ところでgccのjavaって、Javaの規格どこまで満たしてるの? 質問おかしいかな Java1.2、Java1.3、とかあるじゃん
>>462 おお、こんな手があるとは!
ありがとうございました。
>> 463
gcjはコンパイルするまで、実行環境はlibgcj。
文法仕様は1.4のassertも可能なのでコンパイルしてclassファイルを
作ることはできるけど、実行で使うlibgcjにあるクラスはJDKに無いものも多い。
http://gcc.gnu.org/java/
>>461 あれっすか、途中までしか読んでないなー。
もう一回最初から読み直そうかな。
>>460 ,462
gcc -x c -でないの?
>>467 あ、- が使えたのか!
こっちのほうがすっきりしてていいですね。
ありがとうございます。
ぐっしっし
470 :
西安 ◆CYANh33g :02/09/06 02:43
MinGW-2.0.0 リリース!!
471 :
デフォルトの名無しさん :02/09/06 06:39
>>470 gcc-3.2 based ですなー
2.95 の1.xから乗り換えるべきか...悩む..
gcc-3.1ブランチは捨てらしいね。 3.2がこれから主に使われていくとか。
3.1が3.2になって、3.2が3.3なったちゅー話やろ
先日 mingw を使い始めたのですが、 ShiftJIS 対応 gcc & windres はどこかに無いのでしょうか? あと、フリーのリソースエディタってどこかにあるでしょうか? lcc についてるのやら、BCCForm というのやらは見つけたのですが、 ちょっと使いづらくて…
素朴な疑問 gcc及びGNUの提供するソフトによって 同人ソフトをつくり、ミケでの公開は可?
479 :
デフォルトの名無しさん :02/09/06 13:18
>478 gccで作ったバイナリだけは例外でGPLは及ばないんでは? L/GPLライブラリを使えばL/GPLになるが。
480 :
デフォルトの名無しさん :02/09/06 13:49
LGPLでダイナミックリンクならLGPLの制限は免れる。 そうでなかったら、mozillaとかどーすんの?
481 :
デフォルトの名無しさん :02/09/06 13:56
一般にGPLのソフトの出力は、その出力にそのGPLのソフト自身の ソースを含まない限り、GPLは及ばないと書いてあるように思ったから gccだけが例外というわけではないんじゃないかな、多分。
482 :
デフォルトの名無しさん :02/09/06 15:33
これで合ってますでしょうか? gcc及びGNUの提供するソフトを使用してクローズドなソフトを 開発してもよい。ただし、その出力にGPLソフトのソース(及び オブジェクト)コードを含まないこと。 GPLソフトウェアは静的・動的ともにクローズドなソフトにリンクできない。 LGPLソフトウェアは動的リンクなら可能。 printf等が含まれるライブラリglibcはLGPLソフトウェア。 glibcを使用する場合は静的リンクならソフトウェアを GPLソフトウェアとして公開すること。 さもなければ動的リンクにしなければならない。 でもさらにスタートアップコードやシステムコールの ライセンスも絡んできますよね。
specs の書式を説明してるサイトってないっすか?
>>483 Google使えばたくさん出てきます、自分で調べてください。
>>483 gcc の info (Node: Spec Files) 読めば詳細に解説してあるが。
>>300 です。
他のブランチ使うほどgccに入れ込んでるひとはやっぱり少ないみたいですね。
まあやってる人は2chなんか見てないだろうなあ
>>488 ですね。currentのソースコード読むだけでもかなり大変なので。。。
490 :
デフォルトの名無しさん :02/09/11 05:31
gcc で directx 8.1 アプリケーション書いている方は いらっしゃいますか? directx 8.0 はあるんですが directx 8.1 library(.a) が 見つからないんですが…。まだ誰も porting してないのかな?
>>491 よろしければ方法を教えていただけませんか?
Microsoft の directx8.1 ライブラリ (.lib) から
gcc のライブラリ形式 (.a) に変換する方法なのですが…。
reimp で変換してみたのですがうまく動かなくて…。
問題は D3DX8 なんだよね
自分で作れるものなのですか? >> 494
>>495 目的のDLLと呼び出し規約、名前、序数を一致させた
何もしないダミーのdllを作っれば、互換のライブラリが作れる
>>492 最近の binutils 使うと、そのままリンクできると思うが。
>>496 呼び出し規則以外のものはどうしたらよいでしょうか?
クラス定数群とか C++ オブジェクトとか。
>>497 gcc3.2ですがリンクできないみたいなのですが…
すみません、Microsoft のライブラリ形式がそのままリンクできるのは
どちらの binutils か教えていただけませんか?
g++ -mwindows -Wall -O3 -s -o test.exe test.cpp d3dx8d
.lib d3d8.lib d3dxof.lib ddraw.lib dxguid.lib
そのままリンクとは、こんなことができるということですよね…?
>>498 -mms-bitfield は?
他には、C で書いたのを C++ でラップするとか。
>>498 C++オブジェクトって?
エキスポートされているのは普通のstdcallのAPIだと思うが。
>>500 d3dx8.lib じゃないの?
これは、インポートライブラリじゃないし。
>>498 -mms-bitfields デスタ
どうも早くからレスに感謝いたします。
>>499 gcc3.2@mingw では invalid option `ms-bitfield' です。
MinGW ではまだサポート外みたいです…。
cygwin などではそのままリンクできるのですか?
もしそうならかなりの優れもの…。すぐにでも乗り換えたいです。
>>500 http://www.bloodshed.net/dev/packages/index.html こちらの DirectX8 library を参考にしているのですが
Microsoft配布の.libの中をみてみるとMS-C++の C++ メソッドっぽい
シンボルが大量にあるんですよね。これはたぶん lib 側に C++ メソッドも
含まれているわけで。これもなんとか変換したい…というのは
無理っぽいでしょうか。
他にも COM interface やら CLSID,IID 定義等が山盛りで…。
私ごときではかなり手に負えないです。
DLL 側から追いかけて最小限の API 互換にすべきなのかな…。
見た感じ 8.0 から変更になっている COM は D3DMesh インタフェースと
DirectPlay 関係のいくつかが削られているだけのようなので
8.1 に部分的には対応したのですが…うーん。
>>502 ありがとうございます。
-mms-bitfields になおしてみたのですが…
lib は読めないみたいです。残念…。
>>504 試さずに書きつづけるのも気が引けるけど、
DirectX って、C からでも使えるんじゃなかったっけ?
C++ だと ABI の問題があるんで、一度 C から試してはどうでしょう。
で、リンクできたら、それを使って C++ 向けのラッパクラスを書くと。
>>498 % objdump -H
(中略)
objdump: supported targets: pe-i386 pei-i386 elf32-i386 elf32-little elf32-big srec symbolsrec tekhex binary ihex
objdump: supported architectures: i386 x86_64 i8086 x86_64:intel i386:intel
Report bugs to
[email protected] .
binutils は cygwin でインストールしたヤツです。
>>505 ありがとうございます。試行錯誤していて遅くなりました。
COMインタフェースの部分は手順に従って…何とかリンクできるようになりました。
でも、C から使える部分でも Microsoft のスタティックライブラリに
コードが入っているものがあるので、これがリンクできないので
制限されてしまいます。ライブラリのコードが DLL になっているか
ソースが公開されてれば、エクスポートできるんですが…。戦略なのかも。
いまのところ DX8.1 SDK D3D サンプルの簡単なもの Lighting と Text3D は
コンパイルできるんですが…。スタティックリンクできないので複雑なものは
なんだかダメっぽいです…。
>>506 あ、どうもありがとうございます。
試してみます。
509 :
デフォルトの名無しさん :02/09/13 00:21
俺の彼女もGPLで外を歩いてます
ヤったら次の人へ紹介しなきゃいけないんですか?
いえ他の人に求められた場合に, そうできる状況にあれば大丈夫です.
自分の彼女はBSDライセンスです。
>>512 自分の彼女はシェアード・ソースです。つまり見るだけです。
MinGWのShift JISの対応のさせ方教えてください。
(´-`).。oO (509の彼女をオープンソースで開発したい・・・)
(´-`).。oO (病気をコミットするやついそうでやだなあ・・・)
別のブランチを孕ませる危険があるぞ。
520 :
デフォルトの名無しさん :02/09/16 03:10
下のソースをコンパイルすると > tes.cpp:6: warning: `typename myit<Cont>::value_type' is implicitly a typename > tes.cpp:6: warning: implicit typename is deprecated, please see the > documentation for details て文句つけてくるんですがなにがいけないの?implicit typename ってなに? cygwin + gcc 3.2 20020818 (prerelease) です。 #include <iterator> template<class Cont> struct myit : public std::iterator<std::input_iterator_tag, const typename Cont::value_type> { value_type v; myit() {}; }; template<class T> struct mycont { typedef T value_type; mycont() {} }; myit<mycont<int> > c;
>>520 myit クラスのメンバ変数 v の型が特定できんのでは?
//ソースはこっちのほうが適切だったかも template<class T> struct vt { typedef T value_type; }; template<class Cont> struct myit : public vt<typename Cont::value_type> { value_type v; };
>>521 見落としました。ごめんなさい。で、さらにごめんなさい、どういうことですか?
>>523 myit<mycont<int> >::value_type が定義されてない。
>>524 でも下はOKなんですよ。
struct int_type {
typedef int value_type;
};
struct myit : public int_type {
value_type v;
};
template<class T> struct any_type { typedef T value_type; }; //これはOKで struct myit : public any_type<int> { value_type v; }; //こっちはだめ template<class T> struct myit2 : public any_type<T> { value_type v; };
リターンアドレスらしきところを書き換えて マザーボードのビープ音鳴らすコード書いて、そこに飛ばしても 実行されない。もしかして、どこまで行ってもリターンアドレスがないのか? とにかく、まだバッファーオーバーフローが成功できない。
お騒がせしました、落ち着きました。 部屋の空気を入れ替えたら難なくできました。
makefileでシェルスクリプトのまねごとをしたら駄目ですか? 板違いですがすいません
>>526 any_type<T>::value_type が型かどうかわからないから。
ひょっとしたら、後で
template<> class any_type<int> {
int value_type;
};
とか特殊化をされるかもしれないし。
>>526 T が未確定の時点では識別子 value_type の存在を認識できないので、value_type が型名であることを明示するために
typename value_type v;
とか書かないといけないんじゃないすか?
> typename value_type v; こういう書き方はない。 typename T::value_type v; のように限定子が必要。ただ今回の場合は、 typename any_type<T>::value_type v; だけどね。
そうか特殊化があったか!サンクス。 //これでOK template<class T> struct myit2 : public any_type<T> { typename any_type<T>::value_type v; };
ちょっとスレ違いぎみだけど、じぶんでイテレータ作るときは たとえば value_type &operator*(); じゃなく T &operator*(); と宣言するのが正しいのかな?
―?\ソЫ?\?\\?\噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭?\?\xx?\\\?\
gcc 3.2 (MinGW 2.0.0-3) で、 -arch=i686 としたバイナリは、AMD のどの CPU から動くんでしょうか?
540 :
デフォルトの名無しさん :02/09/23 05:23
>>539 DURON,ATHLONから間違いなく動く。手元で確認。
K6-2,3もたぶん大丈夫だったはず。手元に無いので味覚人。
>>540 情報サンクスコです。
ところで、もうすぐ K6-2 を触れそうなんですが、
どんなソースを使って確認したほうが良いんでしょうか?
今動いたとしても、変更後には当分確認できそうに無いので。
# -march=i686 ダッタ
つか、i686でも486以降なら動くんでない? 例外を捕まえてコードエミュレートするでしょ
>>540 CMOV インストラクションとかも実装されてたっけ?
>>541 そりゃ
1. gcc のソースを読んで、使っているインストラクションを確認。
2. AMD からプロセッサの仕様書を入手して、実装されている命令を確認。
だろう。PentiumPro で新規追加された命令に関しては Intel が Web で配ってる
Intel Architecture Software Developer's Manual Vol.1 に書いてあるから、それ
を参考に。
>>542-543 やっぱり、仕様書を突き合わせて確認するしかないですかね……
薄々そう思って落としていたので、読みに逝ってきます。
アリガトン。
545 :
デフォルトの名無しさん :02/09/24 12:49
>>545 K6-III でも i586 にして試してみて、と言われてるようなので、
とりあえずは i586 で逝っときます。
ありがとうございました。
547 :
デフォルトの名無しさん :02/09/29 23:51
アセンブラはCより速いって(最適化しやすい)聞きますが gccはcc1がアセンブラを出力してasでコンパイルしますよね、 ということはgccにかぎってはインラインアセンブラを使っても 最適化には意味がないんでしょうか?
>>547 ??よく意味がわからんが・・・・・・
インラインアセンブルしたらそのままの形で出力されるだろ。
当然最適化したかったら手で行わないと。
>>547 Cやasmのソースコードがどうバイナリに変換されて実行されるかを勉強しませう。
>547 最適化しやすい、というより、自由度が高い(プロテクトやセグメント、フラット どうこうが絡んでいたらそれほど実感はできんが) Cでは使えない機能を使う事が出来る。(CPU固有の命令やレジスタとかとか) 自由度が高いから、最適化しようと思えばCよりも最適化できる。 しかし、下手な最適化はむしろ逆効果。最近のはかなりややこしい。 最近のCPUはどれに合わせて最適化すれば良いのかさえ不明。 速度を稼ぐ意味もそれほど有るとも思えない。 自分が欲しい機能は既に誰かがライブラリ化しているかもしれない。 というわけであんまり触る必要はないだろう。それなりには楽しめるが。 勿論、CやC++やdel辺りがどのように実現されているかを学びたいのな らその必要はあるかもしれん。
MinGW のメーリングリストがすごい事になってたよ……
552 :
デフォルトの名無しさん :02/10/01 20:59
>>551 なにがどうすごいのか50文字ジャストでまとめろ
本当にすごかったね……
Earnie Boyd wrote: > > Introduction > ============ > You receive this message because you are subscribed to the MinGW A time bomb waiting in the crontab for the first day of the month. It should be fixed now. Earnie.
>>555 > ./example.c: 4: magick/api.h ???????????????????
> というメッセージが出てコンパイルできません。
その前に
bash: Magick-config: command not found
のようなメッセージはないですか?
>>556 出ていません。メッセージは一行だけです。
>>557 入力コマンドは、
$ gcc `Magick-config --cflags --cppflags --ldflags --libs` example.c
で合ってますよね。
$ Magick-config --cflags
の結果はどうなります?
すいません gcc example.c でコンパイルしていました。 gcc `Magick-config --cflags --cppflags --ldflags --libs` example.c を実行すると、エラーが山のように出てきます。 Magick-config --cflags の結果は、 -g -02 -m486 -fno-strength-reduce となります。
>>559 > gcc `Magick-config --cflags --cppflags --ldflags --libs` example.c
> を実行すると、エラーが山のように出てきます。
そのエラーを解析して、ソースを書き直していくしかないですね。
> Magick-config --cflags
すまんです。
$ Magick-config --cppflags
の方でした。そっちだと、ヘッダのインクルードパスを指定してくれます。
# エラーとは関係ないと思いますが ;-)
すいません、 ライブラリもサンプルプログラムも間違っているはずは ないと思うんですが……
>>561 どうやらネタにマジレスしていたらしい。
欝山車能
ぜんぜんネタじゃないんですが。 ネタだと思われたなら、申し訳ありません。
564 :
デフォルトの名無しさん :02/10/04 03:22
エラーメッセージが????になって、原因が分からない、ということ? それならLANG=C gccとすれば英語でエラーが出るから、その結果を見るべし。
>>563 > ぜんぜんネタじゃないんですが。
sage質問だったし、エラーメッセージもないし、
とImageMagicおよびGCCのバージョンも分からんし、
つーことでネタ判定してしまったが、そーじゃないのね。
これ以降すれ違いスマソ。エラーメッセージが
example.c:27: structure has no member named `message'
なら、ImageMagicのバージョンに問題有り。
とりあえず、ソース内の `message' を `reason' に
`qualifier' を `description' に変更してみてね。
詳細は、/usr/X11R6/include/X11/magick/image.h
を見てくれ。エラーメッセージが違えば、晒せ。
>>565 ありがとうございました。バージョンが少し小さかったようです。
Vine2.5についてたのをそのまま使ってたんですが、このさいアップデートしようと
思います。
で、もう一つだけ質問なんですが、この手の画像作成ライブラリで一般的な
のは他にありますか?
GD
568 :
デフォルトの名無しさん :02/10/12 21:18
gccのソースを読もうと思ったのですが、どこにソースが あるんでしょうか?ディレクトリのトップは主にライブラリ用の ディレクトリしかないのでコンパイラ自身はgccだろうという ことでgcc/下を見てみると、以下のようになっていました。 $ cd gcc $ find . -type d -maxdepth 1 | xargs du -sH 135MB . 30MB ./ada 41kB ./ch 22MB ./config 5.1MB ./cp 3.3MB ./doc 5.6MB ./f 1.5MB ./fixinc 66kB ./ginclude 345kB ./intl 3.5MB ./java 713kB ./objc 5.5MB ./po 37MB ./testsuite 201kB ./treelang これのどのどこにあるのでしょうか? testsuiteはテスト用プログラムだから関係なし。 adaは自身のコンパイラをadaで書かれているんでしょうか? adb,adsというサフィックスのソースがずらり。 poはコンパイラの多言語版メッセージがずらり。 configはターゲットのマシン,OSに応じた処理をする部分と思われます。 ってことはCはどこで処理されてるの? gccって謎です。
569 :
デフォルトの名無しさん :02/10/12 21:22
>>568 gccよりあなたの方が謎です。節穴系ですか?
gcc/*.[hc]です。
大まかに言って、
c-*.[ch]がC固有のもの。
他は他言語と共通のもの。
ありがとうございます。 おおぼけ、でした。 c-がCのものだとするとcpp*はプリプロセッサかな。 共通のものと各言語のものが綺麗に分かれてると 思ったのですが、そうでもないんですね… これを読むのは一苦労ですがメンテしてる人は さらに凄いというか、なんというか gcc/gcc/*.{[chy],def}からちょっとづつ読んで逝きたいです。 どうもでした
漫然と読むのは辛いと思うから、目的を決めた方が良いよ。
>>570 >>571 が言うように、ただ漠然と読むのは辛い。
何かプログラミングしているときに、「この標準関数はどう実装しているんだろう」って感じで
少しずつ把握しているソースを増やしていくのが良いと思われ。
>>572 それって、ライブラリのソース見た方が...。
>>573 glibcでなくてgccね…勘違いしてますた。逝ってきます…(´・ω・`)ショボーン
>>444 既に一ヶ月以上経過していて今更ではありますが・・・。
やっとですが、解決しました。 本当に有難う御座いました。
"-lwinmm" って、何のスイッチだろう・・・とかって調べていて、
-l を度忘れしておりました。
確かに、付けないとリンク出来る訳ないですよね。
576 :
デフォルトの名無しさん :02/10/15 19:12
>>539 K6(/2/3)では大抵動かないですです。
P55C互換cpuなので、P6命令(CMOVとか)で止まるのだと推測してます。
歙渺折
VB saiko-!
580 :
デフォルトの名無しさん :02/10/28 02:44
石を投げればCハカーに当たってしまうUNIX業界にあって、g++の、特に3系列の あの複雑怪奇なstandard C++への準拠度が素晴らしく素晴らしいのはどういった 理由からなんでしょう?
>>580 そりゃ、ユーザー数も開発者数も圧倒的に多いからだろ。
それぐらいしかアドバンテージがないから
C++を使って何千億と稼ぎ出す企業の使うコンパイラは なぜあんなにもいい加減なのでしょう?
その程度で充分なことを知っているから
>>583 標準に準拠するよりも、最適化に掛けるコストを大きくした方がよく売れる
からじゃない?
>>581 開発者数なんて少ないです。
それにユーザー数なんてVC++の方が
何倍もいます。
>>586 まあそうだろうね。gccは一種の桃源郷のようなものかも。
>>586 同じく、あまり多くなさそうだというのが僕の印象。
ユーザ数も、gccなら組み込み関係でもベースにされてたりするけど、
g++はそうでもなさそうだし。
>>583 標準に準拠する能力が無いから
最適化だのは準拠率が改善しない弱点を
ユーザを洗脳して逸らしているだけ
>>583 必ずしもC++の仕様に準拠することがベストではないから。
市場を独占してしまえばソースの可搬性なんて意味のないものだし。
>>586 ユーザー数はさすがにgccでしょう。
カーネル再コンパイルするだけで使うわけだから。
あ、でもg++だとどうなのかな。
VC++が糞な理由を語るスレはここでつか?
>>592 糞というよりなんとかしてもらいたいというところでは?
VC++がなきゃ飯食えない人も多いんだし、好きだ嫌いだなんて
いってる場合ではないでしょ。
何のための標準よ? 標準テンプレートライブラリもコンパイルできない糞VCのことを 言ってるならベストどうのよりもまずコンパイルが通るようにしろよ
gccマンセー派のいつもの手ですな
誇れるのは最適化しかないの?VC厨
MSの開発環境は"美しい設計が生産性と再利用性をほげほげ"なんていう話とは対極の ところにあるからなぁ。MFCとか。 それを信奉する者なら、例えばSTLのアルゴリズムがコンパイラのせいでまともにつか えなくとも関係ないだろうね。 #俺? 断固VC粉砕熱望。
gccで-Sオプションをつけてコンパイルしたら、アセンブリ出力されます が、このリスト中に元のプログラムの行をコメントとして付け加えること はできますでしょうか?
VCだとできるのに・・・糞ですね
603 :
デフォルトの名無しさん :02/10/28 03:19
燃料age
つまらんsage
最適化されてどんな形になるかわからない 元のソースを付け加えるのに何の意味があるのか
>>605 最適化されたアセンブリ出力を見て、元のソースと見比べて
秘かに自己満足のほほえみを浮かべたい。
607 :
デフォルトの名無しさん :02/10/28 03:36
ヘルプにコマンドラインオプションがあるからそれみてね それからスレ違いだよ
>>598 .stabnの3番目にソースの行番号が入ってるんで、突き合わせて想像汁。
611 :
デフォルトの名無しさん :02/10/28 12:43
>>583 だって、仕様が変ったら、
大勢いる質の低いプログラマがついてこられないじゃない。
g++でも「g++-2.95だと〜なのに〜g++-3だと〜」とあちこちで質問が出ている。
// まあ、仕様が変らない部分で遅れているところも多いけど。
>>585 最適化は優れていませんし、それを売りにもしてないです。
新しいのを出すにあたって、注意しているのは、
・プログラマたちを怒らせないこと、(仕様変更!)
・アップグレードしたくなるような機能を入れること
じゃあないですかね?
VC++をめぐる不満が炸裂してMSのプログラマがストライキ起こさないかな。 そうでもしない限り、ANSI対応する方向に向かうとは思えないんだけど・・・ それとももしかしてサードパーティーとの差別化戦略で社内じゃ別の 素敵なコンパイラを使ってるとか??何にしてももう少しなんとかなって もらわないと困るべよ。
この板見ても「実装→仕様」と思っているプログラマが多いみたいだから、 ANSI対応することによって、未定義部分の動作が変ったら、大騒ぎだべさ。 「コンパイルできなくなった〜! バグだ〜!」って騒ぎだすべさ。
ほんとは未定義の部分は使ってはいけないんだけどねえ。 言語仕様をくまなく見てプログラムってるヤシは少ないだろうし。
未定義についてWarningだせってんだよ
ゲーツェーツェーって言ってる人たちがいる。
おフランス風に「ジェセセ」と読んでます
ジョージチャーリーチャーリー!
620 :
デフォルトの名無しさん :02/10/29 14:12
げーつぇーつぇー採用age。
C#対応age
622 :
デフォルトの名無しさん :02/10/29 14:29
maji?
マジかよ・・・ ついにGNUもプライドを捨てたのか・・・
(*´Д`)結婚? ついにワタスにも春がcome meなのね。
痛くしないでね・・
プライドがあるからこそC#対応。 GNUが極端なアンチMSになってはいけない。
source kibon nu
>>621 ,626
onajiku hageshiku kibon nu ただgcjを使っているという話をあまり聞かないし どうなんでしょう?
さっき本家とGCCのMLアーカイブ見てみたがそれらしい話は載ってないけど<c#対応
C++の対応がイイって聞くけど、わざわざ 2.95.x から乗り換える程のモン?
>>630 libstdc++があたらしくなっていて、ヘッダファイル名の .h がきちんととれたり
したのがイイね。あとは XXX_iterator も完備された。std:: を書かないとコンパイル
エラーになるようになった。typename キーワードを書くべきところでを書かないと
警告されるようになった。このあたりか?
最後のは慣れない人には(俺とか)わかりにくいのでウレスイかどうかは微妙。
>>631 素早いレス、さんくす。しょっぱい STL にウンザリしてたところだから、
インストールしてみるよ。
>>631 ホンワカと前提になってしまって通じているが、3.2の話ね。
current(3.3?)もかなり安定してるみたいだから、そっちを 使ってみてもいいかもしれない。
635 :
デフォルトの名無しさん :02/10/29 17:17
>>634 3.2との、目に付きやすい差異があればキボンヌ
>>631 ウム。
standard compliant && clean なコードを書きたい人向けのlintとしてはかなり使えると思う。
cygwinで gcc version 3.2 20020818 (prerelease) なんだけど下のコードを g++ -c -O2 すると、g++が落ちて「レポートしる!」って出るんだけど、どうだろう。 #include <vector> using namespace std; typedef int TT;//任意 void make_LR_item() { struct inner { static int go_to() { struct innerinner { static int byvec() { vector<vector<TT>*> succ; vector<TT>::iterator i, e; for (int i=0; i<succ.size(); ++i) { if (succ[i] == 0) continue; } return 0; } }; return innerinner::byvec(); } }; inner::go_to(); return ; }
>>638 gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
では通りますYO.
ちなみに書き込むときにインデントいれるのどうやってるの?
上のって全角スペースじゃないよねえ?
あ、ごめん、-O2 か。落ちます。
641 :
デフォルトの名無しさん :02/10/29 18:10
642 :
デフォルトの名無しさん :02/10/29 18:32
>>642 「がいしゅつ」って言葉を使うのがいやだったので…
644 :
デフォルトの名無しさん :02/10/29 18:37
ハァ&*>?
>>643 「既出」という言葉を知らんのかバーカ
まさか”がいしゅつ”を知らん人がいるのか・・・? いや、知ってても全くもってエラくもなんともないんだが。
馬鹿のすくつ。
649 :
デフォルトの名無しさん :02/10/29 19:04
「巣窟」という言葉を知らんのかバーカ
巣窟(そうくつ)
関数呼び出し時に引数がなぜかintになるんですけど どうしたらいいですか?
652 :
デフォルトの名無しさん :02/10/29 20:33
もっと詳しく書け。できればコード貼れ。 って、C言語か?
大方 func(int i){〜} を func(0.1); の様にしてんだろ。
外部リンクにある関数なのに宣言をしてない/ヘッダをインクルードしてないとか -Wall でコンパイルし直せ
俺は「がいしゅつ」を使いたくなかったら既出を使えっていってんだよ。 ということで馬鹿は日本語を知らない643。 スレ違いスマソ。
自分の記述不足で意味が通じなかったのを
相手のせいにするのはプログラマーとしてまちがっとる!
エラーをコンパイラやOS、他人のせいにするタイプだろ
>>646 スレチガイニテサゲ。
657 :
デフォルトの名無しさん :02/11/01 14:45
658 :
デフォルトの名無しさん :02/11/01 19:07
g++2.95から3.2にして大量のwarningに苦しんでるたちなんですが、 以下のコードが3.2では通りません。 std::vector<var*> container; std::vector<var*>::pointer func(void) { return container.begin(); } vectorのpointerとiteratorは同じように扱えると思ってたのが間違いなんでしょうか。
>>658 iteratorはデフォルトのアロケータを持っているから、ポインタに変換すると
エラーが出るのでは?
>>658 うん間違い。先頭要素をさすポインタがほしければ、
&container[0] をかえす。
>>660 そしたら std::vector<int*>::pointerとint**の間には違いがないと見て
いいのでしょうか?
別物ですか。どうもです。 両方ともstl_vector.hの中で typedef value_type* pointer; typedef value_type* iterator; と定義されていたので同じように使えると思ってました。 にもかかわらず stl::vector<var*>::pointer i; stl::vector<const var*>::const_pointer j; j=i; // これはOK stl::vector<var*>::iterator i; stl::vector<const var*>::const_iterator j; j=i; // これはNG というのが気になったもので。 # 2.95ではどちらも通るんですよね。
>>662 どこのファイル見てる?
/usr/include/c++/3.2/bits/
の下のファイル見てる?
>>663 違うところ(usr/include/g++/)見てました。3.2だとパスが違うんですね・・・。
確かに/usr/include/c++/3.2/bits/stl_vector.hではiteratorは
アロケータ込みで定義されてます。ありがとうございました。お恥ずかしい限り。
>>661 厳密に言えば std::vector<T>::pointer は T* でなくても
スマートポインタのようなものでも OK。
つまり、operator* と operator-> が定義されていて T* と同じように
振る舞えばよいということだね。
std::vector<>::pointerって標準?初めて見るけど…。
『Generic Programming -- STLによる汎用プログラミング』という 本にはそう書いてあったんだが、規格書を見たらそういう記述は 見あたらなかった。標準ではないかもしれんね。
668 :
デフォルトの名無しさん :02/11/04 07:01
すいません。最近redhat7.3でgccをインストールしたのですが gtkを使おうと思って#include <gtk/gtk.h> と書いたのですが、gtk/gtk.h はない、というメッセージが出てエラーになります。 で、#include </gtk/gtk.h>とすると一応gtkディレクトリにあるgtk.hを 読みにいくのですが、gtk.h内のinclude文も #include <gtk/~~.h> と書かれて いるため全てのincludeがエラーになります。(でも#include <stdio.h>は通り ます。相対パスを指定するとエラーになります) gccをバージョンアップしたりしましたが同じ結果でした。 どうなっているのでしょうか?設定がよく分からないので助けてください。
-I フルパス
$ gtk-config --cflags
>>669 >>670 ありがとうございます。指定してみたらできました。
しかし始めからgtkやglibのインストールがおかしかったみたいで
、煮詰まって来て疲れました。もう一度再インストールしてみます。
VB は糞!
>>673 よく読んでないんだけど
Doxygenみたいなもんでしょ?
違うの?
ぜんぜんちがうよん
だったら説明しる
>>676 説明も何も、概要ちゃんと書いてるべさ。あ、もしかして……
>>676 > The purpose of the GCC-XML extension is to generate an XML description
> of a C++ program from GCC's internal representation
C++ のソースコードを parse して、gcc の内部表現に対応する XML コードを
生成すると書いてあるが。
ソースコードのXML表現だったら興味あるかも。 見た目は普通のソースだけど裏ではXMLになってるとか。
680 :
デフォルトの名無しさん :02/11/12 10:52
ソースコードにリンク貼ってくれるやつか
>>679 RTL木だと思う。
何に使うのか謎だが。
682 :
デフォルトの名無しさん :02/11/12 13:42
gccでコンパイルした実行モジュールから、シンボル(ラベル)とアドレスの対応表を、 コードを実行せずに抽出する方法orツールはありますか? アドレスは適当な ベースからのオフセットで可。
objdump? nm?
684 :
デフォルトの名無しさん :02/11/12 13:54
>>619 古レスすまんが、
「ゴルフ・チャーリー・チャーリー」ではないのか?
>>683 nmでオプションを煮詰めればいけそうです。クロスでやってるんで、
nmがあるか心配でしたが、binutilsが一通りあったのでとりあえずOK。
thx!
gccでリンク時or後に、使われなかったデータ/関数を抽出することできますか? ひとつの.oが多くの機能をもつライブラリをstaticにリンクした時に、使わな いものまで入ってしまうので、これをみつけたいのです。 本当は削除したいのですが、それは手動でなんとか....
688 :
デフォルトの名無しさん :02/11/13 08:20
なぜvtableが、デフォルトで書き込み可能セクションに出ますか?
>>687 最適化 (-O4以上) で消えないか?
staticな関数でないと駄目だな。ごめんよ。
>>687 関数単位に分割してライブラリにするってのが常套手段、っつーかそのための
ライブラリだが、それはしたくないわけ?
>>691 うん、それが正しい。が、今あるものを分割するのが、大変なので、自動化で
きる方法ご存じないかしら、とおもって。
defineとコンフィギュレータ(構成変更のツールなの)が曲者。が、ここは、分
割を自動化する方法を考えてみますかね。ありがとう。
man csplit
694 :
-W,l名無し :02/11/14 00:09
>>692 ar xして*.aも*.oにして、
nmしてT,U,D,Cをpickupして、
U→T,C→Dという連鎖で依存関係のgraphを作成して、(nodeは.o)
自前の*.oから到達可能なnodeだけpick upすればよい。
GTL(Graph Template Library)その他グラフ系ツールを使えば
あっと言う間じゃないかな。
695 :
デフォルトの名無しさん :02/11/15 13:37
>>688 vtableを変更するか、意図しない結果か、何かしたいか、のどれかでしょう。
組み込みのCPUを、PCからシリアルを通じてgdbでデバックしたい場合は、 gdbと通信するモニタープログラムがターゲット上に必要になるかと思いますが、 どうやって対応させるのでしょうか。なにか参考になるHPとかあったら教えて欲しいです。
>>696 ・eCosを動かす。
・infoにstubの仕様が書いてあるので、がんばって作る。
>>696 ターゲットは何?
物によっては、メーカーのモニタを使えるぞ。
>>697 ,698
resありがとうございます。
本日からちょっとやってみます。eCosは自分の力では無理っぽいです。
>>699 業務関係上具体的にはお話できません。パチンコ向けのわけのわからんCPUですが。
オリジナルのモニタープログラムにデバック機能も組み込みたかったので。
702 :
デフォルトの名無しさん :02/11/19 19:58
gcc3.2でC++プログラム書いてるんだけど、 キャッチされない例外があると、即segmentation fault出てcore dumpするの 何とかなら無いすかね? try { ... } catch (*) { // ワイルドカード(藁 } とか出来れば、それでもいいけど。 デバッグ超大変なんですけど…
入門書に書いてあるはずだが…
>>702 おまえ、それはバグを潜在化させるだけじゃないかと、
本当だ、書いてあった。 お前らありがとうございました… しかしsegmentation faultは勘弁して欲しい。 javaみたいにどこからどんな例外が投げられて、 そしてキャッチされませんでした、とか言ってくれるのが ベストだろうけど。
unexceptedを設定知る
>>700 1. モニタにgdb-stub の機能をいれる
2. gdbのほうで、モニタのコマンドにあわせる
の二つの方法がありまする。
1はinfoみればあったはず。2はgdbのソースの remote-xxx.c をみるよろし。
モニタを自分で触れるターゲットなら1のほうがおすすめ。
709 :
デフォルトの名無しさん :02/11/20 13:24
グッシッシ3.2.1リリースあげ
710 :
デフォルトの名無しさん :02/11/20 15:36
711 :
デフォルトの名無しさん :02/11/22 02:04
>>706 segmentation faultが来るなら、例外をキャッチし損ねているんじゃ
なくて、単にメモリ壊したりNULL pointer dereferenceしたりしているだけ。
terminate()ならSIGSEGVじゃなくSIGABRTが来ないとおかしい。
712 :
デフォルトの名無しさん :02/11/22 21:18
質問です。このスレでいいのかわからないですが、どこに書いたらいいのかわからないので・・・。 makeを実行したとき、コンパイルが正常に終了したなら、できたファイルを実行して、 エラーがあったときは実行しないようにしたいのですが、 そういう時はmakefileになんて書けばいいんでしょうか? 教えてください。
コンパイル結果の実行ファイルに依存するダミーのターゲットの処理として実行すればいいじゃん。
ただ./a.outを書いただけでできました。 しかもcoreを吐いた時は勝手に削除してくれます。
715 :
デフォルトの名無しさん :02/11/23 03:07
gcc で、VisualCでMFCやDirectXを使って作成したプログラムをそのままコンパイルしたりできないでしょうか。 (最適化機能付のプロフェッショナル版が高くて買えないので) C++での内部シンボル名の規則が違ったり、いろいろ不具合あって出来ないとかでしたっけ?
>>715 昔DirectXのサンプルをBolandC++でもコンパイル出来るようにしたことがあったが・・・。
#pragmaあたりでwarningでまくったりしてかなり苦労したけどな。
Borandでもそのままじゃームリだったので、gccじゃなおさらじゃない?
VC++とBCBとgccはベースは同じC++ですが全くの別物です。 特にGUIアプリに互換性は無いに等しいです。 これはC++の宿命です。C++がクソなのです。
718 :
デフォルトの名無しさん :02/11/23 06:48
windowsで最新のGCC使いたいんですが、 cygwin入れるしか無いでしょうか?
>>720 いくつかのユーティリティが付加されている。そのため、サイズがかなり大きい。
多分どちらでもいいと思うけど、Bitwalkのリビルド版を使っている人は多い
と思う。
>>721 ありがとうございます。
インストールしました。
で、度々すいません、
windowsアプリ(WinMainを使う)をコンパイルしたいんですが、
試しに七行スレのラスタスクロールをコンパイルすると、
gcc -O2 raster.cpp -lgdi32
c:\windows\TEMP/ccaHn6fb.o(.eh_frame+0x11):raster.cpp: undefined reference to `__
gxx_personality_v0
というリンカのエラーが出るんですが、
gccの引数に何を足せば良いんでしょうか?
(最初BitBltでもエラーになったが-lgdi32を追加したので出なくなった)
>>722 フルパスでいれたらどうなりますか?
-l"c:\windows\gdi32" とか。
他には -mwindows を付けるとか。
>>723 いや、gdi32の方は-lgdi32で解決済みだと思います。
多分
>>722 のエラーはスタートアップだと思うんですが
参考までに-lgdi32を省いたときのエラー出力です。
>gcc -O2 rast0.cpp
c:\windows\TEMP/ccaHn6fb.o(.text+0x198):raster.cpp: undefined reference to `BitBl
t@36'
c:\windows\TEMP/ccaHn6fb.o(.eh_frame+0x11):raster.cpp: undefined reference to `__
gxx_personality_v0'
多分'__ gxx_personality_v0'の在処を なんとかすればいいのはわかるんですが、何なんでしょうねこれ。 ↓gccに掛けてるraster.cppのソースです。 #include <windows.h> #include <math.h> int a=GetSystemMetrics(0),b=GetSystemMetrics(1),n,f,o=SRCCOPY,s;MSG m;HINSTANCE i;main(){ HWND g;HDC d; i=GetModuleHandle(0); WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,"R"}; RegisterClass(&w);g=CreateWindow("R",0,9<<28,0,0,a,b,0,0,i,0);d=GetDC( g);while(IsWindow(g)){if(PeekMessage(&m,0,0,0,1))DispatchMessage(&m);else{for(n =0;n<b;n++)BitBlt(d, s=sin((f+n+1)/40.0)*60,n,a,1,d,s,n,o);f++;}}return 0;}
>>726 これで通りましたよ。
g++.exe "C:\MinGW\Learn\raster.cpp" -o "C:\MinGW\Learn\raster.exe" -Wall -mwindows -O3 -s -I"C:\MinGW\include" -I"C:\MinGW\include\c++" -I"C:\MinGW\include" -L"C:\MinGW\lib"
>>724 -mwindowsを付けても変わりませんでした。
えっと、C言語に直してコンパイルすると通りました。 c++のライブラリの問題の様です。困った・・ >gcc -O2 rast0.c -lgdi32 a ↓直したソース #include <windows.h> #include <math.h> int a,b,n,f,o=SRCCOPY,s;MSG m;HINSTANCE i; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow) { /*int main(){*/ HWND g;HDC d; WNDCLASS w={67,0,0,0,i,0,0,0,0,"R"}; a=GetSystemMetrics(0); b=GetSystemMetrics(1); i=GetModuleHandle(0); w.lpfnWndProc = DefWindowProc; RegisterClass(&w);g=CreateWindow("R",0,9<<28,0,0,a,b,0,0,i,0);d=GetDC( g);while(IsWindow(g)){if(PeekMessage(&m,0,0,0,1))DispatchMessage(&m);else{for(n =0;n<b;n++)BitBlt(d, s=sin((f+n+1)/40.0)*60,n,a,1,d,s,n,o);f++;}}return 0;}
>>727 あ、見落としていました。
g++ですか。
>>729 c++でもそのまま通りますが・・・・・
皆様、ありがとうございました。 無事実行ファイルが出来あがりました。
733 :
デフォルトの名無しさん :02/11/23 15:48
gccのインラインアセンブラで、 __asm__のオペランド記述の後ろに"=r"とか,"r"(tmp) みたいなのが付いてる時がありますが、これは何なんでしょうか? r以外にもSとかありました。 ↓みたいなやつです。 __asm__ volatile ("call %0\n" :"=r" (tmp) ); __asm__ volatile ("movl %%eax,%0\n" : :"r" (tmp) );
あ、いいです。忘れてください。
735 :
デフォルトの名無しさん :02/11/23 23:15
>717 そうか? MFC みたいなライブラリや、Unicode, SJIS, それと #pragma が絡む と話は別だが Win32 API だけ使う分には gcc でも問題ないぞ。特に gcc だと bcc と違って MS の提供するスタティックリンクライブラリもリンクできるし。 >730 gcc はファイルの拡張子によってコンパイル、リンク時の動作が変わるんだが、 標準だと *.cpp は C++ だと認識してくれない。gcc で C++ のソースコードを 書くときには、 1. ソースの拡張子を *.cc など、gcc が C++ ソースと認識するものに変更。 2. gcc ではなく g++ を使う。 3. gcc にコマンドラインオプション -x c++ を指定する のどれかで対処して下さい。個人的には 2 を使うことが多いです。
736 :
デフォルトの名無しさん :02/11/25 09:15
cygwinのgccの環境は駄目だ。*nixからの移植モノならいいのかもな。 mingwマンセー、と言っておく。 ところで、インラインアセンブラをAT&Tやめてインテル形式で記述できる パッチ無い?NASMとか使いたいんだけど。
しつもーん gccの拡張記述で、「戻らない関数」をコンパイラに教えて コードを最適化する、関数修飾子ってなかったっけ。 今日別のプログラマと話してて、どうしても思い出せなかったっす。 知ってる人教えて〜
__attribute__ ((__noreturn__))
>>738 お、そんなのもあるのか。さんきゅう
でも、volatile と同様に、
hogehoge void quit()
みたいに関数の「前」につけるのなかったっけ・・・?
stdlib.h を見る限り↓ではないけど・・? extern void exit (int __status) __THROW __attribute__ ((__noreturn__));
無いのか・・・X68000のGCCで見た記憶あったんだけど、
夢だったのかも。ありがと〜
>>740 なるほど、exit(3)の宣言を見ればよかったのか。
参考になりまつ。
742 :
デフォルトの名無しさん :02/11/25 13:17
g++(3.2) + gdb で、例外が投げられたらbreakするにはどうしたらいいでしょう
>>742 void f(){throw 0;}
これをコンパイルして、外部参照してるアンダースコアつきの
シンボルにブレークポイントを仕掛ける。
・・・ってな感じでいけるんじゃないかと思った。
745 :
デフォルトの名無しさん :02/11/25 13:48
>>739 つーかそれが volatile だよ。
volatile void foobar(); で帰ってこない関数 foobar() になる。
gcc2.5 から attribute noreturn が出来たのでそっちを使うようになった。
(volatileも使えるけど)
>>745 コンパイラの内部関数に。
漏れはgcc3.1だけど、__cxa_throwとかが怪しいな。
>>746 そーだった!
考えてみればあたりまえですた。
揮発な関数ってなんやねんと昔悩んだのに・・・
ありがとござますた
749 :
デフォルトの名無しさん :02/11/25 18:29
俺的速度評価 ←速い VC6(-O2)>>>mingw(gcc3.2 -O2)>>>bcc5.5(-O2) いつもこの3つで通るプログラム書いてますが、 だいたいこんな感じです。 「このコードはこんだけ差が出る」っての出せる人いませんか?
750 :
デフォルトの名無しさん :02/11/25 23:19
>>749 そもそもの話cc1はともかくg++はclに比べて糞重いだろうが、
gccはアセンブラを吐いてas.ldでコンパイルするっていう手順くんでるので
理屈からいっても無駄がでてくる。
コンパイル速度の話には見えない・・・
>750 コンパイル時間の話なのか、生成されるコードの話なのか…
すいません。生成コードの速度です。 コンパイル速度で言ったらgcc最下位でしょ。
754 :
デフォルトの名無しさん :02/11/25 23:58
755 :
デフォルトの名無しさん :02/12/01 14:11
バイナリサイズがでかい?
自分で脳内最適化してください。
757 :
デフォルトの名無しさん :02/12/01 16:05
>757 ?
759 :
デフォルトの名無しさん :02/12/04 18:00
cygwin-b20 fullをインスコしたのですが、(無論、windowsです) gccでpthread.hを使おうとしたところ、そんなファイルは無いと言われます。 unixのようなマルチスレッドのプログラムは作れないのでしょうか・・・(;´Д`) また、パスをきちんと通しているのですが、 gccでコンパイルしようとすると、 stdio.hが見つからない・・・といった類のエラーが出ます。 仕方がないので、gcc.exeが置いてあるディレクトリにファイルを置いて コンパイルしている現状です・・・ 何が悪いのか全然分からないので、 どうか助けてください。よろしくお願いいたします。
>>759 > cygwin-b20 fullをインスコしたのですが、(無論、windowsです)
どっからそんな化石を発掘して来た。
>>759 gccのパスが通ってないだけだと思うけど、
cygwinの質問ならunix板の方がいいよ。
ちなみにb20ってすごく古いよ。
765 :
デフォルトの名無しさん :02/12/05 11:08
予定通りだとgcc-3.3がそろそろ出るかな。みなさんバグを発見したら ちゃんとレポートしましょう。
766 :
デフォルトの名無しさん :02/12/05 13:37
バグ? 2.95.3ですまそ。これ通らないといけないと思ったが通らん。 Borland-C++5.6では通る。 class record { std::string key; std::string value; public: friend bool operator< (const record &l, const record &r); record(const std::string &k, const std::string &v) : key(k), value(v) {} }; bool operator< (const record &l, const record &r) { return l.key < r.key; } s.cc: In function `int main()': s.cc:6: `class string record::key' is private s.cc:28: within this context s.cc:7: `class string record::value' is private s.cc:28: within this context
>>766 main()がないのでこんなのをくっつけて2.96で試したら問題ないようだけど。
int main()
{
record r1("hoge", "asdfsd"), r2("hage", "dasfdase");
cout << (r1 < r2);
return 0;
}
2.95.4なら通るよ
typeof演算子みたいにtypedef templateをフライング実装してくれないかな
public class teste { public static void main (String [] args) { System.out.println ("Hellow world"); } } こんなプログラム書いてgcjでコンパイルしたら、 /usr/lib/crt1.o: In function `_start': /usr/lib/crt1.o(.text+0x18): undefined reference to `main' collect2: ld はステータス 1 で終了しました とか言われます。 何がいけないんだ?
すんません、解決しました。 gcj --main=teste teste.java ってオプション付ければいいだけだった。
GNU Compiler Collectionの一部だからそうでもない。
774 :
デフォルトの名無しさん :02/12/09 19:38
#include <iostream> int main () { std::cout << "あはんはん" << endl; return 0; } 文字コードEUCの、このファイルをコンパイルすると、 ahan.cc: function 内の `int main()': ahan.cc:5: プログラムとして逸脱した文字 '\33' ahan.cc:5: 構文解析エラー が `(' トークンの前にあります ahan.cc:5:39: 警告: 複数行文字列リテラルは推奨されません ahan.cc:5:39: " 文字での終端を欠いています ahan.cc:5:39: 終端のない文字列リテラルの推定開始位置 とか言われます。 日本語ってどうすりゃいいの?
775 :
デフォルトの名無しさん :02/12/09 19:50
774 微妙にワラタ
いきなりだけど解決した。 EUCじゃなくてJISになっていやがった。 ついでに std::endl にしないとダメだし。 微妙に鬱
微妙、微妙逝ってんじゃねえよ てめeらこそ微妙
GCCの更新履歴とかの詳しい日本語サイトってないんですかね?
保守
インラインアセンブラで質問 typedef float MATRIX[4][4]; inline void foo(MATRIX& mat) { asm volatile("ここで mat に書き込む" :: "r"(&mat)); // ここで mat 読み出す } こういうコードを書くと、gcc がインラインアセンブラで mat を書き換えたことに気づ かず、レジスタに残ってる mat[4][4] の要素を再利用することがある。明示的に mat 書き換えたよ、と宣言したいんだけどどうしたらいい? いちおう解決方法は見つけたんだが、どっちもイマイチなんで。 1. clobbered registeres に "memory" と書く これだと mat に限らず、すべてのレジスタをいったん破棄してしまうから、効率が イマイチ…。 2. inline にしない これも効率の面から避けたい
785 :
デフォルトの名無しさん :02/12/18 21:38
volatile MATRIX &vmat = mat; として、 asm volatile("ここで mat に書き込む" :: "r"(&mat)); 以降では vmat を使うとどうなる?
>>786 matにvolatileつける…最適化効かないから悲しい事になるか。
やっぱりmemoryをclobberするのが正攻法では?
inline void foo(volatile MATRIX& mat)じゃだめ?
>>784 メモリ領域に出力なんだから "m" constrain を使って
asm volatile("ここで mat に書き出す" : : "=m" (mat));
でどうよ。%0 がアドレスになるからアセンブリはちと変わるかも。
gcjはJavaからネィティブコードを吐き出させることが できるみたいですが、Windows版はあるのでしょうか? また、swingなどのGUIコンポーネントには対応しているのでしょうか?
GUIはAWTもほとんど対応してなかったはず
>>791 thx.
あーヤパリGUIはダメですか・・・。まだまだ実用段階ではないってことね。
Win版というか、Cygwinのgcc 3.2パッケージに含まれてるgcjが なんとなーく動く。少なくともhello worldは動いた(w # もちろんAWTやSwingなんてのは無い
いろいろ参考になる意見をどうも。
volatile はどれもダメだった。元々の変数を非 volatile で宣言してあると、後で
volatile 参照変数に入れても「元の方は影響受けない」ってことみたい。(それ
だと今回はキツいんで)
>>789 これで対応しました。ただ
0x00(%0) -> %0
0x10(%0) -> 0x10 + %0
とか書くと %0 が %lo(xxxxx)(%fp) みたいに展開された時にアセンブラが文句を
言うので
"=m"(mat[0]), "=m"(mat[1]), "=m"(mat[2]), "=m"(mat[3])
と並べて対応しました。
あと 128bit データ型なら "=&j" で書き出すのもアリみたい。
>>793 単独実行ファイルになるのはいいけど、
速度面では Sun JVM と変わらないか遅いくらいじゃない?
適当なことをいっている気がしたので、きちんと確かめてみた。
ベンチマークはこれで。
http://www.asahi-net.or.jp/~AN4J-UEHR/homepage.en/jp/.NETplaf/bench.htm Win2KSP3/AthlonXP1700+。gcc は cygwin 版。
┌──────┬──────┬───┬───┬───┐
│ 実行環境│コンパイラ │最適化│rev40 │fib20 │
├──────┼──────┼───┼───┼───┤
│j2se1.4.1_01│j2se1.4.1_01│ - │ 214│ 1146│
├──────┼──────┼───┼───┼───┤
│j2se1.4.1_01│gcc-3.2-3 │ - │ 217│ 1151│
├──────┼──────┼───┼───┼───┤
│w32 native │gcc-3.2-3 │ - │ 300│ 2010│
├──────┼──────┼───┼───┼───┤
│w32 native │gcc-3.2-3 │ -O │ 199│ 1423│
├──────┼──────┼───┼───┼───┤
│w32 native │gcc-3.2-3 │ -O2 │ 139│ 1091│
└──────┴──────┴───┴───┴───┘
gcj は gas に落としているので最適化が効くみたい。
JIT や Hotspot が有効なプログラムでは JVM の方が速いかも。
そっか、プロポーショナルフォントだから崩れるのか。鬱。 ちなみに生成されるファイルのサイズは以下の通りでちた。 j2se1.4.1_01 class files 105303bytes gcc-3.2-3 class files 91806bytes gcc-3.2-3 native exe(-O2) 2204515bytes upx -9 して 1244515 bytes
gcc-3.2-3 の実行ファイルのサイズは strip 済みですか?
そういやしてなかった。 gcc-3.2-3 native exe(-O2) striped 1436672bytes upx -9 して 476672bytes お、1MB 割った。 GUI は AWT/Swing 待つよりも SWT 使うのが良いと思った。
801 :
デフォルトの名無しさん :03/01/05 08:21
age
-lなんたらって、それを使ってるオブジェクトファイルより後に付けないといけないのね
803 :
デフォルトの名無しさん :03/01/05 18:15
gccってコンパイルの時にzlib使うみたいですが 何に使われているのでしょうか?
>>803 java の *.jar(*.zip) なファイルを読む時かな。
gcc-3.01-msvcrt.exeファイルが見つからん
MinGWを、gcc Developer Station 2000で、使おうと、した。
上手く、ビルド、出来なかっ た。
DS2kを、使うのを、やめた。
やっぱ、グッシッシ使うならDev-C++だねぁー
>>231 に感謝。
>>807 うるせーバカッ!!
809 :
デフォルトの名無しさん :03/01/07 07:51
811 :
デフォルトの名無しさん :03/01/07 21:19
812 :
デフォルトの名無しさん :03/01/07 21:26
ここはひどいインターネットですね。
だが、愛がある
ぬるぽもある
815 :
仕様書無しさん :03/01/08 01:48
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`∀´)/
(_フ彡 / ←
>>814
gccを解説した書籍とかサイトとかありません?もちろん、日本語で。
>>816 impressから出てる 「できる!GCC」 シリーズがおすすめ
今日からはじめてすぐにコンパイル!
Hello,worldから詳しく解説。
WE LOVE GCC!
>>817 聞き方が悪かった。
C言語の解説書じゃなくて、GCCでプログラムするための解説書だ。
オライリー辺りで出てないかなと思った次第だが。
あとはソースひたすらソース。 ところで@xyzzyってのは初めて見たかも。 動くのか、、、
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
j
IPってなんですか?
昔は祭りなんてなかったなぁ。
もう対応してるんじゃないの?
IP記録大賛成ですね。
>>544 漏れも「今から危険な領域に突入しようと(以下略」みたいなとこまでは
いったんだが…。気になるけど見たくない…。
>>53 そう、そこが問題なんだよ。 裁判所は、
現状の2ちゃんねるにあっては、名誉毀損かどうかをひろゆきが判断をしなさい。
削除しない場合は、法廷で、「レスの真実性・相当性」をひろゆきが立証しなさい。
と言っているわけ。
>>53 そう、そこが問題なんだよ。 裁判所は、
現状の2ちゃんねるにあっては、名誉毀損かどうかをひろゆきが判断をしなさい。
削除しない場合は、法廷で、「レスの真実性・相当性」をひろゆきが立証しなさい。
と言っているわけ。
あっちこっちでスレ違いのIP記録話が始まってウザい事この上ない。
と思ったらスクリプトが腐ってるのか… これじゃ俺の書き込みの方がウザく思われるな。逝ってきまつ。
えっ!単に ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者 ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者 ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者 ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者 連呼でも? 常に自分とこの病院が話題にされていると勝手に考えるのは 単に自意識過剰ではないの?
はぁぁぁ。あと、1週間以内で生理・・・。 何事にもむかついてたまらないっ! 生理前って、ブルーになったり、いらいらしたり。。。 ほんと勘弁してって感じ。
祈念カキコ
このまま2chが衰退していくのが目に見えるな
携帯は「あけおめ」を規制するそうだが、 2ちゃんも、31日23時〜1日正午ごろまで、 全板のcgi止めといたほうがいいんじゃないか……? 「かまわん」というのなら巨大なお世話でスマソ
で結局IP記録に賛成なの?
質の低いって言ってもせいぜい荒らしとかのことだろう。
>>714 それはトマトとかいうものらしい?
設定?してあるwebのアドレスを書き込むとリモホとIPが晒される
随分前からやってるらしい
いままで記録してなかったことのほうが不思議だ
ああ、それは当時のIDの算出方法が、IPアドレスを推測可能なものだったから(^_^;) つか、それで公開仕様のIDを募集したのだな(^_^;)
おしゃべりは録音でもしない限り流れて消えますが 掲示板の書き込みは文字として残りますよ
犯罪者はそれなりの手段で匿名性の確保ができる。 これで困るのはごく一部の愚者と小心で正直な市民だ。 つまり現実世界と同じ。面白いか、そんなの。
まあ嵐が減るならいいや
匿名性のメリットはそういう点でなく、 「双方向目安箱」だと思うよ。 小泉が一般人の振りして2chで議論 これも匿名だから可能だろ? 実際に小泉がやったか知らないが…
個人情報は削除の対象となります。 じゃなかったかすら
意見を聞いてもらうために「次スレたってないようなのでこちらに」は やめろ。
851 :
デフォルトの名無しさん :03/01/11 16:58
で、gccについての話題は終了?
2chで内部告発的な事をするリスクが大きくなるのかな? 発信元がわかるんで、告発された側が「よーし金でねじ伏せちゃうぞー」 とか言って裁判でも起こしまくって。 そんな状況はガクブルだから、面白そうな(真実である事が前提の)投稿は、減る?のかな? 考え過ぎ?って言うか見当違い?どうだ?どうなんだ?
IP記録しても構いませんので、スレッドをもっと立てやすくしてください。 IPが記録されるような掲示板は匿名掲示板とはいえませんが、 スレッドが立てられないような掲示板はもはや掲示板ですらありません。
そういうことだったんですか(^_^;) でもね・・・ そ ん な こ と は 一 秒 あ れ ば 思 い 付 く こ と だと思いませんか?(^_^;) つまり、今の手法ってのが選ばれたってことから そのやり方は選択されなかったことは自明かと・・・・。
キターーー January 10, 2003 Geoffrey Keating of Apple Computer, Inc., with support from Red Hat, Inc., has contributed a precompiled header implementation that can dramatically speed up compilation of some projects.
pchブランチの成果が入ったってことかな?
イパーイ釣れてヨカタね。
まんこ ちんこ うんこ しっこ ぴゅーぴゅー♪
| |[‖★‖] ( ★ ) | |<丶`∀´> <丶・∀・> | | )::::::::( )::::::::( \::::::::::::;\ /::::::::::::;\ |:::::::::::: l | //´|:::::::::::: l | |:::::::::::: | | | | |:::::::::::: | | /::::::::::::/| | // /::::::::::::/| | |::::::::::/ U U ..|::::::::::/ | | |::::||:::| | |∧_∧| | |::::||:::| U |::::||::| |( ;´Д`)/ |::::||::| | / | | / | | /.| | // | | | / // | | // | | | /| | // | | // | | // | | // | | U U U U U U
て
ShutOutというけど ローカルルールに従った要請は受け付けてるんだから(^_^;)そうすればいいよ 列に並ばないで権利を主張する奴は許されない
フーン
(^^)
既出です
(^^)
867 :
デフォルトの名無しさん :03/01/16 17:47
December 27, 2002 Mark Mitchell of CodeSourcery has contributed a new, hand-crafted recursive-descent C++ parser sponsored by the Los Alamos National Laboratory. The new parser is more standard conforming and fixes many bugs (about 100 in our bug database alone) from the old YACC-derived parser. これってcp-parser-branchのことだけど、C++マニアの人試してみた?
868 :
デフォルトの名無しさん :03/01/17 11:59
Linux + gccで、 初めて クラスライブラリを構築する事になったのですが、 参考になる 良い書籍やWebページ等ありましたら教えていただけませんか
>>868 主に「何に対して」不安を感じてるんだ? 今まで Visual C++ 使ってて
gcc ははじめてなのか、それとも C++ 自体はじめてなのか。
人生に憑かれますた
c++開発自体は経験ありで、でもクラスライブラリ作成は初めて gccも本格的に使用するのは初めて
873 :
hnhjfcldsa :03/01/20 13:37
(^^)
876 :
デフォルトの名無しさん :03/01/30 16:25
3.3はもう普通に使える。なかなかいいかも。 というわけでネタなしのから揚げスマソ。
877 :
デフォルトの名無しさん :03/01/30 17:49
878 :
デフォルトの名無しさん :03/01/30 18:47
>>10 私は
>>8 ではないですが、最近はbehavior levelから直接
論理ゲートまで合成するツールも出来てきているようですよ.
ところでVerilog vs. VHDLでgoogleと結構感情的な意見の言い合い
のページとかが引っかかって英語圏の人に親近感もったりする。
すまん、完全に間違ったところに書いてしまったよ.
880 :
デフォルトの名無しさん :03/02/04 04:32
cygwinのgcc3.2でC++を使ってます。 クラスのコンストラクタを非インラインで定義すると、 [not-in-charge]と[in-charge]っていうふうに2つ実体が出てきます。 コードサイズがまるまる2倍になって困ってるんですが、 なんでこんなふうに2つ実体がいるのでしょうか?
882 :
デフォルトの名無しさん :03/02/05 13:56
3.2.2 release age
883 :
デフォルトの名無しさん :03/02/05 16:24
884 :
デフォルトの名無しさん :03/02/07 23:08
シンボル参照されないオブジェクトファイルを実行ファイルに含めないようにする リンカオプションのようなものはありませんか?
ガーン やっぱアーカイブに詰めるしかないのか。
887 :
名無しさん@Meadow :03/02/09 00:04
日本語混じり(shift-jis)のソースをgccすると一部の日本語文字で怒られるん だけど…gccって何かフラグあるのかなぁ? # eucなら上手く行くのは解ってる
LANG?
>>887 2.95,3.0,3.1の話になるけど、SJISやEUCを素直に食わせるには、
gccを日本語対応でコンパイルする必要がある。
そこらのコンパイル済みバイナリはもれなく対応してない。
890 :
名無しさん@Meadow :03/02/09 01:44
manみて最初LANGかと思ったけど違った。 そーか…cygwinのgcc使ってるんだけど、compileし直すしか無いのか;_;
891 :
デフォルトの名無しさん :03/02/09 01:46
892 :
デフォルトの名無しさん :03/02/09 01:46
gccのx86ターゲットでNetBurst対応のはありませんか? (SSE2オプションとかじゃなく) Northwood買ったのでi686-gccじゃなんか気持ち悪いんで
893 :
デフォルトの名無しさん :03/02/09 02:08
>>893 サンクス。 CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" でいいみたね
895 :
デフォルトの名無しさん :03/02/09 04:14
man見たところ、-O3 つけると -fomit-frame-pointer も有効になるっぽいけど。 あと、 -march=pentium4 はgcc2.x では無い(?)
gcc2.xはそういう意味じゃさっさと捨ててしまいましょう
>>895 gccのmanとinfoはあんまり信用できないぞ。経験的に。
source見たらぜんぜん違うことがあった。
>>890 ソースの中のSJIS文字列を、\225\266\216\232\227\361 みたいに
変換するフィルタを噛ませばよい。
gccでPascalとか、AdaとかJavaとか他の言語使ってる人います?
900 :
デフォルトの名無しさん :03/02/11 02:15
>>899 他の言語を使っている中の人など900getしない
>>899 gccってpascalもコンパイルできるの!?
初めて知ったよ!
しかし,pascalって今でも使ってる人っているの?
昔DOSの頃にターボパスカルか何かを大学で使ってたので懐かしい.
しかし,pascalは言語的には結構良く出来てると当時は感じたけど
絶滅させるには惜しい言語だな.
そう言えばTexか何かがpascalが何処かに使われてるとかって話を
聞いたことがあった.
gcc は C# をサポートするの?
>>899 昔書いた Java プログラムを gcj に通して遊んだりしてます。
あーちょっと速くなったーとかいって。
>>902 Delphiは現役で使われまくってるだろ
厳密には独自拡張したものだが、ターパスのころからunitとかいろいろ拡張されてたし。
BASICって今でも使ってる人っているの? と同じ話
>>905 > ターパスのころからunitとかいろいろ拡張されてたし。
俺が使ってたころにはunitはなかった。
ごめん。GNU Pascalとgcc勘違いしてた・・・。
デフォではgccには含まれてないや。
gccのフロントエンドっぽい。
>>906 教科書Pascalみたいな実用的なのは、使いたくないでつ。
×実用的なのは ○実用的でないのは
909 :
デフォルトの名無しさん :03/02/11 12:55
http://gcc.gnu.org/cvs.html 久しぶりに見てみると、なにやらブランチが倍増しています。
gomp-01-branch
new-regalloc-branch
rtlopt-branch
bnw-simple-branch
condexec-branch
cxx-reflection-branch
cygwin-mingw-v2-branch
fixincl-branch
itanium-sched-branch
meissner-ppc-branch
merged-arm-thumb-backend-branch
new-abi-branch
pchgc-branch
pchmerge-branch
subreg-byte-branch
tree-serialize-branch
x86-64-branch
新しいC++パーザとプリコンパイルヘッダに関するものはメインラインに
統合されたとな。
>>909 > cxx-reflection-branch
これ気になるな。
gcjと組み合わせて.NETのManaged C++みたいなことができるとか・・・
>>910 気ままにリフレクションするんだろうな。
日清焼きそばUFOってところか。
913 :
デフォルトの名無しさん :03/02/16 22:49
>>909 メインラインとはどのライン?
latestにはそんなもの入ってないっぽいけど
914 :
デフォルトの名無しさん :03/02/16 22:52
gcc -MM で依存関係出したとき、インクルードしてたヘッダ 消したら(名前変えたりしても)エラーが出るようになっちゃうんだけど、 そういうもんなの?
915 :
デフォルトの名無しさん :03/02/16 22:59
>>884 ファイル単位だったら、アーカイブして、それリンクすれば普通にはじかれると思うが。
関数単位だったら、コンパイルオプションで -ffunction-secionts -fdata-sections 指定して
関数、データ単位にセクション切らせて、リンカオプションで --gc-sections。
コンパイルドライバ(gcc)コマンドラインからの指定なら
-ffunction-sections -Wl,--gc-sections かな?
>>886 あ、アーカイブすればいいのはわかってたのか。すまん。
昨日、cygwin gcc version 3.2 20020927 (prerelease)でbinutilsコンパイルしたんです。binutils。
そしたらなんかmake installが通らないんです。
で、よく見たらなんかエラーが出てて、
./chew.exe -f ../../../bfd/doc/doc.str <../../../bfd/doc/../aoutx.h >aoutx.tmp
make[2]: *** [s-aoutx] Error 128
とか書いてあるんです。
もうね、アホかと。馬鹿かと。
お前らな、-O2 -fomit-frame-pointer如きで普段見つけにくいwrong code出してんじゃねーよ、ボケが。
-O2 -fomit-frame-pointerだよ、-O2 -fomit-frame-pointer。
(中略)
で、やっとgcc 3.2.2コンパイル終わったかと思ったら、またbinutilsで、
./chew.exe -f ../../../bfd/doc/doc.str <../../../bfd/doc/../aoutx.h >aoutx.tmp
make[2]: *** [s-aoutx] Error 128
とか言ってるんです。
そこでまたぶち切れですよ。
(後略)
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=9647
>>920 微妙じゃねーよー。
エラーになるんだよ。
みんなどうしてんだろ?
一回エラーが出てから対応すんのかな?
>>923 gcc -MM とそのリンク先の関係がまるでつかめない。
リンク先は
「ソースファイルの一覧に変更があったときに自動的にアクションを起こす方法」
みたいだけど、、、
まさか、ヘッダファイルが消えた(名前が変わった)のを検知して、
全オブジェクト作り直しとか?
925 :
デフォルトの名無しさん :03/02/18 08:16
>>918 gcc-3.4を入れてみました。C++のパーサーテストしてますが
なかなかよさげです。ありがとうございました。
gcc3.4からいよいよプリコンパイルヘッダーが使えると聞きましたが 本当ですか!?
>>924 > まさか、ヘッダファイルが消えた(名前が変わった)のを検知して、
Makefile(またはincludeされるファイル)を作り直し。
>>928 ヘッダが消えた(名前が変わった)のを検知して、
gcc -MM ソース全部 するの?
そりゃひどい。
で、最新のgccマニュアル見てたら、-MPなんてオプションがついてる。
コレだコレ。
あ、でも使ってるgccには無いみたい。
アァァ
SRCS := $(wildcard *.c) %.d: %.c $(CC) $(CPPFLAGS) -MMD $< include $(SRCS:.c=.d)
931 :
デフォルトの名無しさん :03/02/20 13:35
g++ のwarningを全部消すには optionは何を使えばよいのでしょうか? please help me.
オプションでなんとかせずにコード直せ。 話はそれからだ。
>>932 そんなぁ(w
でも解決しました。(-wで
cygwin32 で gcc 使って Palm/LinuxZaurus 用アプリの 開発ってできますかねぇ?
クロス環境作ればできんじゃないの。
リンカとしてgccを使う場合、gccのかわりにg++を使用しても問題はないですか?
937 :
デフォルトの名無しさん :03/02/20 18:07
突然gccの仕事をまかされました とりあえずエディタで書いてコマンドでmakeして開発してます。 一般的な開発統合環境みたいな感じでbreakかけたりしながら デバッグする方法はないのでしょうか
>>937 ♪gccを知ってても〜 それだけ〜じゃコマリマス〜
gdb
>>935 Qt ってやつを使ってみたいな、と。
エミュレータもあれば便利だろうな、と。
その辺りの必要なツールやらまとめたページってどこかにありませんかねぇ?
# ダウンロード先が現在も生きているページで。
VCの #pragma warning( disable みたいに、特定の警告をださせないようにソースコード上から 指示を出す方法はありませんか?
info gcc
>>936 libstdc++.soがリンクされてもよけりゃ。
943 :
デフォルトの名無しさん :03/02/20 19:49
int main() { const char c[]="圭"; } とすると missing terminating " character possible start of unterminated string literal parse error at end of input とでるのですが、G++のバグ?
>>943 "圭\"としる。日本語に対応してないからだね。
>>944 なるほど!
Thanks.
GCCのUNICODE化がもう少し進んでくれるといいなぁ。
"圭"はShift-JISでは0x8c5c、0x5cは '\' だから誤動作したのだろうね。
UNICODEと何か関係があるのか? 943のエディタが腐ってるだけだろ 何でもGCCのせいにすんな
UNICODEでソース書いたらコンパイル通ったの? 全部2バイト文字になるからサイズが大きくなりそうだし。
UTF-16なんか通るのか?
951 :
デフォルトの名無しさん :03/02/20 21:24
>>947 (cygwinのG++3.2)
メモ帳で保存。
UNICODE
UTF-8
でやったけど、通ったのはANSIで保存して圭\としたときだけだった。
UTF-8なら通るはずだ。ゴミBOMでもついてんじゃないか?
953 :
デフォルトの名無しさん :03/02/20 21:44
>>952 (STL PORTは入れてない状態で)
undefined reference to std::basic_string<wchar_t,std::char_traits<wchar_t>,
std::allocator<wchar_t> >::basic_string[in-charge](whchar_t const*,std::allocator<wchar_t? const&)
...
collect2: ldreturned 1 exit status
と出てファイルが生成されない。
全然問題がちゃうやんけ。
955 :
デフォルトの名無しさん :03/02/20 23:25
>>952 BOMの存在さえしらないんだと思われ
それでUNICODE化がどーのとよく言えたもんだ
956 :
デフォルトの名無しさん :03/02/21 00:22
BOMの存在は知らなかったが,
すべてこの見えない存在に悩まされ続けていたのだった.
なぜ、L""が通らなかったのか.
すべての原因がここにあった.(完)
>>952-955 Thanx.
BOMってなあに?
#pragma comment(lib,"libcrypt.a") とかできたら楽なんだけどな。 不要にLDLIBS長くしなくていいし。
そして移植性がなくなって、代わりに-DLIBCRYPT=\"libcrypt.a\"が山のよう につくようになる罠
>BOM Begin Of …なんだっけ。 マンセー?
ウケ狙おうとして素で間違えた。(赤面 Byte Order … だったね。
移植性?
965 :
-W,l名無し :03/02/23 05:02
966 :
-W,l名無し :03/02/23 05:06
余分なライブラリをいっぱいリンクさせても結局使ってない関数群はa.outには入らないんだよね?
オブジェクトファイルが一緒なら使ってない関数までリンクされるんだ。 だっせー実装だな(藁 さすが前時代のコンパイラ
コンパイラの都合だけじゃないからややこしい
つーかオブジェクトファイルが一緒でもリンクは関数別なんて事 できるのか?
もしかしてunix依存の話になってる?
>>972 インクリメンタルリンクは、それに近い事やってるんじゃないか?
>>974 たしかに、インクリメンタルリンクができれば、関数ごとのリンクもできそう
な気がするな。
GCCはフリーなのでプリコンパイル済みヘッダーファイルなど大規模開発に必要な機能は ついておりません。
>>976 gcc3.4ではプリコンパイル済みヘッダ機能が取り込まれる予定。
978 :
デフォルトの名無しさん :03/02/23 23:24
streamやlocaleのライブラリは、なんであんなに 一個のオブジェクトファイルにまとめてあるんだろう。 Cのライブラリみたいに関数ごとくらいで分ければいいとおもうんだけどなー。
gcj が javaのネイティブコンパイルができるというので使ってみたが、hello, world が 2Mbyte超でちょっと鬱。 しかも変なワーニングも出るし。
>>970 コンパイラの仕事ではなくリンカの仕事です。
>>967 〜
結果的には出来る様になってる。
>>915 参照の事
>>980 コンパイラ&アセンブラが部分的に抽出使用出来ないコードを吐いたら、
リンカだけではどうにもならない。オブジェクトレベルで同一オブジェクト内の別関数、
データの配置参照を解決しちゃうとか。で、gccの動作はまさにそれのはず。
>>970 Turbo Pascal/Delphiは十年前からスマートリンクしてたけどな。
983 :
-W,l名無し :03/02/24 23:34
984 :
デフォルトの名無しさん :03/02/25 13:24
>>979 Mac OS XだとHelloWorldは7MB超ですた。とほほ…
これってlibgcjとかboehm-gcを静的リンクしてるんでしょうか?
一応configureで--enable-sharedを付けたのですが。
>>986 無学にしてccacheというものを知らなかったのですが、いま CXX = ccache g++としてみて
その速さにちょっと感動しています。976ではないですが、教えてくれてありがとうございます。
このccacheってなんか副作用とか使っていく上で気をつけたほうがいい点とかありますか?
GCCについて 2 っていうスレ誰か立ててよ
>>989 それでいいんでおながいします。
スレタイトルはあくまで
「GCCについて 2」
という方向で
GCC CC C C グシシ GCC CC C C
GCC CC C グシシ GCC CC C
GCC C C グシシ GCC C C
GCC C グシシ GC C C
GC C グシシ GC C
G C グシシ GC
G グシシ G
グシシ
とりあえず999
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。