トップページ⇒tech
1001コメント273KB

GCCについて

レス数が1000を超えています。これ以上書き込みはできません。
0001爽NGNG
オーム社のプログラミングの力を生み出す本
というものを読み始めました。
この本に載っているGCC(GNU C)の
最新版の入手方法がわかりません。
GCCを使って、アセンブリ言語コード、
C++言語コードさらにJAVA言語コードの
コンパイルをしたいと思っています。

GCCの最新版の入手方法とコンパイルまでの流れを教えて下さい。
0002デフォルトの名無しさんNGNG
単発質問につき終了
0003爽NGNG
単発質問ってなんですか
0004デフォルトの名無しさんNGNG
http://www.gnu.org/software/gcc/gcc.html
0005デフォルトの名無しさんNGNG
>1
板出入り禁止
0006 ◆RubyOmS2 NGNG
>>3
ネタなのかマジなのか知らないが、
スレ立てるほどでもないことは、
スレ立てるまでもない質問スレに書いてくれって事。
http://pc.2ch.net/test/read.cgi/tech/1006910650/l50
それと、親切な4さんに感謝しときなさい。
sageでな、、、
0007デフォルトの名無しさんNGNG
>>1
入手はWinMXでできます。
Adobe PhotoShopとMicrosoft Visual Studio 6.0を用意すれば
たぶん交換してもらえるでしょう。

WinMXはこちらです。
ttp://www.winmx.com/
0008デフォルトの名無しさんNGNG
>>7

犯罪幇助につきタイーホケテーイ
0009デフォルトの名無しさんNGNG
>>8
どの辺が犯罪でしょうか?
0010デフォルトの名無しさんNGNG
>>9
MXでAdobe PhotoShopとMicrosoft Visual Studio 6.0を共有することが。
0011デフォルトの名無しさんNGNG
>>10
7と関係あるのでしょうか?
0012デフォルトの名無しさんNGNG
gccがそんなに多機能だとは知らなかったよ>1
0013デフォルトの名無しさんNGNG
>>12
GNU Compiler Collection の略だしね。
f77, c, c++, asm(gas), java(gcj) に対応。
ただし、gcj はまだ Windows 環境じゃ上手く動かない(少なくとも3.0は)。
0014名無しさん@XEmacsNGNG
Objective CもあるYO
001512NGNG
告白します

gccでjavaがどーのこーのいう1を馬鹿だと思っていました。
てへ♥


↓おかげで眠気がふっ飛びました
http://gcc.gnu.org/java/index.html
0016デフォルトの名無しさんNGNG
CPadつかっとけ.
0017爽NGNG
最新版は、GCC 3.0.2
JAVAは、GCC 3.1 には、Windows 環境 でもうまく動くようになるらしいですね
0018デフォルトの名無しさんNGNG
GCJ以外で、ネイティブコードへのコンパイラって何が有るの?
0019デフォルトの名無しさんNGNG
>>12
GCCって確かPascalとかObjectiveCとかも
コンパイルできなかったっけ?
けっこう多機能なんだよ、アレ
洩れも詳しくはないけど

GCC教えてスレッドに再利用age
0020デフォルトの名無しさんNGNG
>>18
商用のは VisualCafe に付属していたシマンテックのコンパイラを始めいくつかある。
大抵は数万円するから個人では買わないね。謳っているほど効果があるか疑わしいし。
0021デフォルトの名無しさんNGNG
>>19
中間言語があるからフロントエンドさえあれば何でもOK
0022デフォルトの名無しさんNGNG
「おいオメー さっきから うるせえぞ
『知りません』『知りません』ってよォーーーー
『知りません』・・・そんな言葉は使う必要がねーんだ
なぜなら オレやオレたちの仲間は その言葉を頭に浮かべた時には!
既にGoogleや書籍で調べがついちまって もうすでに『知っている』からだッ!
だから 使った事がねェーーーッ
『知っている』なら 使ってもいいッ!」
0023デフォルトの名無しさんNGNG
>>20
じゃあ、GCJがフリーでは初めてなのかな。
0024デフォルトの名無しさんNGNG
gasはbinutilsの方だと思うが。
しかしgcjってネイティブコード吐けるのか。知らなかった。

.class作るだけならIBMがGPLで出してるjikesも速くていいよ。
UTF-8にしないと日本語混じりのソースで文句言うけど。
0025デフォルトの名無しさんNGNG
安芸
0026デフォルトの名無しさんNGNG
jikes
http://oss.software.ibm.com/developerworks/opensource/jikes/

antとjikesをうまいこと使うと日本語もoKらしい。
(antでnative2asciiを使うらしい(ant知らない))
0027デフォルトの名無しさんNGNG
gcc, make, autoconfあたりを網羅した解説書が欲しいな。
0028失貴君NGNG
autoconf+automakeはどっかでみた。
0029デフォルトの名無しさんNGNG
>>26
ANTって多分これのことでしょ
http://jakarta.apache.org/ant/index.html
Javaで書かれたmakeのようなものですが、
Javaをコンパイルする場合はmakeより高速で高機能です。
native2asciiはJDKについてます
0030あり?NGNG
ちょっと遊んでみよと思ったけど、
gasって浮動小数点備わっていないわけ??
0031デフォルトの名無しさんNGNG
>30
浮動小数点を扱うには、$99.00でレジストが必要です。
0032デフォルトの名無しさんNGNG
GNU関連(てか、中核)で$が要求される場合があるという驚き。

#じゃ、しばらく遊んだらnasmだな
0033デフォルトの名無しさんNGNG
>>30
.floatで定数として書けるけど。
0034デフォルトの名無しさんNGNG
>>33
んじゃ、対応するオペレータは?
0035デフォルトの名無しさんNGNG
>>34
gcc -Sを見るとfstplとか使われてますが。
0036デフォルトの名無しさんNGNG
>>31
ワラタ
って・・・ねただよね・・・(おどおど
003732NGNG
え、え!!
0038デフォルトの名無しさんNGNG
$99.00は(float)99の即値という意味です。
0039デフォルトの名無しさんNGNG
>>26
iconvが使えるなら、jikesでもUTF-8にする必要ないよ。

少なくとも、Debian GNU/Linux sidに入ってるパッケージは出来た。

cygwinでもちょっと試してみたけど、iconv使うようにするとうまくコンパイルできなかった。
あと、solarisのiconvもだめらしい。
0040デフォルトの名無しさんNGNG
gcc-3.0.3 でたので age。
しかし、C++ で virtual 使いまくりのときに destructorが
2回呼ばれるバグってどうなったんだろう?
GNATSでみると open bug ばっかりでDBとして破綻してる気がしてくる。
0041デフォルトの名無しさんNGNG
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とかならうまくいくのにな。

これってバグかな?
0042デフォルトの名無しさんNGNG
>>41
とりあえず while んとこの ; がなんとなく気になる。
0043デフォルトの名無しさんNGNG
でも、cc,bccでうまくいく、ってのは、もっと気になる。
0044デフォルトの名無しさんNGNG
とりあえず gcc version 2.96 20000731 (Red Hat Linux 7.0) でためしたけど、
ちゃんと動いてるみたいだよ。
004544NGNG
最後に
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
0046デフォルトの名無しさんNGNG
"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)."
004741NGNG
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

おとなしく別アルゴリズムにしろって感じでしょうかね。
ありがとうございます。
0048デフォルトの名無しさんNGNG
[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]$

こういうのは、やっぱレポート送ったほうがいいんでしょうか?
それとも、そもそもソースがおかしい場合は、そっとしといたほうがいいんでしょうか?
0049デフォルトの名無しさんNGNG
とりあえず、GCC 3.xで再現するか試したら?
0050  NGNG
java1.4beta3ってどうよ?
0051デフォルトの名無しさんNGNG
g++がどんなアセンブリコードを生成するのか説明したよいサイトはないですか?
できれば日本語のがいいのですが。。。
やっぱりgcc.gnu.orgのやつを熟読しないとだめかな?
0052デフォルトの名無しさんNGNG
なにがしたい?
0053デフォルトの名無しさんNGNG
・・・スレをあげたかっただけです。全て見透かされてましたね。エヘヘ
0054 NGNG
gcc で NASM 構文のインラインアセンブラが使えるパッチとかってない?
0055名無しさん@お腹いっぱい。NGNG
>>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
$
0056^^NGNG
【不幸のレス】
   このレスを見た人間は十三日以内に死にます。
      ※あなたに訪れる死を回避する方法が一つだけあります。
     それはこのコピペを一時間以内に7つ、別のスレに貼り付ける事です。
0057デフォルトの名無しさんNGNG
 コピペをするときは 
 E-mail欄に元スレを書き込んでください

これがあればもっと面白かったかも
0058デフォルトの名無しさんNGNG
>>51
man objdump
0059デフォルトの名無しさん NGNG
>>58
サンキュッパ あgえ
0060   NGNG
あげ
0061デフォルトの名無しさんNGNG
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).
0062デフォルトの名無しさんNGNG
hozen
0063デフォルトの名無しさんNGNG
【不幸のパッチ】
   このパッチを当てた人間は十三日以内に死にます。
      ※あなたに訪れる死を回避する方法が一つだけあります。
     それはこのパッチを一時間以内に7つ、他人のGCCに当てる事です。
0064デフォルトの名無しさんNGNG
3点、やりなおし
0065デフォルトの名無しさんNGNG
        すでにここは 乂 1000取り合戦場 乂 となっています。
 
      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/|ii|U|ii|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
0066デフォルトの名無しさんNGNG
マンセー         
0067デフォルトの名無しさんNGNG
mingwいい加減にgcc3.xxでビルドしてくれー
cygwin使いたくないよ〜
0068デフォルトの名無しさんNGNG
cygwinマンセー
0069デフォルトの名無しさんNGNG
cygwin の gcc 3.xx にしてフォスィ
0070デフォルトの名無しさんNGNG
ンダンダ
0071デフォルトの名無しさんNGNG
gccのソースって異様にきたなくね?
中見ても何がなんだかさっぱり分からん。
mdファイルをどう処理してるのかだけでも
理解しようと思ったんだけど、しんどい。。
0072デフォルトの名無しさんNGNG
cygwinにもjava処理系が入っている! ?
0073デフォルトの名無しさんNGNG
速く3.1が出ないかな。ワクワク
0074デフォルトの名無しさんNGNG
>>71
http://www.sra.co.jp/wingnut/gcc/gcc-j.html#Passes
このあたりがソース解析の鍵かな。
これはいいドキュメントだから保存しておいてもいいかも。
0075デフォルトの名無しさんNGNG
gcc に限らず GNU のソースって汚くて読みづらい。
0076デフォルトの名無しさんNGNG
gdbって デバッグAPIとか提供してないのかな。
gdbのエンジンでフルスクリーンのGUIデバッガ作りたいYO!
0077デフォルトの名無しさんNGNG
>76
cygwin の gdb ではダメなのか?
0078デフォルトの名無しさんNGNG
>76
GVDの日本語表示対応を熱烈に頼む。Adaで書いてあるけど(w
http://libre.act-europe.fr/

GVD大好き。最高。
0079デフォルトの名無しさんNGNG
gccは普通、何と呼ぶのですか?
私はグッシッシと呼んでます。グッシッシ
0080デフォルトの名無しさんNGNG
じーしーしー
0081デフォルトの名無しさんNGNG
>>79
あまりの下らなさに笑ってしまった、、、鬱
0082名無しさん@お腹いっぱい。NGNG
>>71
Emacsも昔からあるところはヒドイっすよ…Stallman先生…

>>75
一般化しすぎ。
0083デフォルトの名無しさんNGNG
つまり、オープンソースの本締は「恥ずかしがっちゃだめ☆」だと…
0084デフォルトの名無しさんNGNG
そうそう。だよね。
ネーミングは、プログラマーの心意気なんだよね。グッシッシ
0085デフォルトの名無しさんNGNG
GNUは明らかにBSD関連とは文化が違うんだなって思ったよ。
0086デフォルトの名無しさんNGNG
今週中にgcc3.1が出ると予言
0087デフォルトの名無しさんNGNG
外れたら首くくって氏ね。グッシッシ
0088デフォルトの名無しさんNGNG
既に3.1(CVS)使ってますが何か?
本当にリリースされるなら嬉しいが。
0089デフォルトの名無しさんNGNG
>>86
既に5月1日に延期されてますよ?
http://gcc.gnu.org/ml/gcc/2002-04/msg00514.html
0090デフォルトの名無しさんNGNG
gccマスタの人は-drオプションでの出力も理解できるのでしょうか?
あれ、意味がさっぱり分かりません。
0091名無しさん@お腹いっぱい。NGNG
マスターどうのこうのよりも、
読む必要のある人、読みたい人が読むってことだから、
そうであるなら${GCC-SOURCE}/gcc/doc/rtl.texiを読め。
でなければ、( ゚д゚)ポカーンでよいではないか。
0092デフォルトの名無しさんNGNG
gcc version 2.95.3-6 (mingw special)
というのを使ってみたんだけど、
同じプログラムをbcc32でコンパイルしたら
異様に早くなった。
もともと時間かかる処理なんだけど、
bcc32で実行時間4分。
gcc 待ちきれなくて強制終了(w

こんなもんなんですか?
ちなみにcygwinでのgccは速かったです。


0093デフォルトの名無しさんNGNG
早くなったんじゃなくて、たまたま動いて(以下略)
0094名無しさん@お腹いっぱい。NGNG
>>92
つーか、そんな事書いている暇あったら他のプログラムで試してみろ。
0095デフォルトの名無しさんNGNG
cl(vc++) 最適化:普通
bcc32 最適化:芋
gcc 最適化:幼稚園児の日本語並み
0096デフォルトの名無しさんNGNG
gccに性能を求めるのは間違ってるだろ。
0097デフォルトの名無しさんNGNG
>>95
自分が無数の最適化オプションを使いこなせないからといって幼稚園児並と表現するのはどうかと。
0098デフォルトの名無しさんNGNG
>>95
お前がgccを直せ。
三島のような日本語を話せるようにまでしろ。
そして俺たちに使わせろ。
0099デフォルトの名無しさんNGNG
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を使用しているのですが、テンポラリファイルの作成される
タイミングかなにかが影響しているのでしょうか?

なにか情報があれば教えてください。
0100デフォルトの名無しさんNGNG
100げと。
>>99
メモリが足らないんだよ。
最近出たマシンに買い換えなさい。
010199NGNG
最近出たマシンに買い換えて、ついでにcygwinを最新版にしたら
コンパイルできないという罠。 …なんです。
メモリは 512M 積んでいるんです。
0102デフォルトの名無しさんNGNG
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.

これってどんなもんなんでしょうかね?
0103仕様書無しさんNGNG
>>102
それってRTL勉強しなおしってこと?
今一生懸命勉強してんだぞ!ゴルァ!!!
0104名無しさん@お腹いっぱい。NGNG
>>103
いや、instruction scheduler(の候補が出たきた)だけでしょ。
0105デフォルトの名無しさんNGNG
-march=athlon
0106デフォルトの名無しさんNGNG
>>67
http://www.geocrawler.com/archives/3/6013/2002/4/100/8422034/
3.1のMinGW版作れるみたいっすよ。
実際自分で作成してベンチマークとってみたんだけど、-march=pentium3 -msse
でoptimizeしてもgcc-2.95.3-7とそれほど変わらなかったのだが。
0107デフォルトの名無しさんNGNG
>>95
最適化スイッチいじればgccでも結構いけると思うのだが
0108名無しさん@お腹いっぱい。NGNG
>>107
つーか、>>95は単なる煽りだって。bccより悪いわけがない。
bccは「最適化はしてない」と言っていいくらい。
0109デフォルトの名無しさんNGNG
いやー、コンピュータに幼稚園児なみの日本語が喋れるわけ
ないんだから、>>95はgccを絶賛してるんでは?
コンピュータのレベルを越えてると。
0110デフォルトの名無しさんNGNG
gccの最適化スイッチって、何使っている?
-finline-functions -fomit-frame-pointer -funroll-loops
程度しか追加していないけど。。。
0111デフォルトの名無しさんNGNG
>>110
-fomit-frame-pointer
は -O オプション指定だけで付くらしいよ。
0112デフォルトの名無しさんNGNG
-O6
0113デフォルトの名無しさんNGNG
>>112
pgcc使っているから?
0114デフォルトの名無しさんNGNG
-O157
0115デフォルトの名無しさんNGNG
-OOO-
0116デフォルトの名無しさんNGNG
gccマンセー!!!
0117デフォルトの名無しさんNGNG
ccさくらタンのグロ画像キボンヌ
0118デフォルトの名無しさんNGNG
gcc3.1出たよー
0119デフォルトの名無しさんNGNG
20020506のsnapshotじゃまだ
-fpmath=sse
のオプションがうまく使えなかったんだけど、直ったのかな?
0120_NGNG
>>71
確かに。効率は良さそうだけど。俺の汚物見てくれよハァハァ
って感じがする(;´Д`)
0121デフォルトの名無しさんNGNG
gcc3.1
http://gcc.gnu.org/
やっとメインページ更新。さて落として使ってみるかな。
0122デフォルトの名無しさんNGNG
早くDebianに取り込まれないかな
0123デフォルトの名無しさんNGNG
>>119
スマン。別のソフトでは使える場合もあった。
ダメだったのはnbench-2.1のHUFFMANのところで
セグメンテーションのエラーが出たところだった。
0124デフォルトの名無しさんNGNG
ダウソ中。それにしてもデカイ・・・
0125デフォルトの名無しさんNGNG
>>67
まだベータリリースだけど、出たみたい。
http://www.geocrawler.com/lists/3/SourceForge/6013/25/8692236/
0126デフォルトの名無しさんNGNG
リンカースクリプトってむずかしい
0127デフォルトの名無しさんNGNG
とりあえず、Linuxのカーネルはいける。
0128デフォルトの名無しさんNGNG
Solarisで makeにしっぱいしたよ!!
0129デフォルトの名無しさんNGNG
>>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 は付きません。
0130デフォルトの名無しさんNGNG
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)
$
0131デフォルトの名無しさんNGNG
attributeって関数のシンボルに反映されないんじゃない?
上書きが警告されないというのも変だけど...
0132デフォルトの名無しさんNGNG
$ 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'
0133デフォルトの名無しさんNGNG
>>132
.c だけじゃなくて、.cc でもやってみよう。
0134デフォルトの名無しさんNGNG
.cc → エラー無し(130)
.c → エラー(132)
0135デフォルトの名無しさんNGNG
>>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
になってしまって、どっちやねん!
0136デフォルトの名無しさんNGNG
GNATSで報告してこいや
俺英語ダメだから頼むわ
http://gcc.gnu.org/cgi-bin/gnatsweb.pl
0137 NGNG
gcc3.1age
http://www.t.ring.gr.jp/pub/GNU/gcc/
0138デフォルトの名無しさんNGNG
MinGWも3.1age
http://sourceforge.net/project/showfiles.php?group_id=2435
0139デフォルトの名無しさんNGNG
writeとかreadとかを自分で書いたのに置き換えたいんだけど
libcのコンパイルをしなおさないで済ます方法をおしえてくり。
0140デフォルトの名無しさんNGNG
>> 139
LD_PRELOADとか使って普通にinterpositioningするんじゃだめ?
0141139NGNG
>140
スタティックリンクしたいんだけど。無理かな?
0142デフォルトの名無しさんNGNG
>>139
Linuxだったら/usr/lib/libc.soをテキストエディタで覗くと幸せになれるかもしれない。
0143デフォルトの名無しさん NGNG
$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 )

これってどういう意味?
0144142NGNG
-lcの時、/lib/libc.so.6を見てから/usr/lib/libc_nonshared.aを見るようにできるんじゃないの?
これを利用すれば一部の関数だけオーバーライドできそうだけど。
0145140NGNG
>> 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
$
0146デフォルトの名無しさんNGNG
>>139
そのwriteとかは自分が呼ぶだけ?
それともprintfとかが呼ぶwriteも置き換えたいの?
どっちだろう。
0147139NGNG
>146
printfが呼ぶ奴も乗っ取りたいのでシュ!
0148デフォルトの名無しさんNGNG
>>79
笑った。
0149デフォルトの名無しさんNGNG
>>147
それは出来ない。libc作り直せ。
0150デフォルトの名無しさんNGNG
>>149
昔のUNIX系の処理系では乗っ取れてしまうものがある。
これって、ANSI C的にはまずいんだけど。
というわけで>>139よ、古いUNIXを探してみたらどうだろう。
0151139NGNG
newlib作り直してまーす。
writeとかその辺の底辺チックな分を全部取っ払って
自分libをリンクしないとダメなようにしてみてます。

でも、本当は
#ifndef hoge
void hoge( int fd, char* buf, size_t size){ return 0; }
#endif
みたいな仕掛けを作りたいです。

Javaでいうところのオーバードライブでしたっけ? そんな感じ
0152デフォルトの名無しさんNGNG
Javaでいうところのスーパーチャージャーです。
0153デフォルトの名無しさんNGNG
>>151
ふぁらんじゃーでジェットサウンドの方が効率良いよ。
0154 NGNG
gccってどこから落とせばいいの? >>155-1000
0155デフォルトの名無しさんNGNG
www.google.com
0156デフォルトの名無しさんNGNG
アーカイブにチョクリン求む
0157デフォルトの名無しさんNGNG
>>156
何用のどのGCC?
とりあえず http://gcc.gnu.org/ がホームだが
0158 NGNG
>>155
ありがとう!ずっと探してました〜!!
0159デフォルトの名無しさんNGNG
http://goof.com/pcg/
0160 NGNG
グッシッシage
0161デフォルトの名無しさんNGNG
Javaでいうところのオーバードライブage
0162デフォルトの名無しさんNGNG
gccのJavaはSwingはおろかAWTさえ使えないんですよね。
これって何か使い道あるんでしょうか。
0163デフォルトの名無しさんNGNG
public class test {
public void main(String a[]) {
System.out.println("hello,World!");
}
}
をコンパイル、実行して「Javaできます!!」と履歴書に書けます。
0164デフォルトの名無しさんNGNG
>>163
すばらしい!!
ぼくもgccしたい!!
でもディス鳥TL8はgcc 2.96だ。
よほどバグでもあるんだろうね。3.x
0165デフォルト名無しさんNGNG
>>164
Debian使え
0166デフォルトの名無しさんNGNG
>>164
Turboがやる機内だけ。
0167デフォルトの名無しさんNGNG
>>164
自分でバージョンageれ。
0168デフォルトの名無しさんNGNG
アセンブルしたとき、アセンブラとCとの比較をしたいとき
アセンブラのある行が、Cのどの行がコンパイルされてできたものかを
知りたいときはどんなオプションをつければいいのでしょうか?
0169デフォルトの名無しさんNGNG
>>162
SWTは使えるけどね。
0170デフォルトの名無しさんNGNG
標準ライブラリ使ってないのに、勝手にmemcpyとかmemsetとか使われて
リンクエラーになる。
ちょーウザい。どうにかならない?
0171名無しさん@お腹イパーイ。NGNG
>>170
-fno-builtin

// -ffreestandingな人なのかな?
0172名無しさん@お腹イパーイ。NGNG
>>171
ごめん。
-fno-builtin(あるいは-ffreestanding)するとlinkしようとするってことだね。
逆だね。-ffreestanding -fbuiltinだね。
0173デフォルトの名無しさんNGNG
>171
いやーそれつけてもダメなの。困った困った。
0174名無しさん@お腹イパーイ。NGNG
じゃあ、-daとsource codeだ(w
0175御茶目菜子NGNG
GCCだって?バカじゃないの?
いまのじだいポケコンBASICじゃんか
0176デフォルトの名無しさんNGNG
cygwinとかfreebsdがgcc3.xに移行しない理由はなんだろな〜♪
0177デフォルトの名無しさんNGNG
>>175
BASICスレに逝けよ。

>>176
まだ不安定なんじゃない?
俺の所にもmingwのGCC 3.0があるんだけど、なんか癖有り状態だし。
0178御茶目菜子 NGNG
gccなんてうんこだね。
BASIC使えないんだって?
どんくさ〜
0179デフォルトの名無しさんNGNG
gcc使ってる奴は在日
0180168NGNG
うーん。これってアセンブラのオプション、だよね?
全然わからん・・・
0181デフォルトの名無しさんNGNG
>>176
http://cvsweb.freebsd.org/src/contrib/gcc/version.c?rev=1.2&content-type=text/x-cvsweb-markup

FreeBSDのgccは3.1ですが。
0182デフォルトの名無しさんNGNG
>>168
おれもわからん。
-Sのアセンブラ出力にCコードをコメントで入れてホスイってことね。

しょうがないから-g -cで一回objに落として
objdump -d -Sで見てる
0183168NGNG
>182
ナイス! とりあえずその手でいかせてもらうよ。
次に生まれ変わった時は、アンタと結婚したいな。
0184デフォルトの名無しさんNGNG
>>170
gcc -v してみると、リンクするときに自分が作ったやつ以外の
.o がリンクされてない?(crtなんとか.o とか)
crtなんとか.o とかが原因だったら、そのソースをmemsetとか使わずに
書きなおせばいいんでは。
0185デフォルトの名無しさんNGNG
crt*.oって標準ライブラリにリンクしてあるの?
あれってただのスタートアップルーチンかなって思ってたんだけど。
0186デフォルトの名無しさんNGNG
crt*.oじゃリンクしてないと思うけどなぁ。nmで調べてみ。
どの関数で参照してるかとか、リンカのメッセージに出てないの?
0187デフォルトの名無しさんNGNG
>>185
crt*.oって標準ライブラリみたいなもんだけど、それはオプションで切れるよ。

>>184
memsetとかって、例えば構造体とか配列とか作ったときに勝手に初期化するもんで
(最近のgccって賢いよな) それ用にmemsetを勝手に呼ぶようにコンパイルするんよ。
自分で使ってなくても勝手にでてくるんだよね・・・
0188187NGNG
誤解招きそう
crt*.oはもちろんただのスタートアップルーチンだよ。うん。
0189デフォルトの名無しさんNGNG
http://bbs.fresheye.com/free/27384/denjyarast/
ここには東大を目指す受験生が集まってます
0190170NGNG
foo(unsigned int x){
const int hoge[4] = {0x00,0x20,0x33,0x54};
return x<4?hoge[x]:-1;
}

まあこんな関数があったとして、-nostdlib でコンパイルすると
memcpyが必要、とか言われるんですけどなんででしょうか?
アセンブラ読んでもmemcpyなんて出て来ないし・・・
0191デフォルトの名無しさんNGNG
>>170
static const int hoge...

ほんとーにアセンブリ吐かせたか?
0192170NGNG
>191
おー素晴らしい。オレが一方的にバカだったみたい。 なるほどね。3日悩んじゃったよ

でもアセンブリ吐かせてmemcpyでてこなかったんだよなぁ。
objdump -D hoge.o | grep mem で確認してたんだけど・・・
0193デフォルトの名無しさんNGNG
>>151
ENTRY
0194デフォルトの名無しさんNGNG
グッシッシ
0195デフォルトの名無しさんNGNG
次のDebianはgcc3.1でパッケージ作るのかな?楽しみー
0196デフォルトの名無しさんNGNG
グッシッシ
0197g++NGNG
グッピッピ
0198h8300-hms-gccNGNG
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です。
0199デフォルトの名無しさんNGNG
お前が改良しる
0200デフォルトの名無しさんNGNG
>>198
incはUパイプOnlyだからかと。
演算はleaとかaddにしたほうがいい。
0201182NGNG
>183
objdump -d -Sだとexternシンボルが-見えないので
objdump -d -S -rのほうが吉。
0202デフォルトの名無しさんNGNG
CPUごとってーかアーキテクチャごとに最適化の仕方とかを記した
ファイルがあるらしいのですが、いったいどのファイルでしょうか?

また、それらを改造して自分好みの最適化を編集できるでしょうか?
0203仕様書無しさんNGNG
*.mdってファイル。
自分好みの最適化って何?
0204デフォルトの名無しさんNGNG
>203
例えばビット演算が装備されてるCPUにおいて
1ビットのビットフィールド使っているときとか
自動的にビット演算命令を使うように
コンパイルしてほしいのですよ。

*.md、見てみます。
0205デフォルトの名無しさんNGNG
pragmaって行儀が悪いから使うな って聞いたんだけど、どうなのかな。
0206デフォルトの名無しさんNGNG
行儀が悪い悪くない以前に、pragmaは標準じゃ出来ない拡張を施す物で、
どうしても必要なら使わざるを得ない。
それから#pragmaって書くけど、プリプロセッサが理解する物ではない。
0207デフォルトの名無しさんNGNG
#pragmaは、処理系に定義されてないものが書かれても単純に無視する
だけだけど、偶然違う意味のパラメタの文字が一致したりすると悲惨。最小限に
使おう。
0208デフォルトの名無しさんNGNG
俺が作ったコンパイラは知らない#pragmaがあるとファイルを全て消しにかかるから
気をつけてくれ
0209デフォルトの名無しさんNGNG
>208
こわっ!
0210デフォルトの名無しさんNGNG
>>208
逆ギレコンパイラかよ!
0211デフォルトの名無しさんNGNG
>>208
それはANSI-C規格に沿ってないね。
0212デフォルトの名無しさんNGNG
割り込みハンドラを書くと、レジスタの退避を勝手に書き出してくれるけど
どう考えても余計なレジスタ退避までやってて非効率的。
こういう定型処理なところは最適化の対象にならないのかな?
0213デフォルトの名無しさんNGNG
> 割り込みハンドラ

VC++でいうところのnakedはないのかな?
0214デフォルトの名無しさんNGNG
おまんこ
0215デフォルトの名無しさんNGNG
>212
割り込みが頻繁に発生するの?効率を気にするほども?
0216デフォルトの名無しさんNGNG
MinGWの3.1使ってます。
__gxx_personality_v0
が出ちゃうのはどうにかならんの?
次のlibc待つしかないのかな?
0217デフォルトの名無しさんNGNG
g++でコンパイソするとなんとかテーブルっていうのが入ってるから実行ファイルが大きいのですか?
0218デフォルトの名無しさんNGNG
strip汁
0219デフォルトの名無しさんNGNG
2.95で-fexceptionsオプションをつけたら、
terminate__Fvが定義されていない、みたいなこと言われました。
これってどうすればいいんですか?
0220195NGNG
GCCか。
数値解析屋としてはさらなるチューンを望むな。
0221デフォルトの名無しさんNGNG
リンクもg++でやるか、もしくは-lstdc++オプションをつけよう。
0222デフォルトの名無しさんNGNG
GCCのソース見てみたら数学関数がアセンブラになてた。。。
ショック
0223デフォルトの名無しさんNGNG
>>217
2.95.2までは小さかったけど、3.1になってから実行ファイルが大きくなった
みたいだ。おそらくライブラリの大改修が行われてスタティックリンクする
ファイルが増えたと見られる。
0224デフォルトの名無しさんNGNG
自慰しぃーしぃー
0225デフォルトの名無しさんNGNG
gccは一般にunix等で使われるそうですが、windows版はあるのでしょうか?
0226デフォルトの名無しさんNGNG
(゚∀゚)あるよ
0227デフォルトの名無しさんNGNG
gnuサイトにあるのですか?
0228デフォルトの名無しさんNGNG
http://www.cygwin.com/setup.exeでインストール。
mingwって今独立してあるんだっけ?
0229デフォルトの名無しさんNGNG
インストール途中でフリーズしてしまいます。
どうすればいいのでしょうか?
0230デフォルトの名無しさんNGNG
>>229
ローカルにダウンロードしてからだと上手くいくかも
0231デフォルトの名無しさんNGNG
>>228
MinGWはDev-C++に含まれているので、それを使うと楽。
http://www.bloodshed.net/dev/devcpp.html
0232デフォルトの名無しさんNGNG
ソースはどのディレクトリに置いてとくもんですか?
0233デフォルトの名無しさんNGNG
/usr/src
0234FreeBSDキチガイNGNG
ふつー
/usr/local/src
0235デフォルトの名無しさんNGNG
漏れは~/src/*
0236デフォルトの名無しさんNGNG
mingw で gcc3.1 を使ってるんですが、

int main(void)
{
char a[1000000] = "";
return 0;
}

みたいなソースをコンパイルすると、
なんだか巨大な実行ファイルができてしまいます。
配列のサイズを変えれば出力ファイルのサイズも変わるし、
初期化しなければ普通の?サイズになります。

ming の gcc 2.95 では再現しません。
自分が厨なだけで、こんなもんなんでしょうか?
それとも gcc3 以降に新しいオプションでも追加されたのでしょうか?
0237デフォルトの名無しさんNGNG
>>236
1000000バイトの空文字列が初期化用に用意されるためです。
おそらくどのコンパイラを使っても同じような結果になるはず。
0238デフォルトの名無しさんNGNG
>>236
っつーか、空文字列だから、最適化の度合いによっては、0で埋める
ようなコンパイラもあるのか。
0239デフォルトの名無しさんNGNG
>>237はchar a[1000000] = {'\0'}; と勘違いしている。
0240デフォルトの名無しさんNGNG
>>239
同じです。

"abc"は{ 'a', 'b', 'c', '\0' };と等価なので、
同じと解釈するコンパイラがあっても間違いではありません。
0241236NGNG
>237
構造体の初期化のように、
配列内の全ての要素が 0 で初期化されるということでしょうか?
なるほどー。
厨で申し訳ないです… 勉強し直してきます。

ちなみに手持ちのコンパイラ(Win32)では、最適化なしで
bcc では gcc3.1 と同じ結果になり、
gcc2.95 と cl は小さいサイズになりました。
gcc3.1 でも -Os をつけるとサイズが小さくなりました。(-O2では駄目だった)
0242デフォルトの名無しさんNGNG
>>240
char *a = ""; と勘違いしていた。鬱氏。
0243デフォルトの名無しさんNGNG
>>238
gcc 2.95.3がそれやってる。
領域を確保して0をmemset
0244デフォルトの名無しさんNGNG
mingwの3.1のcoreとやらを入れて、適当なソースファイルをコンパイルしたところ

ld: cannot find -lmingwex

というエラーが出たんですが、これってライブラリが見つからないってことですか?

落としてきたgcc-3_1-core-20020516-1.tar.gzには、それらしいファイルが
ないっぽいんですが?
0245デフォルトの名無しさんNGNG
runtimeに入ってると思う
0246デフォルトの名無しさんNGNG
binutils
core
runtime
(libstdc++)
(make)
(w32api)
(gdb)
必須は上の3つ
0247244NGNG
>>245-246
ありがとうございます!助かりました!
なんかしょうもない質問だったのに、即レスありがとうございました
0248デフォルトの名無しさんNGNG
javaをnative compileしてどうするの?
0249デフォルトの名無しさんNGNG
age
0250デフォルトの名無しさんNGNG
>>248
実行するのでは?
0251デフォルトの名無しさんNGNG
>>248
C++のクラスとリンクできたりして楽しい。
0252デフォルトの名無しさんNGNG
ガベコレはどうなるのだろう。
参照カウントを内部でするような
コードを生成するのかな?
0253デフォルトの名無しさんNGNG
age
0254デフォルトの名無しさんNGNG
C++とjavaのインタフェースがあったのか
0255デフォルトの名無しさんNGNG
ガベコレはネイティブコンパイルしたときも動作するのか。
0256デフォルトの名無しさんNGNG
当たり前
0257デフォルトの名無しさんNGNG
なあんだ
0258デフォルトの名無しさんNGNG
3.*と2.95〜のライブラリって混ぜても大丈夫ですかね
0259デフォルトの名無しさんNGNG
>>258
ディレクトリ分ければ大丈夫
0260デフォルトの名無しさんNGNG
あ、言葉足らずでしたスミマセン
ある共有ライブラリはlibc++(2.95)を使い、
ある共有ライブラリはlibc++(3.0.4)を使っています。
これらを一緒に使っても問題ないでしょーか。
0261デフォルトの名無しさんNGNG
だめ
0262デフォルトの名無しさんNGNG
まじですか?
こりゃ困った・・・
0263デフォルトの名無しさんNGNG
>>262
ちなみに、どんな状況なの?
0264デフォルトの名無しさんNGNG
>>260
ライブラリをコンパイルしなおせばいいんじゃないかな
0265デフォルトの名無しさんNGNG
最新のgcc-20020708.tar.gz
をとってきて。コンパイルしますた。
だけど
gcc/cp/parse.h
がないとかエラーが出て
とまってしまいます。
だれかコンパイルできてるかたはいますか?
gcc/cp/parse.y
ならあるんですが。。。
0266260NGNG
状況ですが、2.95のほうはソースコードのないライブラリです
3.0.4のほうは自前なので、こちらを2.95でコンパイルすればいいんですけどね・・・

ところで、ダメな理由というのはどういうものなのでしょう。
0267デフォルトの名無しさんNGNG
>>265
まずflex/bison通せ
0268デフォルトの名無しさんNGNG
flex/bisonはインストールされてますし、
パスも通っています。
0269デフォルトの名無しさんNGNG
>>268
>>267の通せってのは、パスを通せって意味じゃなくて、
parse.yをbisonに通せって意味じゃないの?
0270デフォルトの名無しさんNGNG
configureでflex/bisonが見つかれば、必要に応じて自動的に呼んでくれるんじゃないの?
0271デフォルトの名無しさんNGNG
Linux上でGCC使ってるんですけど、エラーメッセージを
ファイルに落とすオプションって何なんでしょか?
検索かけたり、日本語マニュアルを読んだりしてみましたが
載ってないようなんです。

3年程前に参加していたプロジェクト(別の会社)では、確かに
エラーメッセージをログファイルに落として、それを元にエラー修正を
行っていたはずなんですが・・・当時の資料は当然持ってないので、わかりません。

誰か教えてください〜〜!(T-T
0272デフォルトの名無しさんNGNG
>>271
ねた?
0273271NGNG
いやマジで。マニュアルに載ってないでしょ?
0274デフォルトの名無しさんNGNG
>>271
(゚∀゚)はい、どうぞ >&
0275デフォルトの名無しさんNGNG
>>273
GCCのマニュアルには載ってないだろうな、当然。
man sh
0276デフォルトの名無しさんNGNG
漏れもネタ書こうかと思ったけど>>271にはかないません。
0277真271NGNG
いっぱい釣れた(w
0278デフォルトの名無しさんNGNG
>>277
恥ずかしいから篭ってていいよ
0279デフォルトの名無しさんNGNG
保守
0280デフォルトの名無しさんNGNG
gcc で Windows 向けの商用アプリ作っている人っているんでしょうか。
0281デフォルトの名無しさんNGNG
メーカーサポートとMSDNがあるんでVisualC++を使います。
0282デフォルトの名無しさんNGNG
 Mingw32 をソースからビルドしたいのですが、ソースの入手
先と、ビルド方について分かりやすく解説したページなど、
ございませんか。

 ところで、Mingw32 のソースは、Mingw32 そのものでビルドす
るのでしょうか。VC++ などでコンパイルするのでしょうか。
0283デフォルトの名無しさんNGNG
ビルド方--->ビルド法です。
スマソ
0284デフォルトの名無しさんNGNG
バイナリを配布してるとこと同じところにソースあるんでねーの?
Mingw32ってGPLだろ?
0285デフォルトの名無しさんNGNG
保守
0286デフォルトの名無しさんNGNG
win32でgcjをビルドした人っています?
0287デフォルトの名無しさんNGNG
AthlonXPに対してVisual C++とGCCで作った、エンコーダなどのバイナリで
どちらが速いかを比べてみたいのですが、GCCでWindows2000のDOS窓で動く
バイナリは作れるのですか?
どうもCygwinという環境の中でないとだめのようですが。。。
0288デフォルトの名無しさんNGNG
GNU + Cygnus(省略)

>>287
CygwinでもMingwでも落としてください。
0289デフォルトの名無しさんNGNG
>>288
ありがとうございます。
ひとつ賢くなれます太。
0290デフォルトの名無しさんNGNG
>>287
cygwin 版の gcc で cygwin1.dll を必要としないバイナリを作りたいなら、
コマンドラインオプションに -mno-cygwin つければ良い。
0291デフォルトの名無しさんNGNG
mingwパッケージを入れないと出来ない
0292デフォルトの名無しさんNGNG
__attribute__って結構面白いよね。
dllimport系以外、大抵はlibc位でしか使わないけど、
formatなんかは普通に便利。使っている人いる?
0293デフォルトの名無しさんNGNG
意味わからん
どういう物なのか教えてくれ
0294デフォルトの名無しさんNGNG
>>292
ハードウェアよりのコードを書くときには、aligned は良く使ってる。
0295デフォルトの名無しさんNGNG
>>294
>aligned
その手があった! もっと早く言ってくれよ・・・ もう手遅れだ
0296名無しさん@お腹イパーイ。NGNG
>>293
#pragmaみたいな非標準実装依存のqualifier。

例:
http://www.cygwin.com/ml/cygwin/1999-02/msg00484.html
0297デフォルトの名無しさんNGNG
RTLお勉強再開あげ
0298デフォルトの名無しさんNGNG
>>252
boehmのソースを見るのがよろし
0299デフォルトの名無しさんNGNG
http://www.geocities.co.jp/WallStreet/6351/alpha.html
このサイト、なかなか参考になるかも<RTL
0300デフォルトの名無しさんNGNG
ast-optimizer-branch を使ってる人はいますか?
0301デフォルトの名無しさんNGNG
おもしろいサイトを一つ見つけたので貼っときます
http://gccintrospector.blogspot.com/
0302デフォルトの名無しさんNGNG
ここはGNU C Compilerのスレ? それともGNU Compiler Collectionsのスレ?
0303デフォルトの名無しさんNGNG
Cllectionスレでしょ。
gcjでもgnatでもいいんじゃない?
使ってる人少なそうだけど。。
0304not302NGNG
>>303
gobjcって、使っている人多いのかな。
0305デフォルトの名無しさんNGNG
mingwのgcjを待ちわびているのは俺だけですか?
0306デフォルトの名無しさんNGNG
c99に対応するのはいつだ?
0307デフォルトの名無しさんNGNG
もう対応してるんじゃないの?
0308デフォルトの名無しさんNGNG
pragma全部対応してない
0309デフォルトの名無しさんNGNG
>>306>>307
http://gcc.gnu.org/c99status.html

ちなみにgcc-3.0.4では-std=c99付けないとC99の機能を使えない。
0310デフォルトの名無しさんNGNG
-Wall付けるとpragmaでwarningが出るんだけど
pragmaのwarningだけ止めれないかな?
0311デフォルトの名無しさんNGNG
良く分からんのですが、C99の仕様は完全に満たしている、
ということでしょうか?
C++はまだ追いついてませんよね?
0312デフォルトの名無しさんNGNG
gccがexportを採用すれば最強なんだが。
0313デフォルトの名無しさんNGNG
>>310
gccはそのへん弱いよね。俺も知りたいよ。
VCみたいに番号で抑制できればいいのにね。
0314デフォルトの名無しさんNGNG
>>311
まだ完全ではないがすでに仕様の大部分に対応しているということ。

> C++はまだ追いついてませんよね?

でも、3.xになってかなりまともになったよ。

boostというC++の最新の機能をバンバン使ったライブラリでregression test
した結果、
http://www.boost.org/status/compiler_status.html
http://www.boost.org/more/regression.html
http://boost.sourceforge.net/regression-logs/cs-win32.html
単純にfailの数からすれば、GCC-3.1はVC++やIntel、BCCよりまともらしい。
他がダメなだけなのかもしれないけどね。
0315デフォルトの名無しさんNGNG
gccは最適化が弱い
VCはおろかWatcomにも負ける
0316デフォルトの名無しさんNGNG
>>315
どこかに統計的な資料がある? 昔、C++ でマルコフ情報源を使って適当な
文章を書き出すプログラム(プログラミング作法で使ってたヤツね)を走らせて
みたんだが、コンパイラの差よりも STL の実装の差の方が大きかった覚えが。

(資料どっかにやってしまったが)
0317デフォルトの名無しさんNGNG
vectorのreserveで1000000000ぐらい確保すると
bad_allocをキャッチ出来ないでout of memoryって表示されて終了。
多分stlの実装の問題だと思うんだけど、
これなんとかなりませんか?

gccは2.94です。
0318315じゃないけどNGNG
>>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最強説は正しいっぽいと思われ。
0319317NGNG
自分でstlヘッダ書き換えて直しました。
こういう実装があるからstlは嫌いなんだよな。
0320デフォルトの名無しさんNGNG
stlのヘッダを書き換えずにアロケータを書き換えるか、
もっと下のレベルのnewを書き換えるとかするべきじゃないの、本来は。
0321デフォルトの名無しさんNGNG
>>317
STLport じゃだめかな?
0322317NGNG
>>320
言葉足らずスマソ、書き換えたのはアロケータです。

ところでスレ違いかも知れんが、ドラフトに完全準拠してる処理系ってあるのかな?
0323デフォルトの名無しさんNGNG
athlonだけで最強でもなあ...
0324デフォルトの名無しさんNGNG
>>322
なんでISじゃなくてDraft準拠なわけ?
0325デフォルトの名無しさんNGNG
ワロタ
草案に準拠って何ダロね
0326デフォルトの名無しさんNGNG
>>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の差は
大きいということになる。

でも、今のところ規格準拠度が他より高く、非常に多くのプラットフォ−ムに対応し、
一通りの最適化をしてくれる上、フリ−なんだから、普通に使う分には十分な性能だと
思うけどなあ。数値計算とかなら金払ってカリカリに最適化してくれるコンパイラを
買えばいいだけだし。
0327デフォルトの名無しさんNGNG
>>326
> 普通に使う
その「普通」に、実は 326 固有の使い方が投影されている可能性が高いと
思うが……。

なんにせよケースバイケースで、gcc が十分、あるいは gcc がベストの選択肢
となる用途もある。ただ、それを「普通」というと解釈が食い違ってフレームになる
可能性が高いから、ちと気をつけてくれ。
0328デフォルトの名無しさんNGNG
>>327
そうか?

「普通」というのは実行速度が極めて重要な分野など特別な事情がある場合以外
という意味だよ。

例えば、数値計算分野では、基本的に今まで計算機では計算できなかったものを
計算することに意味があり、どういう方法でもいいから速度が上がれば今まで計算
できなかった問題に対応できるようになるので、計算速度が一番重要。

でも、数値計算以外ではそこまで実行速度は重要ではないでしょ。むしろ、手軽に
入手でき、手元のプラットフォ−ムで規格に沿ったプログラムをちゃんとコンパイル
できるほうが重要。

全体的に見て、今のgccには大きな欠陥がなく他より優っている部分の方が多いん
だから、特別な事情がなければgccがbetterな選択になると思われ。

> なんにせよケースバイケースで、gcc が十分、あるいは gcc がベストの選択肢となる用途もある。

これってgccを別のものに置き換えても成り立つじゃん。

> それを「普通」というと解釈が食い違ってフレームになる可能性が高いから、ちと気をつけてくれ。

特別な事情がない場合を「普通」と呼ぶのがそんなに変か?
0329デフォルトの名無しさんNGNG
>>328
> 「普通」というのは実行速度が極めて重要な分野など特別な事情がある場合以外
> という意味だよ。
「特殊」は「普通」の裏返しだからな…

少なからず開発者人口がいる Win32 の分野なんかだと gcc は

- プリコンパイルヘッダに対応していないので <windows.h> 読み込むだけで
 時間かかりすぎ。
- UNICODE 対応がイマイチ
- 最新の Platform SDK に対応していない
- MFC, ATL/WTL, VCL といったクラスライブラリが提供されていない
- BoundsChecker のようなリソースリークを検出するツールなど、サードパーティ
 製品が充実していない

といった理由で、お奨めとは言いにくい。

「特別な事情」とか「普通」とか言わずに、具体例で示した方が話が建設的な
方向に進むと思うが、どうか?
0330デフォルトの名無しさんNGNG
>>326
> でも、今のところ規格準拠度が他より高く、
完全に準拠しているわけではないので、目糞鼻糞。
> フリ−なんだから、普通に使う分には十分な性能だと
性能の話しにフリーかどうかを持ち出すのはおかしいだろ。

漏れはgcc愛用してるが、少なくとも最適化は駄目だ。
信者じゃないんだったら駄目な部分も認識しておこうよ。
(athlonで最強ってのも、それこそ「普通」はathlonなんか使ってない)
0331デフォルトの名無しさんNGNG
>>329
そっちのほうが「特殊な事情」じゃないのか?
0332デフォルトの名無しさんNGNG
>>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の最適化は
駄目だ駄目だと言われ続けているのが不思議でたまらない。
0333デフォルトの名無しさんNGNG
特殊な場合/普通の場合なんて曖昧な良い方しないでさ、例えばLinux+Athronで
STL使わなければホゲホゲぐらい出るからフガフガだって言えばいいんでないの?
普通/特殊なんて人によって違うんだからさ。

// 本筋(どの場合にどの程度のパフォーマンスが出るのか)に関係ないからsage。
0334デフォルトの名無しさんNGNG
LinuxならIntelのコンパイラがタダであるし、
WinならVC++とIntelのがあるな。
標準準拠度もComeau C++ + VCで最強だが。
0335デフォルトの名無しさんNGNG
>>332
> 入手できないければ意味ないじゃん。
意味があるかどうかを決めるのは俺たちではなくて、ユーザの側だ。

332 の価値基準で「普通」とか「高価で買えないから無意味」とか言っても、
そんなことは誰も興味ないわけで。判断材料の一つとして

 gcc は無料というのはメリット

って形で提示しようよ。
0336デフォルトの名無しさんNGNG
>LinuxならIntelのコンパイラがタダであるし、
30日だけ??
0337デフォルトの名無しさんNGNG
>>332
むかーし、簡単な比較したときの書き込みを見つけた。てっきりム板だと思ったら
UNIX 板でやってたのか。

C++って使わないの??@UNIX板
http://pc.2ch.net/test/read.cgi/unix/1004227343/257
http://pc.2ch.net/test/read.cgi/unix/1004227343/265
http://pc.2ch.net/test/read.cgi/unix/1004227343/290

使ってる STL 自体がバラバラなんで、アレなんだけど。手元にいろいろ処理系
揃えてる人、いたら全部 STLport で統一してベンチマーク採ってみない?
0338デフォルトの名無しさんNGNG
>>336
は?評価版じゃなくて非商用版だよ
0339デフォルトの名無しさんNGNG
>>326>>332
こんなページ見つけた。

Linux Pentium III上でのIntel C++ 6.0とgcc-3.0.4とgcc-3.1の比較。
http://www.coyotegulch.com/reviews/intel_comp/intel_gcc_bench2.html

gcc-3.0.4の時点ではIntel C++の方が上という結論だったけど、この記事を
書いた直後に出たgcc-3.1で比較したら、gcc-3.0.4より悪くなっている場合も
あるけど、Intel C++よりgcc-3.1の方が速い場合もあり、どっちが上という
わけでもないという結論に変わったらしい。

これを見る限り、gccの最適化はもう駄目と言わせないレベルになったと
言ってもいいじゃないかな。
0340デフォルトの名無しさんNGNG
>>332
> > 性能の話しにフリーかどうかを持ち出すのはおかしいだろ。
> 入手できないければ意味ないじゃん。入手できないコンパイラの性能は実質0だ。
> C&C++最新規格完全準拠、最適化も最強、でも値段が1億円でライセンスガチガチ
> だったらあんまり意味ないだろ。個人だとVC++すら買えんやつ多いぞ。
「性能の話に値段は関係無い」って意味が分からないの?
そこで自分勝手な妄想コンパイラを例にあげるなよ。
0341デフォルトの名無しさんNGNG
で、普通とか特殊とか値段とかそういうfjチックなage足取りはどうでもいいから、

gccの最適化機能は、Intel C++やVC++と同レベルで、十分な最適化を行っている
っていう結論であってる?
0342デフォルトの名無しさんNGNG
つーか、コンパイラの最適化での実行速度の差が
問題になるアプリケーションっていまだにあるの?
0343デフォルトの名無しさんNGNG
>>342
ほとんどないだろーよ。
それが問題になる状況ってよっぽど「特殊」なんだけど、
ここの人たちがこれにつっこまないのがフシギ。

で、Draftに準拠(藁)の話はどうなったの?
0344デフォルトの名無しさんNGNG
>>342
もちろん、山のようにある。問題にならないアプリケーションも山のようにある。
0345デフォルトの名無しさんNGNG
そこらのPCで動くアプリでは、今や速度なんて問題にならない
アプリケーションがほとんどだと思うんだけど、
"コンパイラまかせで" 速度をアゲなければならないアプリを
具体的にアゲてもらえませんか?

MPEG4コーデックなんかはMMXなりSSE2なり使えばいいんだから除外ね。

シミュレーション屋さん?計算屋さん?天文屋さん?
0346デフォルトの名無しさんNGNG
Pentiumなんていいからさ、Itaniumの方はどうなのよ。
プロセッサ自体が出回ってるとかそういうことじゃなくて、、、
イタコンは漢のコンパイラって感じがするんだけどよー

intelとvc++とgcc、これについてはどんなもんでしょ。
0347デフォルトの名無しさんNGNG
Itaniumは専用コンパイラじゃないと性能発揮できないんでねーの?
0348デフォルトの名無しさんNGNG
なんか芳しいガキがまぎれこんだな。
ここはgccスレなんだよ。PC小僧はすっこんでろ。
0349デフォルトの名無しさんNGNG
>>345
> "コンパイラまかせで" 速度をアゲなければならないアプリを
> 具体的にアゲてもらえませんか?
それは問題定義が変。

速度を上げたければ、アセンブラで書くなり CPU 早いのに入れ替えるなり
方法はいくらでもあるわけだが、

 コンパイラの最適化が優れていることで、利益が出る

ならば、最適化が優れているコンパイラを選択することに意味がある。
アセンブラだと性能と開発費(人件費・時間)のトレードオフが発生する
から、コンパイラに任せた方が安上がりってケースもあるしさ。

あと IA-32 限定で話をする必要もないと思うが。
0350デフォルトの名無しさんNGNG
>>348
どうしても「gcc最高!」って叫びたいヤツが紛れ込んでるよな。
べつにgccがある面で他に負けてるからと言って、そいつのせいじゃないし、
冷静に比較検討すりゃ良いだけなんだが。
0351デフォルトの名無しさんNGNG
VC++ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> gcc
0352デフォルトの名無しさんNGNG
>>350
逆に「gcc最低!」って叫びたい香具師も紛れ込んでいるよね。できる
だけ根拠を出して議論してほしいなあ。>>351みたいに。
0353デフォルトの名無しさんNGNG
>>352
あ、>>351は「gcc最低!」って叫びたい香具師って意味ね。
0354デフォルトの名無しさんNGNG
>>352
> 逆に「gcc最低!」って叫びたい香具師も紛れ込んでいるよね。
いや「最低!」を主張するのは難しいと思うが。

lcc-win32 とかあるし。lcc は元々が「コンパイラの仕組み」を説明するための
教育用の処理系で、高度な最適化よりも単純な実装を優先してるから、仕方
ないと思うけど。

……もっと言えば、俺が昔、勉強がてら書いた処理系は、さらに酷い(w
0355デフォルトの名無しさんNGNG
>>354
論理的にgccを否定するならいいんだけど、そうじゃなくて、なんでもケチ
付けるアンチがいるでしょ?

まあ、死んじゃと安置の煽り愛は2chの鼻だからいいんだけどね。
0356デフォルトの名無しさんNGNG
gccは移植して使ってなんぼっていうものでしょ
0357デフォルトの名無しさんNGNG
>>355 文字から受ける印象と文意がかなり違うなあ、と珍しく思った。
0358デフォルトの名無しさんNGNG
>>356
gcc ってターゲットのアーキテクチャによっても、出力コードの良し悪しが
あるよな。IA-32 はユーザ数も多いし歴史も長いから、全く心配要らんけど。
0359デフォルトの名無しさんNGNG
>>358
そんなマイナーなものに使ってるの?
0360デフォルトの名無しさんNGNG
>>358
いや、一番枯れてんのは68k用だよ。
IA-32はアーキテクチャ的にはgccには不利。
これはgccのせいというよりIA-32が思いっきりカスなだけだが。
0361デフォルトの名無しさんNGNG
>>352
>できるだけ根拠を出して議論してほしいなあ。>>351みたいに。

VC >>>>>>>> gcc っつのも大して根拠ないやろ。
小手先の最適化で勝っても(そら他チップに対応してないし
ホームベースなんだからgccに負けたらアホやな)
Windowzはシステムが思いっきりカスやしね。
MCI コマンド MCI_WAIT で送ってみ、デバイスからリターンするまで
ビジーループで待っててスレッドのCPU使用率100%や。(ワラ
1クロック短くする前にシステムのカスな部分がなくなってから
自慢してや。>> VC擁護派
0362デフォルトの名無しさんNGNG
>Windowzはシステムが思いっきりカスやしね。
gccマンセー派だが、コンパイラの議論には関係ないと思う。

# ネタをネタと…だなw
0363デフォルトの名無しさんNGNG
GNUハッカーさんがお見えになりますた。
0364デフォルトの名無しさんNGNG
>GNUハッカーさんがお見えになりますた。
いつかそう言われたいもんだ(笑)
0365デフォルトの名無しさんNGNG
(゚∀゚) gccっつーか、GNU御用達環境の最大のメリットは移植性じゃないか?
ほとんど脳みそ使わずにi386からARMやらSH4からH8までサポートできるし。
なんつーか、メリットってそれだけだけどな。 あ、あと商用でもタダってのも。
0366デフォルトの名無しさんNGNG
>>365
> ほとんど脳みそ使わずにi386からARMやらSH4からH8までサポートできるし。
新しいアーキテクチャに対応する場合には、さすがにもうちょっと苦労するぞ。
組み込み用途なんかだと binutils と合わせて

- 対応アーキテクチャが多い
- 新しいアーキテクチャにも md ファイル書けば対応できる
 (既存のアーキテクチャの変種だと、特に簡単)
- クロスコンパイラが作れる

っつーあたりは、大きなメリットだな。

> なんつーか、メリットってそれだけだけどな。
また余計な一言を……。
0367デフォルトの名無しさんNGNG
あと、__atribute__が面白いこととか。
0368デフォルトの名無しさんNGNG
いや、文式のほうが便利だ。
0369デフォルトの名無しさんNGNG
gcc依存コードなんて書く奴はアフォ
0370デフォルトの名無しさんNGNG
gcc では -ansi と -pedantic を必ずつける!
0371デフォルトの名無しさんNGNG
>>370
基本じゃないのか? Makefileに書いてしまうけど…。
0372デフォルトの名無しさんNGNG
>>369
ヘッダがgcc依存している罠
0373デフォルトの名無しさんNGNG
>>366
>>また余計な一言を……。
デメリットを知っていながら隠さなくても

>>(既存のアーキテクチャの変種だと、特に簡単)
へぇ、簡単にできるのか。
0374デフォルトの名無しさんNGNG
>>373
> デメリットを知っていながら隠さなくても

デメリット指摘してないだろ?
>>365
> なんつーか、メリットってそれだけだけどな。
これじゃ、単に煽ってるだけだ。
0375デフォルトの名無しさんNGNG
>>374
日本語知らない奴に突っ込むなよ。
0376名無しさん@お腹イパーイ。NGNG
>>318
> VC++の最適化はだいたいIntel C++と同じくらいのようだから、

の資料は?
0377名無しさん@お腹イパーイ。NGNG
>>339
> これを見る限り、gccの最適化はもう駄目と言わせないレベルになったと
> 言ってもいいじゃないかな。

つーか、対VC++で「駄目」なんて言えるほど、極端に差が出たベンチ見たことない。
CPUたくさん対応してるから遅いだろうという思い込みや、
「駄目」ということにしたい人間がフレ廻っているだけと思われ

IntelやIBMが自社CPUに作ったcompilerはブッちぎりの速さなことがよくあるけど。

>>329
コードの最適化の話から外れてるじゃん(w
0378デフォルトの名無しさんNGNG
>>377
>IntelやIBMが自社CPUに作ったcompilerはブッちぎりの速さなことがよくあるけど。

漏れの環境ではインテル C++ コンパイラはかなり速くなったよ。

このサイトで日本語ヘルプが落とせる模様
http://www.xlsoft.com/jp/products/vtune/perftool.htm

ってかペンチの話だよね。漏れもベンチみたことないな・・。
横槍スマソ 逝ってきます・・・
0379329NGNG
>>377
> コードの最適化の話から外れてるじゃん(w
何か問題が?
0380デフォルトの名無しさんNGNG
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時間ほど、いろいろ試してこのエラーと格闘していましたが、結局、私の力
だけでは解決できませんでした。
全く同じエラーメッセージがふたつ出てくるのもなにか怪しいですが……。
なにか、「こういうところはチェックしたか?」というヒントのようなものを
いただけたら有難いです。
0381デフォルトの名無しさんNGNG
>>329
>少なからず開発者人口がいる Win32 の分野なんかだと gcc は
>といった理由で、お奨めとは言いにくい。
それで何か言った気になってるの?おまえあほだろ。
Windowsでの一番いいコンパイラはVBに決ってんだろ。
0382デフォルトの名無しさんNGNG
いちばん早いのはRubyです。
0383デフォルトの名無しさんNGNG
gcc でSTL使うとエラーがでるのですが、
コンパイルオプションは何をつければいいのでしょうか?
(cygwin gcc 3.2 です。)
0384デフォルトの名無しさんNGNG
>>383
エラーメッセージは?
0385383NGNG
こんな感じです
/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

0386デフォルトの名無しさんNGNG
>>383
とりあえずコンパイルオプションに -v つけて実行した結果を見せてくれ。
0387デフォルトの名無しさんNGNG
>>383
g++でコンパイル汁!!
0388383NGNG
gcc -v test.cpp > out.txt
で
実行結果を出力できないのですが、
どうすればできるのでしょうか。
(out.txtに何も書き込まれない)
0389デフォルトの名無しさんNGNG
>>380
リンクのコマンド
0390デフォルトの名無しさんNGNG
gcc2.95.3で -fprofile-arcs を付けてコンパイルして実行した後
-fbranch-probabilities を付けてコンパイルしても
同じ実行ファイルが生成されるのですが
どうすれば違うファイルが生成されるようにできるのでしょうか
0391デフォルトの名無しさんNGNG
>>388
gcc -v test.cpp 2>&1 > out.txt
0392383NGNG
>>391
やってみましたが、テキストには出力されませんでした。...
その後、古いcygwinディレクトリをすべて削除し、installし直したら
g++でコンパイルできました。
>>384,386,387 ありがとうございました。
0393デフォルトの名無しさんNGNG
GrahamCentralCtation
0394377NGNG
>>378
いや、Intelの方が速いことが多い、と言ったつもり。分かりにくい文章でスマンが。

MIPSのコンパイラも(当時は)滅茶速いコードを生成した。
しか「も」データフロー解析アルゴリズムが美しい。
0395デフォルトの名無しさんNGNG
>394 MIPSのコンパイラも...データフロー解析アルゴリズムが美しい。
ぬ?GCCについての話じゃないけど、どう美しいか知りたいんいん。


0396デフォルトの名無しさんNGNG
小野寺めぐみのお○んこも美しい。
どう美しいか聞かれても答えようがない。
0397デフォルトの名無しさんNGNG
>>396
オパーイモナー
0398デフォルトの名無しさんNGNG
名器係数を定めるとか
0399395NGNG
>396
そういう時は、詳細がわかる参考文献あげて「これみろやゴルァ」とかするでしょうよ。
というわけで小野寺某の「おあんお」や「おあーい」の
詳細がわかる参考文献強くきぼんぼん。
0400デフォルトの名無しさんNGNG
エロバディXとかが参考になるかとおもわれ
0401デフォルトの名無しさんNGNG
今 gcc-3.2 のコンパイルしようとしているんですが、
その前に binutils-2.13 を入れた方がいいんでしょうか?
良く分からんのですが…

現状はこのような環境になっています
gcc 2.95.3-2vl20
binutils 2.11.90.0.8-8vl5
0402デフォルトの名無しさんNGNG
アーキテクチャの 3つ組はなによ。
sparc-sun-solaris2.8 で binutilsをいれてはあったことならあるが。
0403デフォルトの名無しさんNGNG
Slackware使ってるけど、binutils 2.12.90.0.9とgcc 2.95.3で普通に
コンパイルできた。昔みたいにコンパイルに丸一日…ってわけでもないだろうから、
とりあえずやってみてはいかが?
0404デフォルトの名無しさんNGNG
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 の訳があるんですが、これって参考になりますかね?
なんか、結構変わってるようだったんで、
見るだけにしといたんですが。
0405デフォルトの名無しさんNGNG
gcc4.2って使い心地どう?
0406デフォルトの名無しさんNGNG
>>405
>gcc4.2って使い心地どう?
( ゚д゚)ポカーン
0407デフォルトの名無しさんNGNG
gccは思ったより簡単にコンパイル&インストールできるよね。
glibcは・・・
0408デフォルトの名無しさんNGNG
使い心地…俺は使いモンにならないと思うが…。コンパイルできないモノとかあるし。
時間が解決するもんだと思うよ。
0409デフォルトの名無しさんNGNG
>>408
ネタ?
0410408NGNG
いままでVBしか使ったことがなかったんです。(;´д⊂)
0411デフォルトの名無しさんNGNG
正直でよろしい
0412409NGNG
>>410は偽者じゃないかと勘繰る俺
正直>>408の発言の真偽もさっぱり分からん俺
てゆうか最初gcc4.2が、さも実在するかのようにレスする
タイプのネタだとオモタ
0413408NGNG
…あー3.2のつもりでレスしたんだが。
0414デフォルトの名無しさんNGNG
今終了しました。pentium233で7時間…
javaとかadaとかfortranとかobjective-Cとかのフロントエンドも
全部コンパイルしちまった。使わねーけれども。
ああもったいね…。ソースからコンパイルすると、アンインストール
できねぇじゃん。make uninstallもダメだって
find -ctime -1 -exec rm {} \; とかでやればいいか…
0415デフォルトの名無しさんNGNG
>>408
数ヶ月前、GNATSに登録したけど、まだ直ってないらしい。
結局ソースを直す羽目になる。
0416デフォルトの名無しさんNGNG
つーかマジでgcc, binutils, glibcの間に依存関係とかってあるんですか?
古いgccと、新しいgccでは、binutilsのコンパイル結果が違うから、
新しいの作ったら、binutilsも作り直さないといけないとか。
厨でゴメンヨ!
0417デフォルトの名無しさんNGNG
卵が先か、鶏が先か…ってか(笑)
0418デフォルトの名無しさんNGNG
glibc2.2.5も無事作れました。
gcc3.2だと構文エラーっぽいものが出たので、2.95でやってみたら問題なく。
windowMakerのドックアプリ試しにコンパイルしてみて、
ちゃんと出来てたし、多分大丈夫だろうと思います。…
0419デフォルトの名無しさんNGNG
>>416
オブジェクトフォーマット(elf/coff等)が同じであれば基本的には問題ないはず。
デバッグ情報とかがうまく生成されないとかいうのがあるかもしれんが、
出来たバイナリを使うだけなら問題ない。
おいらは、同じ時期にリリースされた or binutilsが新しいのを使うようにしてる。
0420デフォルトの名無しさんNGNG
続き
glibc忘れた。
glibcはドキュメントに書いてあるバージョンを使えばいいんじゃない?
0421デフォルトの名無しさんNGNG
みなさんのgccを使うプラットフォームはなんですか?
私はLinuxや*BSD全般です。
0422デフォルトの名無しさんNGNG
>>421
SolarisとFreeBSDとcygwin
0423デフォルトの名無しさんNGNG
>>421
Cygwin と FreeBSD と PS2
0424デフォルトの名無しさんNGNG
FreeBSD プ
0425416,418NGNG
微妙な遅レスですが、レスサンクスでした
glibcは確かに面倒臭そうですね
コンパイル自体は簡単だったけど、入れ替えるのが…
割と長期戦というか、少しずつ情報集めながらやらないとダメかも。
まぁ精進します。では
0426デフォルトの名無しさんNGNG
>>424
むしろ、Cygwin プだろ。
0427デフォルトの名無しさんNGNG
ニポンジンのミナサンはNetかOpenツカイマショウ
0428デフォルトの名無しさんNGNG
g++って、最近のリリースでも、やっぱり空ループは消してくれないのですか?
0429デフォルトの名無しさんNGNG
Red Hat7.1に入っていたgcc2.96を今使ってるのだが
gcc3.2に移行を考えてます。

最適化とかは速くなっているのでしょうか?
0430デフォルトの名無しさんNGNG
最適化は速くならないだろ、うん。
0431デフォルトの名無しさんNGNG
>>428
そんなコト聞いてる時点でgcc3.2なんて使えない。気になるなら自分で調べれ。
できんのなら大人しくgcc 2.96.xか他のコンパイラでも使ってろ。

>>429
>Red Hat7.1に入っていたgcc2.96を今使ってるのだが
>gcc3.2に移行を考えてます。
ワラタ
0432デフォルトの名無しさんNGNG
429じゃないけど、さっき3.2に移行したけど何か?
>429
はなんか笑える話なのか・・・?
0433デフォルトの名無しさんNGNG
空ループってプログラマが消すものなんじゃないの?
0434428NGNG
>>431
なんで煽られてんだ?

「消してくれる」ことはないみたいですね。
> ...the current behavior is both sub-optimal and inconsistent
> and will change in the future.
この記述ってけっこう古いバージョンから変わってないみたいだけど、
ほんとで変えるつもりがあるのかが、気になります。

>>433
じぶんでループまわしてるとこはそれでいいんですけど、
テンプレートの中に書いてあるループがヤバ目のコードを吐いたりします。
0435デフォルトの名無しさんNGNG
>>425
両方入れておけば。ディスク食うけど。
様子を見ていらん方を消せばいい。
0436デフォルトの名無しさんNGNG

> C:\DOCUME~1\usrname\LOCALS~1\Temp\ccaQaaaa.o(.text+0x20):voice.c: undefined reference to `PlaySoundA@12'

 厨ですが失礼します。
 MinGWを最近いじり始めたのですが、こんなエラーが出て。
 いちおー匿名にしました( 'usrname\ ')が、他はメッセージ通り。
 スイッチは特に指定なし。

 今まで他環境で日本語化されたGCCだったのでいまいちピンと来ないのだけど、
これってリンカエラーですか?
 SorceForge.net で関係ありそうなバイナリは全て入れたつもり(教本掲載の窓だけ
表示するサンプルはコンパイル出来る)だけど、まだパッケージが必要なのかな〜。
0437デフォルトの名無しさんNGNG
>>436
ライブラリがリンクされてないだけじゃないの?
リンク時のオプションの最後に、
-lwinmm
をつければ大丈夫じゃない?
0438デフォルトの名無しさんNGNG
Simpleなねーみんぐのスレっすな
0439436NGNG
 いえ、変わりませんでしたね。
 これで私のタイプミスだったら御笑いなんですけどね・・・(^^;
0440デフォルトの名無しさんNGNG
>>436
w32api いれてる?
コンパイル時のコマンドラインは?
gcc -o hoge.exe hoge1.o hoge2.o -lwinmm
みたいなのでは駄目?
0441デフォルトの名無しさんNGNG
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対応に期待して、とりあえず待っといたほうがいいかな。
0442デフォルトの名無しさんNGNG
>>441
これを機にコンパイル方法を覚えてしまうとか
0443436NGNG

 まずは、ごめんなさい。
 >436 でスイッチ指定してないとか書きましたけど、んな訳ないですね。
 バッチで処理しているからいちいち記述しないだけで、バッチ内ではこんな感じです。

> gcc -mwindows -owmp wmp.c

>>440
 はい、入れられる物は全て・・・と思ったけど確認してみたら入れてないし。
 w32api-2.0 を慌てて入れました。
 でも、変わらないです(^^;

 と言うか、重月程度しかまとまった日本語資料知らないのですが、
どこか御勧めのサイトってありますかねえ?
 皆さん、原文直接読めるんですね・・・。
0444デフォルトの名無しさんNGNG
>>443
PlaySoundA をインポートするためのライブラリが libwinmm.a 。
それが見つからないっていってんだから、リンクさせてやればいい。
この場合だと、
gcc -mwindows -owmp wmp.c -lwinmm
これで駄目なら、インストールがうまくいってないか、ソースが間違ってる。

とりあえず、gcc のマニュアルと MSDN くらい読んどけ。
0445デフォルトの名無しさんNGNG
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
としてます。
0446デフォルトの名無しさんNGNG
mona
 - libhoge.so
 - 2ch.so(hoge.soの関数を利用する為に-lhogeしました)

monaから
2ch.soの関数呼ぶとエラーになるんすけど、これはリンクのさせ方が悪いのでしょうか?
-lしないとそんな関数ねーよって言うし。
0447デフォルトの名無しさんNGNG
コンパイラとどんなエラーが出るのかを書かないと分からんよ.
0448デフォルトの名無しさんNGNG
コンパイラはエラー吐かないんす。
↑実は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)

このスレで聞いたのは間違いかも^^;
0449デフォルトの名無しさんNGNG
だからどんなエラーがでるのか書けって。

>このスレで聞いたのは間違いかも^^;
何様?
0450448NGNG
>449
いや、posgreスレの方かなと。
0451448NGNG
バッグエンドからは

NOTICE: Message from PostgreSQL backend:
The Postmaster has informed me that some other backend
died abnormally and possibly corrupted shared memory.

なのが帰ってきますが^^;、激しくすれ違いでした。
0452デフォルトの名無しさんNGNG
せっかくマターリとスレ進行してたのに台無しだな…夏休みは終わったってのに….

--------------------------------------------
↓ ↓ ↓ ここから先はマターリとおながいします ↓ ↓ ↓
0453デフォルトの名無しさんNGNG
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (゚Θ゚ )  <仕切り屋ウザイ Yo...!?
 (  U)  \________
 (__(_)))        

荒れてる方が面白いだろうーがボケぇー
0454デフォルトの名無しさんNGNG

#include <vector>

↑の1行だけのソースでも、g++ -g ってやるとテンプレートがらみの部分
に対応したデバッグ情報がけっこうでてきます。
ソースファイルが数百あって、だいたいどんなファイルでも
vector くらいインクルードされてると、
最終バイナリーの80%くらいがこのデバッグ情報の重複分になってしまいます。
なにかまちがってるような気がするのですが、こういうもんですか?
0455デフォルトの名無しさんNGNG
そういうものです。
変に省略されて、デバッガに嘘つかれるよりましです。
終わったらstripすればいいんだし。
0456454NGNG
>>455
vectorに関するコードが1ビットたりとも生成されてないのに、
嘘つくもなにもないと思うです。

> 終わったらstrip
デバッグ情報いるファイルのリストつくって、そいつらだけ -g とかしとこうと思いました。
0457勉強になりますたNGNG
>>454
重複するデバッグ情報って自動で削除されるんじゃなかったっけ…と思ったけど、
手元の資料見たらやっぱ手動でStripせにゃイカンらしい。

ちなみにその資料によると、stripしたバイナリは、他のstripされとらんバイナリの
デバッグ情報を利用できるそうだから、必要なモノだけ -g より、
不要なモノだけ strip の方が良いかも?
0458454NGNG
おいらの知識も結構怪しいので、も少し勉強しないとついていけませんな。
他のバイナリの情報を引っ張ってこれるなんて知らんかった。
0459454NGNG
>>457
> 不要なモノだけ strip の方が良いかも?
そっちも検討します。
情報ありがとうです。
ところでその資料ってやつがWebにあるもんなら、リンクいただけますかね?

>>458
騙りだー。
0460デフォルトの名無しさんNGNG
gcc で、標準入力からファイルを読み込んでコンパイルって可能でしょうか。
program | gcc -c -x c -o hoge.o
みたいに。
0461457NGNG
>>459
スマソ。情報ソースは「Linkers&Loaders」(John R.Levine著/オーム社)っつー「本」です。
一応巻末の参考文献から、参考になりそうなURLを1つ。
DWARF (ELF用デバッグ情報) 等についての解説がありまつ。
 http://developer.intel.com/vtune/tis.htm
0462デフォルトの名無しさんNGNG
>>460
#include "/dev/stdin"
↑の1行だけを書いた temp.c を作って
$ cat program.c | gcc -o hoge temp.c
0463デフォルトの名無しさんNGNG
ところでgccのjavaって、Javaの規格どこまで満たしてるの?
質問おかしいかな
Java1.2、Java1.3、とかあるじゃん
0464デフォルトの名無しさんNGNG
>>462
おお、こんな手があるとは!
ありがとうございました。
0465デフォルトの名無しさんNGNG
>> 463
gcjはコンパイルするまで、実行環境はlibgcj。
文法仕様は1.4のassertも可能なのでコンパイルしてclassファイルを
作ることはできるけど、実行で使うlibgcjにあるクラスはJDKに無いものも多い。
http://gcc.gnu.org/java/
0466458NGNG
>>461
あれっすか、途中までしか読んでないなー。
もう一回最初から読み直そうかな。

0467デフォルトの名無しさんNGNG
>>460,462
gcc -x c -でないの?
0468460NGNG
>>467
あ、- が使えたのか!
こっちのほうがすっきりしてていいですね。
ありがとうございます。
0469デフォルトの名無しさんNGNG
ぐっしっし
0470西安 ◆CYANh33g NGNG
MinGW-2.0.0 リリース!!
0471デフォルトの名無しさんNGNG
>>470
gcc-3.2 based ですなー
2.95 の1.xから乗り換えるべきか...悩む..
0472デフォルトの名無しさんNGNG
MinGWのバイナリ
http://members10.tsukaeru.net/bitwalk/download_mingw.html#mingw
0473デフォルトの名無しさんNGNG
gcc-3.1ブランチは捨てらしいね。
3.2がこれから主に使われていくとか。
0474デフォルトの名無しさんNGNG
3.1が3.2になって、3.2が3.3なったちゅー話やろ
0475デフォルトの名無しさんNGNG
先日 mingw を使い始めたのですが、
ShiftJIS 対応 gcc & windres はどこかに無いのでしょうか?

あと、フリーのリソースエディタってどこかにあるでしょうか?
lcc についてるのやら、BCCForm というのやらは見つけたのですが、
ちょっと使いづらくて…
0476デフォルトの名無しさんNGNG
>>475
自己レスです。
http://homepage2.nifty.com/tenk/lib/doc/cpp_sj.htm
に Shift-JIS 問題を解決する cpp0.exe のラッパーを見つけました。
試してみたところ、かなり便利です。
0477デフォルトの名無しさんNGNG
素朴な疑問
gcc及びGNUの提供するソフトによって
同人ソフトをつくり、ミケでの公開は可?
0478デフォルトの名無しさんNGNG
>>477
可能だが制約がある。どういう制約か? まずはこれ読む事から始められよ。
http://www.gnu.org/licenses/gpl-faq.ja.html

スレ違いsage
0479デフォルトの名無しさんNGNG
>478
gccで作ったバイナリだけは例外でGPLは及ばないんでは?
L/GPLライブラリを使えばL/GPLになるが。
0480デフォルトの名無しさんNGNG
LGPLでダイナミックリンクならLGPLの制限は免れる。
そうでなかったら、mozillaとかどーすんの?
0481デフォルトの名無しさんNGNG
一般にGPLのソフトの出力は、その出力にそのGPLのソフト自身の
ソースを含まない限り、GPLは及ばないと書いてあるように思ったから
gccだけが例外というわけではないんじゃないかな、多分。
0482デフォルトの名無しさんNGNG
これで合ってますでしょうか?

gcc及びGNUの提供するソフトを使用してクローズドなソフトを
開発してもよい。ただし、その出力にGPLソフトのソース(及び
オブジェクト)コードを含まないこと。

GPLソフトウェアは静的・動的ともにクローズドなソフトにリンクできない。
LGPLソフトウェアは動的リンクなら可能。

printf等が含まれるライブラリglibcはLGPLソフトウェア。
glibcを使用する場合は静的リンクならソフトウェアを
GPLソフトウェアとして公開すること。
さもなければ動的リンクにしなければならない。

でもさらにスタートアップコードやシステムコールの
ライセンスも絡んできますよね。
0483デフォルトの名無しさんNGNG
specs の書式を説明してるサイトってないっすか?
0484デフォルトの名無しさんNGNG
>>483
Google使えばたくさん出てきます、自分で調べてください。
0485デフォルトの名無しさんNGNG
>>483
gcc の info (Node: Spec Files) 読めば詳細に解説してあるが。
0486デフォルトの名無しさんNGNG
>>485
つーか一見して分からんか。
0487デフォルトの名無しさんNGNG
>>300です。
他のブランチ使うほどgccに入れ込んでるひとはやっぱり少ないみたいですね。
0488デフォルトの名無しさんNGNG
まあやってる人は2chなんか見てないだろうなあ
0489デフォルトの名無しさんNGNG
>>488
ですね。currentのソースコード読むだけでもかなり大変なので。。。
0490デフォルトの名無しさんNGNG
gcc で directx 8.1 アプリケーション書いている方は
いらっしゃいますか?
directx 8.0 はあるんですが directx 8.1 library(.a) が
見つからないんですが…。まだ誰も porting してないのかな?
0491デフォルトの名無しさんNGNG
>>490
lib(.a)なら簡単に作れるじゃん
0492490NGNG
>>491
よろしければ方法を教えていただけませんか?
Microsoft の directx8.1 ライブラリ (.lib) から
gcc のライブラリ形式 (.a) に変換する方法なのですが…。
reimp で変換してみたのですがうまく動かなくて…。
0493デフォルトの名無しさんNGNG
問題は D3DX8 なんだよね
0494デフォルトの名無しさんNGNG
>>492
変換しないで、自分で作れよ
0495490NGNG
自分で作れるものなのですか? >> 494
0496デフォルトの名無しさんNGNG
>>495
目的のDLLと呼び出し規約、名前、序数を一致させた
何もしないダミーのdllを作っれば、互換のライブラリが作れる
0497デフォルトの名無しさんNGNG
>>492
最近の binutils 使うと、そのままリンクできると思うが。
0498490NGNG
>>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
そのままリンクとは、こんなことができるということですよね…?
0499デフォルトの名無しさんNGNG
>>498
-mms-bitfield は?

他には、C で書いたのを C++ でラップするとか。
0500デフォルトの名無しさんNGNG
>>498
C++オブジェクトって?
エキスポートされているのは普通のstdcallのAPIだと思うが。
0501デフォルトの名無しさんNGNG
>>500
d3dx8.lib じゃないの?
これは、インポートライブラリじゃないし。
0502499NGNG
>>498
-mms-bitfields デスタ
0503490NGNG
どうも早くからレスに感謝いたします。

>>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 に部分的には対応したのですが…うーん。
0504490NGNG
>>502
ありがとうございます。
-mms-bitfields になおしてみたのですが…
lib は読めないみたいです。残念…。
0505499NGNG
>>504
試さずに書きつづけるのも気が引けるけど、
DirectX って、C からでも使えるんじゃなかったっけ?
C++ だと ABI の問題があるんで、一度 C から試してはどうでしょう。
で、リンクできたら、それを使って C++ 向けのラッパクラスを書くと。
0506デフォルトの名無しさんNGNG
>>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 でインストールしたヤツです。
0507490NGNG
>>505
ありがとうございます。試行錯誤していて遅くなりました。

COMインタフェースの部分は手順に従って…何とかリンクできるようになりました。
でも、C から使える部分でも Microsoft のスタティックライブラリに
コードが入っているものがあるので、これがリンクできないので
制限されてしまいます。ライブラリのコードが DLL になっているか
ソースが公開されてれば、エクスポートできるんですが…。戦略なのかも。

いまのところ DX8.1 SDK D3D サンプルの簡単なもの Lighting と Text3D は
コンパイルできるんですが…。スタティックリンクできないので複雑なものは
なんだかダメっぽいです…。
0508490NGNG
>>506
あ、どうもありがとうございます。
試してみます。
0509デフォルトの名無しさんNGNG
俺の彼女もGPLで外を歩いてます
0510デフォルトの名無しさんNGNG
ヤったら次の人へ紹介しなきゃいけないんですか?
0511デフォルトの名無しさんNGNG
いえ他の人に求められた場合に,
そうできる状況にあれば大丈夫です.
0512名無しさん@EmacsNGNG
自分の彼女はBSDライセンスです。
0513デフォルトの名無しさんNGNG
>>512
自分の彼女はシェアード・ソースです。つまり見るだけです。
0514あげNGNG
MinGWのShift JISの対応のさせ方教えてください。
0515デフォルトの名無しさんNGNG
>>511
あ,そうなんですか。ありがとうございます。
早速>>509の彼女探しに行ってきます
0516デフォルトの名無しさんNGNG
>>514
>>476 みろ
0517デフォルトの名無しさんNGNG
(´-`).。oO (509の彼女をオープンソースで開発したい・・・)
0518デフォルトの名無しさんNGNG
(´-`).。oO (病気をコミットするやついそうでやだなあ・・・)
0519デフォルトの名無しさんNGNG
別のブランチを孕ませる危険があるぞ。
0520デフォルトの名無しさんNGNG
下のソースをコンパイルすると
> 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;
0521デフォルトの名無しさんNGNG
>>520
myit クラスのメンバ変数 v の型が特定できんのでは?
0522520NGNG
//ソースはこっちのほうが適切だったかも

template<class T>
struct vt {
typedef T value_type;
};

template<class Cont>
struct myit : public vt<typename Cont::value_type>
{
value_type v;
};
0523520NGNG
>>521
見落としました。ごめんなさい。で、さらにごめんなさい、どういうことですか?
0524デフォルトの名無しさんNGNG
>>523
myit<mycont<int> >::value_type が定義されてない。
0525520NGNG
>>524
でも下はOKなんですよ。

struct int_type {
typedef int value_type;
};

struct myit : public int_type {
value_type v;
};
0526520NGNG
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;
};
0527デフォルトの名無しさんNGNG
リターンアドレスらしきところを書き換えて
マザーボードのビープ音鳴らすコード書いて、そこに飛ばしても
実行されない。もしかして、どこまで行ってもリターンアドレスがないのか?
とにかく、まだバッファーオーバーフローが成功できない。
0528527NGNG
お騒がせしました、落ち着きました。
部屋の空気を入れ替えたら難なくできました。
0529デフォルトの名無しさんNGNG
makefileでシェルスクリプトのまねごとをしたら駄目ですか?
板違いですがすいません
0530デフォルトの名無しさんNGNG
>>529
駄目じゃないです
0531デフォルトの名無しさんNGNG
>>529
> 板違いですがすいません
ってわかってるんなら、適切な板で聞きなよ。
まあ、make 使うのはプログラマが一番多いから、板違いとまでは言えない
と思う。
とりあえず、 make makes many problems
http://pc3.2ch.net/test/read.cgi/tech/1029599472/l50 あたりで
聞いてみれば ?
0532デフォルトの名無しさんNGNG
>>526
any_type<T>::value_type が型かどうかわからないから。
ひょっとしたら、後で
template<> class any_type<int> {
int value_type;
};
とか特殊化をされるかもしれないし。
0533デフォルトの名無しさんNGNG
>>526
T が未確定の時点では識別子 value_type の存在を認識できないので、value_type が型名であることを明示するために
typename value_type v;
とか書かないといけないんじゃないすか?
0534デフォルトの名無しさんNGNG
> typename value_type v;
こういう書き方はない。
typename T::value_type v;
のように限定子が必要。ただ今回の場合は、
typename any_type<T>::value_type v;
だけどね。
0535520NGNG
そうか特殊化があったか!サンクス。
//これでOK
template<class T>
struct myit2 : public any_type<T> {
typename any_type<T>::value_type v;
};
0536520NGNG
>>534
スマソ
0537520NGNG
ちょっとスレ違いぎみだけど、じぶんでイテレータ作るときは
たとえば
value_type &operator*();
じゃなく
T &operator*();
と宣言するのが正しいのかな?
0538保NGNG
―�\ソЫ�\�\�\�\噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭�\�\�x�x�\�\�\�\
 
0539デフォルトの名無しさんNGNG
gcc 3.2 (MinGW 2.0.0-3) で、
-arch=i686 としたバイナリは、AMD のどの CPU から動くんでしょうか?
0540デフォルトの名無しさんNGNG
>>539
DURON,ATHLONから間違いなく動く。手元で確認。
K6-2,3もたぶん大丈夫だったはず。手元に無いので味覚人。
0541539NGNG
>>540
情報サンクスコです。
ところで、もうすぐ K6-2 を触れそうなんですが、
どんなソースを使って確認したほうが良いんでしょうか?
今動いたとしても、変更後には当分確認できそうに無いので。
# -march=i686 ダッタ
0542デフォルトの名無しさんNGNG
つか、i686でも486以降なら動くんでない?
例外を捕まえてコードエミュレートするでしょ
0543デフォルトの名無しさんNGNG
>>540
CMOV インストラクションとかも実装されてたっけ?

>>541
そりゃ

1. gcc のソースを読んで、使っているインストラクションを確認。
2. AMD からプロセッサの仕様書を入手して、実装されている命令を確認。

だろう。PentiumPro で新規追加された命令に関しては Intel が Web で配ってる
Intel Architecture Software Developer's Manual Vol.1 に書いてあるから、それ
を参考に。
0544539NGNG
>>542-543
やっぱり、仕様書を突き合わせて確認するしかないですかね……
薄々そう思って落としていたので、読みに逝ってきます。
アリガトン。
0545デフォルトの名無しさんNGNG
>>544
参考になれば。
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=161700&repeatmerged=yes
0546539NGNG
>>545
K6-III でも i586 にして試してみて、と言われてるようなので、
とりあえずは i586 で逝っときます。
ありがとうございました。
0547デフォルトの名無しさんNGNG
アセンブラはCより速いって(最適化しやすい)聞きますが
gccはcc1がアセンブラを出力してasでコンパイルしますよね、
ということはgccにかぎってはインラインアセンブラを使っても
最適化には意味がないんでしょうか?
0548デフォルトの名無しさんNGNG
>>547
??よく意味がわからんが・・・・・・
インラインアセンブルしたらそのままの形で出力されるだろ。
当然最適化したかったら手で行わないと。
0549デフォルトの名無しさんNGNG
>>547
Cやasmのソースコードがどうバイナリに変換されて実行されるかを勉強しませう。
0550デフォルトの名無しさんNGNG
>547
最適化しやすい、というより、自由度が高い(プロテクトやセグメント、フラット
どうこうが絡んでいたらそれほど実感はできんが)
Cでは使えない機能を使う事が出来る。(CPU固有の命令やレジスタとかとか)

自由度が高いから、最適化しようと思えばCよりも最適化できる。
しかし、下手な最適化はむしろ逆効果。最近のはかなりややこしい。

最近のCPUはどれに合わせて最適化すれば良いのかさえ不明。
速度を稼ぐ意味もそれほど有るとも思えない。
自分が欲しい機能は既に誰かがライブラリ化しているかもしれない。

というわけであんまり触る必要はないだろう。それなりには楽しめるが。
勿論、CやC++やdel辺りがどのように実現されているかを学びたいのな
らその必要はあるかもしれん。
0551デフォルトの名無しさんNGNG
MinGW のメーリングリストがすごい事になってたよ……
0552デフォルトの名無しさんNGNG
>>551
なにがどうすごいのか50文字ジャストでまとめろ
0553デフォルトの名無しさんNGNG
本当にすごかったね……
0554デフォルトの名無しさんNGNG
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.
0555デフォルトの名無しさんNGNG
http://www.cise.ufl.edu/depot/www/ImageMagick/www/api.html
にあるサンプルプログラムをコンパイルしたところ、
./example.c: 4: magick/api.h ???????????????????
というメッセージが出てコンパイルできません。

たぶんパスが設定されていないことが原因だとおもうんですが、
どうしたらいいのか教えてください。

api.hのフルパスは
/usr/X11R6/include/magick/api.h
です。
0556デフォルトの名無しさんNGNG
>>555
> ./example.c: 4: magick/api.h ???????????????????
> というメッセージが出てコンパイルできません。
その前に
bash: Magick-config: command not found
のようなメッセージはないですか?
0557555NGNG
>>556
出ていません。メッセージは一行だけです。
0558デフォルトの名無しさんNGNG
>>557
入力コマンドは、
$ gcc `Magick-config --cflags --cppflags --ldflags --libs` example.c
で合ってますよね。
$ Magick-config --cflags
の結果はどうなります?
0559555NGNG
すいません
gcc example.c
でコンパイルしていました。

gcc `Magick-config --cflags --cppflags --ldflags --libs` example.c
を実行すると、エラーが山のように出てきます。

Magick-config --cflags
の結果は、
-g -02 -m486 -fno-strength-reduce
となります。

0560デフォルトの名無しさんNGNG
>>559
> gcc `Magick-config --cflags --cppflags --ldflags --libs` example.c
> を実行すると、エラーが山のように出てきます。
そのエラーを解析して、ソースを書き直していくしかないですね。

> Magick-config --cflags
すまんです。
$ Magick-config --cppflags
の方でした。そっちだと、ヘッダのインクルードパスを指定してくれます。
# エラーとは関係ないと思いますが ;-)
0561555NGNG
すいません、
ライブラリもサンプルプログラムも間違っているはずは
ないと思うんですが……
0562デフォルトの名無しさんNGNG
>>561
どうやらネタにマジレスしていたらしい。
欝山車能
0563555NGNG
ぜんぜんネタじゃないんですが。
ネタだと思われたなら、申し訳ありません。
0564デフォルトの名無しさんNGNG
エラーメッセージが????になって、原因が分からない、ということ?
それならLANG=C gccとすれば英語でエラーが出るから、その結果を見るべし。
0565562NGNG
>>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
を見てくれ。エラーメッセージが違えば、晒せ。
0566555NGNG
>>565
ありがとうございました。バージョンが少し小さかったようです。
Vine2.5についてたのをそのまま使ってたんですが、このさいアップデートしようと
思います。

で、もう一つだけ質問なんですが、この手の画像作成ライブラリで一般的な
のは他にありますか?
0567デフォルトの名無しさんNGNG
GD
0568デフォルトの名無しさんNGNG
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って謎です。
0569デフォルトの名無しさんNGNG
>>568
gccよりあなたの方が謎です。節穴系ですか?

gcc/*.[hc]です。
大まかに言って、
c-*.[ch]がC固有のもの。
他は他言語と共通のもの。
0570デフォルトの名無しさんNGNG
ありがとうございます。
おおぼけ、でした。
c-がCのものだとするとcpp*はプリプロセッサかな。
共通のものと各言語のものが綺麗に分かれてると
思ったのですが、そうでもないんですね…

これを読むのは一苦労ですがメンテしてる人は
さらに凄いというか、なんというか
gcc/gcc/*.{[chy],def}からちょっとづつ読んで逝きたいです。

どうもでした
0571デフォルトの名無しさんNGNG
漫然と読むのは辛いと思うから、目的を決めた方が良いよ。
0572名無しさん@EmacsNGNG
>>570
>>571が言うように、ただ漠然と読むのは辛い。
何かプログラミングしているときに、「この標準関数はどう実装しているんだろう」って感じで
少しずつ把握しているソースを増やしていくのが良いと思われ。
0573デフォルトの名無しさんNGNG
>>572
それって、ライブラリのソース見た方が...。
0574名無しさん@EmacsNGNG
>>573
glibcでなくてgccね…勘違いしてますた。逝ってきます…(´・ω・`)ショボーン
0575436NGNG
>>444
 既に一ヶ月以上経過していて今更ではありますが・・・。
 やっとですが、解決しました。 本当に有難う御座いました。

 "-lwinmm" って、何のスイッチだろう・・・とかって調べていて、
-l を度忘れしておりました。
 確かに、付けないとリンク出来る訳ないですよね。
0576デフォルトの名無しさんNGNG
MinGWが新しくなってる。ガイシュツだったらスマソ。
http://members10.tsukaeru.net/bitwalk/download_mingw.html#mingw
0577デフォルトの名無しさんNGNG
>>539
K6(/2/3)では大抵動かないですです。
P55C互換cpuなので、P6命令(CMOVとか)で止まるのだと推測してます。
0578デフォルトの名無しさんNGNG
歙渺折
0579デフォルトの名無しさんNGNG
VB saiko-!
0580デフォルトの名無しさんNGNG
石を投げればCハカーに当たってしまうUNIX業界にあって、g++の、特に3系列の
あの複雑怪奇なstandard C++への準拠度が素晴らしく素晴らしいのはどういった
理由からなんでしょう?
0581デフォルトの名無しさんNGNG
>>580
そりゃ、ユーザー数も開発者数も圧倒的に多いからだろ。
0582デフォルトの名無しさんNGNG
それぐらいしかアドバンテージがないから
0583デフォルトの名無しさんNGNG
C++を使って何千億と稼ぎ出す企業の使うコンパイラは
なぜあんなにもいい加減なのでしょう?
0584デフォルトの名無しさんNGNG
その程度で充分なことを知っているから
0585デフォルトの名無しさんNGNG
>>583
標準に準拠するよりも、最適化に掛けるコストを大きくした方がよく売れる
からじゃない?
0586デフォルトの名無しさんNGNG
>>581
開発者数なんて少ないです。
それにユーザー数なんてVC++の方が
何倍もいます。
0587デフォルトの名無しさんNGNG
>>586
まあそうだろうね。gccは一種の桃源郷のようなものかも。
0588580NGNG
>>586
同じく、あまり多くなさそうだというのが僕の印象。
ユーザ数も、gccなら組み込み関係でもベースにされてたりするけど、
g++はそうでもなさそうだし。

0589デフォルトの名無しさんNGNG
>>583
標準に準拠する能力が無いから
最適化だのは準拠率が改善しない弱点を
ユーザを洗脳して逸らしているだけ
0590デフォルトの名無しさんNGNG
>>583
必ずしもC++の仕様に準拠することがベストではないから。
市場を独占してしまえばソースの可搬性なんて意味のないものだし。
0591デフォルトの名無しさんNGNG
>>586
ユーザー数はさすがにgccでしょう。
カーネル再コンパイルするだけで使うわけだから。
あ、でもg++だとどうなのかな。
0592デフォルトの名無しさんNGNG
VC++が糞な理由を語るスレはここでつか?
0593デフォルトの名無しさんNGNG
>>592
糞というよりなんとかしてもらいたいというところでは?
VC++がなきゃ飯食えない人も多いんだし、好きだ嫌いだなんて
いってる場合ではないでしょ。
0594デフォルトの名無しさんNGNG
何のための標準よ?
標準テンプレートライブラリもコンパイルできない糞VCのことを
言ってるならベストどうのよりもまずコンパイルが通るようにしろよ
0595デフォルトの名無しさんNGNG
gccマンセー派のいつもの手ですな
0596デフォルトの名無しさんNGNG
誇れるのは最適化しかないの?VC厨
0597デフォルトの名無しさんNGNG
MSの開発環境は"美しい設計が生産性と再利用性をほげほげ"なんていう話とは対極の
ところにあるからなぁ。MFCとか。
それを信奉する者なら、例えばSTLのアルゴリズムがコンパイラのせいでまともにつか
えなくとも関係ないだろうね。

#俺? 断固VC粉砕熱望。
0598デフォルトの名無しさんNGNG
gccで-Sオプションをつけてコンパイルしたら、アセンブリ出力されます
が、このリスト中に元のプログラムの行をコメントとして付け加えること
はできますでしょうか?
0599デフォルトの名無しさんNGNG
>>598
出来ないと思う
0600デフォルトの名無しさんNGNG
VCだとできるのに・・・糞ですね
0601580NGNG
つまらない発言をしている馬鹿はどうぞこちら
を見ろ莫迦ども。
http://ton.2ch.net/test/read.cgi/gline/1028811653/
0602デフォルトの名無しさんNGNG
>>599
ありがとう
0603デフォルトの名無しさんNGNG
燃料age
0604デフォルトの名無しさんNGNG
つまらんsage
0605デフォルトの名無しさんNGNG
最適化されてどんな形になるかわからない
元のソースを付け加えるのに何の意味があるのか
0606デフォルトの名無しさんNGNG
>>605
最適化されたアセンブリ出力を見て、元のソースと見比べて
秘かに自己満足のほほえみを浮かべたい。
0607デフォルトの名無しさんNGNG
>>600
やりかたおしえて
0608デフォルトの名無しさんNGNG
ヘルプにコマンドラインオプションがあるからそれみてね
それからスレ違いだよ
0609デフォルトの名無しさんNGNG
>>598
.stabnの3番目にソースの行番号が入ってるんで、突き合わせて想像汁。
0610デフォルトの名無しさんNGNG
>>598
それ、>>182のやりかたで代用できないの?
0611デフォルトの名無しさんNGNG
>>583
だって、仕様が変ったら、
大勢いる質の低いプログラマがついてこられないじゃない。
g++でも「g++-2.95だと〜なのに〜g++-3だと〜」とあちこちで質問が出ている。
// まあ、仕様が変らない部分で遅れているところも多いけど。

>>585
最適化は優れていませんし、それを売りにもしてないです。

新しいのを出すにあたって、注意しているのは、
・プログラマたちを怒らせないこと、(仕様変更!)
・アップグレードしたくなるような機能を入れること
じゃあないですかね?

0612デフォルトの名無しさんNGNG
VC++をめぐる不満が炸裂してMSのプログラマがストライキ起こさないかな。
そうでもしない限り、ANSI対応する方向に向かうとは思えないんだけど・・・

それとももしかしてサードパーティーとの差別化戦略で社内じゃ別の
素敵なコンパイラを使ってるとか??何にしてももう少しなんとかなって
もらわないと困るべよ。
0613デフォルトの名無しさんNGNG
この板見ても「実装→仕様」と思っているプログラマが多いみたいだから、
ANSI対応することによって、未定義部分の動作が変ったら、大騒ぎだべさ。
「コンパイルできなくなった〜! バグだ〜!」って騒ぎだすべさ。
0614デフォルトの名無しさんNGNG
ほんとは未定義の部分は使ってはいけないんだけどねえ。
言語仕様をくまなく見てプログラムってるヤシは少ないだろうし。
0615デフォルトの名無しさんNGNG
未定義についてWarningだせってんだよ
0616デフォルトの名無しさんNGNG
ゲーツェーツェーって言ってる人たちがいる。
0617デフォルトの名無しさんNGNG
>>616
最強っぽい
0618デフォルトの名無しさんNGNG
おフランス風に「ジェセセ」と読んでます
0619デフォルトの名無しさんNGNG
ジョージチャーリーチャーリー!
0620デフォルトの名無しさんNGNG
げーつぇーつぇー採用age。
0621デフォルトの名無しさんNGNG
C#対応age
0622デフォルトの名無しさんNGNG
maji?
0623デフォルトの名無しさんNGNG
マジかよ・・・
ついにGNUもプライドを捨てたのか・・・
0624623NGNG
(*´Д`)結婚?
ついにワタスにも春がcome meなのね。
0625デフォルトの名無しさんNGNG
痛くしないでね・・
0626デフォルトの名無しさんNGNG
プライドがあるからこそC#対応。
GNUが極端なアンチMSになってはいけない。
0627デフォルトの名無しさんNGNG
source kibon nu >>621,626
0628デフォルトの名無しさんNGNG
onajiku hageshiku kibon nu

ただgcjを使っているという話をあまり聞かないし
どうなんでしょう?
0629デフォルトの名無しさんNGNG
さっき本家とGCCのMLアーカイブ見てみたがそれらしい話は載ってないけど<c#対応
0630名無しさん@EmacsNGNG
C++の対応がイイって聞くけど、わざわざ 2.95.x から乗り換える程のモン?
0631デフォルトの名無しさんNGNG
>>630
libstdc++があたらしくなっていて、ヘッダファイル名の .h がきちんととれたり
したのがイイね。あとは XXX_iterator も完備された。std:: を書かないとコンパイル
エラーになるようになった。typename キーワードを書くべきところでを書かないと
警告されるようになった。このあたりか?

最後のは慣れない人には(俺とか)わかりにくいのでウレスイかどうかは微妙。


0632名無しさん@EmacsNGNG
>>631
素早いレス、さんくす。しょっぱい STL にウンザリしてたところだから、
インストールしてみるよ。
0633631NGNG
>>631
ホンワカと前提になってしまって通じているが、3.2の話ね。
0634デフォルトの名無しさんNGNG
current(3.3?)もかなり安定してるみたいだから、そっちを
使ってみてもいいかもしれない。
0635デフォルトの名無しさんNGNG
>>634
3.2との、目に付きやすい差異があればキボンヌ

0636デフォルトの名無しさんNGNG
>>631
ウム。
standard compliant && clean なコードを書きたい人向けのlintとしてはかなり使えると思う。
0637デフォルトの名無しさんNGNG
>>635
http://gcc.gnu.org/gcc-3.2/changes.html
http://gcc.gnu.org/gcc-3.3/changes.html
これらを見るとDFASchedulerが入ったことかなあ。
といってもそれ、よく分らないんだけどね(汗
0638デフォルトの名無しさんNGNG
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 ;
}
0639デフォルトの名無しさんNGNG
>>638
gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
では通りますYO.

ちなみに書き込むときにインデントいれるのどうやってるの?
上のって全角スペースじゃないよねえ?
0640639NGNG
あ、ごめん、-O2 か。落ちます。
0641デフォルトの名無しさんNGNG
>>638
レポートしる!
0642デフォルトの名無しさんNGNG
>>638
どうだろう?って何が知りたいの?
0643デフォルトの名無しさんNGNG
>>642
「がいしゅつ」って言葉を使うのがいやだったので…
0644デフォルトの名無しさんNGNG
ハァ&*>?
0645デフォルトの名無しさんNGNG
>>644
トコロントチャリピカァ!
0646デフォルトの名無しさんNGNG
>>643
「既出」という言葉を知らんのかバーカ
0647デフォルトの名無しさんNGNG
まさか”がいしゅつ”を知らん人がいるのか・・・?
いや、知ってても全くもってエラくもなんともないんだが。
0648デフォルトの名無しさんNGNG
馬鹿のすくつ。
0649デフォルトの名無しさんNGNG
「巣窟」という言葉を知らんのかバーカ
0650デフォルトの名無しさんNGNG
巣窟(そうくつ)
0651デフォルトの名無しさんNGNG
関数呼び出し時に引数がなぜかintになるんですけど
どうしたらいいですか?
0652デフォルトの名無しさんNGNG
もっと詳しく書け。できればコード貼れ。
って、C言語か?
0653デフォルトの名無しさんNGNG
大方 func(int i){〜} を func(0.1); の様にしてんだろ。
0654デフォルトの名無しさんNGNG
外部リンクにある関数なのに宣言をしてない/ヘッダをインクルードしてないとか
-Wall でコンパイルし直せ
0655646NGNG
俺は「がいしゅつ」を使いたくなかったら既出を使えっていってんだよ。
ということで馬鹿は日本語を知らない643。

スレ違いスマソ。
0656デフォルトの名無しさんNGNG
自分の記述不足で意味が通じなかったのを
相手のせいにするのはプログラマーとしてまちがっとる!
エラーをコンパイラやOS、他人のせいにするタイプだろ>>646

スレチガイニテサゲ。
0657デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/unix/1034425567/525n
0658デフォルトの名無しさんNGNG
g++2.95から3.2にして大量のwarningに苦しんでるたちなんですが、
以下のコードが3.2では通りません。

std::vector<var*> container;
std::vector<var*>::pointer func(void) { return container.begin(); }

vectorのpointerとiteratorは同じように扱えると思ってたのが間違いなんでしょうか。
0659デフォルトの名無しさんNGNG
>>658
iteratorはデフォルトのアロケータを持っているから、ポインタに変換すると
エラーが出るのでは?
0660デフォルトの名無しさんNGNG
>>658
うん間違い。先頭要素をさすポインタがほしければ、
&container[0] をかえす。
0661デフォルトの名無しさんNGNG
>>660
そしたら std::vector<int*>::pointerとint**の間には違いがないと見て
いいのでしょうか?
0662658NGNG
別物ですか。どうもです。

両方とも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ではどちらも通るんですよね。
0663デフォルトの名無しさんNGNG
>>662
どこのファイル見てる?
/usr/include/c++/3.2/bits/
の下のファイル見てる?
0664658NGNG
>>663
違うところ(usr/include/g++/)見てました。3.2だとパスが違うんですね・・・。
確かに/usr/include/c++/3.2/bits/stl_vector.hではiteratorは
アロケータ込みで定義されてます。ありがとうございました。お恥ずかしい限り。
0665デフォルトの名無しさんNGNG
>>661
厳密に言えば std::vector<T>::pointer は T* でなくても
スマートポインタのようなものでも OK。
つまり、operator* と operator-> が定義されていて T* と同じように
振る舞えばよいということだね。
0666 ◆hMJAPH9PWA NGNG
std::vector<>::pointerって標準?初めて見るけど…。
0667デフォルトの名無しさんNGNG
『Generic Programming -- STLによる汎用プログラミング』という
本にはそう書いてあったんだが、規格書を見たらそういう記述は
見あたらなかった。標準ではないかもしれんね。
0668デフォルトの名無しさんNGNG
すいません。最近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をバージョンアップしたりしましたが同じ結果でした。
どうなっているのでしょうか?設定がよく分からないので助けてください。
0669デフォルトの名無しさんNGNG
-I フルパス
0670デフォルトの名無しさんNGNG
$ gtk-config --cflags
0671668NGNG
>>669>>670
ありがとうございます。指定してみたらできました。
しかし始めからgtkやglibのインストールがおかしかったみたいで
、煮詰まって来て疲れました。もう一度再インストールしてみます。
0672デフォルトの名無しさんNGNG
VB は糞!
0673デフォルトの名無しさんNGNG
http://public.kitware.com/GCC_XML/HTML/Index.html
ブーストスッドレより。どうなんこれ?
0674デフォルトの名無しさんNGNG
>>673
よく読んでないんだけど
Doxygenみたいなもんでしょ?
違うの?
0675デフォルトの名無しさんNGNG
ぜんぜんちがうよん
0676デフォルトの名無しさんNGNG
だったら説明しる
0677デフォルトの名無しさんNGNG
>>676
説明も何も、概要ちゃんと書いてるべさ。あ、もしかして……
0678デフォルトの名無しさんNGNG
>>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 コードを
生成すると書いてあるが。
0679デフォルトの名無しさんNGNG
ソースコードのXML表現だったら興味あるかも。
見た目は普通のソースだけど裏ではXMLになってるとか。
0680デフォルトの名無しさんNGNG
ソースコードにリンク貼ってくれるやつか
0681デフォルトの名無しさんNGNG
>>679
RTL木だと思う。
何に使うのか謎だが。


0682デフォルトの名無しさんNGNG
gccでコンパイルした実行モジュールから、シンボル(ラベル)とアドレスの対応表を、
コードを実行せずに抽出する方法orツールはありますか? アドレスは適当な
ベースからのオフセットで可。
0683デフォルトの名無しさんNGNG
objdump? nm?
0684デフォルトの名無しさんNGNG
>>619
古レスすまんが、
「ゴルフ・チャーリー・チャーリー」ではないのか?
0685611NGNG
>>684
二種類あるのだ。
ttp://www.studio-cube.com/zats/2002-09.html
0686682NGNG
>>683
nmでオプションを煮詰めればいけそうです。クロスでやってるんで、
nmがあるか心配でしたが、binutilsが一通りあったのでとりあえずOK。
thx!
0687デフォルトの名無しさんNGNG
gccでリンク時or後に、使われなかったデータ/関数を抽出することできますか?
ひとつの.oが多くの機能をもつライブラリをstaticにリンクした時に、使わな
いものまで入ってしまうので、これをみつけたいのです。
本当は削除したいのですが、それは手動でなんとか....
0688デフォルトの名無しさんNGNG
なぜvtableが、デフォルトで書き込み可能セクションに出ますか?
0689デフォルトの名無しさんNGNG
>>687
最適化 (-O4以上) で消えないか?
0690689NGNG
staticな関数でないと駄目だな。ごめんよ。
0691デフォルトの名無しさんNGNG
>>687
関数単位に分割してライブラリにするってのが常套手段、っつーかそのための
ライブラリだが、それはしたくないわけ?
0692デフォルトの名無しさんNGNG
>>691
うん、それが正しい。が、今あるものを分割するのが、大変なので、自動化で
きる方法ご存じないかしら、とおもって。
defineとコンフィギュレータ(構成変更のツールなの)が曲者。が、ここは、分
割を自動化する方法を考えてみますかね。ありがとう。
0693デフォルトの名無しさんNGNG
man csplit
0694-W,l名無しNGNG
>>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)その他グラフ系ツールを使えば
あっと言う間じゃないかな。
0695デフォルトの名無しさんNGNG
>>688
vtableを変更するか、意図しない結果か、何かしたいか、のどれかでしょう。
0696   NGNG
組み込みのCPUを、PCからシリアルを通じてgdbでデバックしたい場合は、
gdbと通信するモニタープログラムがターゲット上に必要になるかと思いますが、
どうやって対応させるのでしょうか。なにか参考になるHPとかあったら教えて欲しいです。
0697デフォルトの名無しさんNGNG
>696
とりあえず gdb の info
http://www.asahi-net.or.jp/~wg5k-ickw/html/online/gdb-4.18/gdb_14.html#SEC106
0698デフォルトの名無しさんNGNG
>>696
・eCosを動かす。
・infoにstubの仕様が書いてあるので、がんばって作る。
0699デフォルトの名無しさんNGNG
>>696
ターゲットは何?
物によっては、メーカーのモニタを使えるぞ。
0700696NGNG
>>697,698
resありがとうございます。
本日からちょっとやってみます。eCosは自分の力では無理っぽいです。
>>699
業務関係上具体的にはお話できません。パチンコ向けのわけのわからんCPUですが。
オリジナルのモニタープログラムにデバック機能も組み込みたかったので。
0701デフォルトの名無しさんNGNG
>>697
おおーそれナイス。
0702デフォルトの名無しさんNGNG
gcc3.2でC++プログラム書いてるんだけど、
キャッチされない例外があると、即segmentation fault出てcore dumpするの
何とかなら無いすかね?
try {
 ...
} catch (*) { // ワイルドカード(藁
}
とか出来れば、それでもいいけど。
デバッグ超大変なんですけど…
0703デフォルトの名無しさんNGNG
>>702
catch (...)
0704デフォルトの名無しさんNGNG
入門書に書いてあるはずだが…
0705デフォルトの名無しさんNGNG
>>702
おまえ、それはバグを潜在化させるだけじゃないかと、
0706702NGNG
本当だ、書いてあった。
お前らありがとうございました…

しかしsegmentation faultは勘弁して欲しい。
javaみたいにどこからどんな例外が投げられて、
そしてキャッチされませんでした、とか言ってくれるのが
ベストだろうけど。
0707デフォルトの名無しさんNGNG
unexceptedを設定知る
0708デフォルトの名無しさんNGNG
>>700
1. モニタにgdb-stub の機能をいれる
2. gdbのほうで、モニタのコマンドにあわせる
の二つの方法がありまする。
1はinfoみればあったはず。2はgdbのソースの remote-xxx.c をみるよろし。
モニタを自分で触れるターゲットなら1のほうがおすすめ。
0709デフォルトの名無しさんNGNG
グッシッシ3.2.1リリースあげ
0710デフォルトの名無しさんNGNG
Changes: http://gcc.gnu.org/ml/gcc/2002-11/msg00445.html

0711デフォルトの名無しさんNGNG
>>706
segmentation faultが来るなら、例外をキャッチし損ねているんじゃ
なくて、単にメモリ壊したりNULL pointer dereferenceしたりしているだけ。
terminate()ならSIGSEGVじゃなくSIGABRTが来ないとおかしい。
0712デフォルトの名無しさんNGNG
質問です。このスレでいいのかわからないですが、どこに書いたらいいのかわからないので・・・。

makeを実行したとき、コンパイルが正常に終了したなら、できたファイルを実行して、
エラーがあったときは実行しないようにしたいのですが、
そういう時はmakefileになんて書けばいいんでしょうか?
教えてください。
0713デフォルトの名無しさんNGNG
コンパイル結果の実行ファイルに依存するダミーのターゲットの処理として実行すればいいじゃん。
0714712NGNG
ただ./a.outを書いただけでできました。
しかもcoreを吐いた時は勝手に削除してくれます。
0715デフォルトの名無しさんNGNG
gcc で、VisualCでMFCやDirectXを使って作成したプログラムをそのままコンパイルしたりできないでしょうか。
(最適化機能付のプロフェッショナル版が高くて買えないので)
C++での内部シンボル名の規則が違ったり、いろいろ不具合あって出来ないとかでしたっけ?
0716デフォルトの名無しさんNGNG
>>715
昔DirectXのサンプルをBolandC++でもコンパイル出来るようにしたことがあったが・・・。
#pragmaあたりでwarningでまくったりしてかなり苦労したけどな。
Borandでもそのままじゃームリだったので、gccじゃなおさらじゃない?
0717デフォルトの名無しさんNGNG
VC++とBCBとgccはベースは同じC++ですが全くの別物です。
特にGUIアプリに互換性は無いに等しいです。
これはC++の宿命です。C++がクソなのです。
0718デフォルトの名無しさんNGNG
windowsで最新のGCC使いたいんですが、
cygwin入れるしか無いでしょうか?
0719デフォルトの名無しさんNGNG
>>718
MinGW・・・・・
http://members10.tsukaeru.net/bitwalk/download_mingw.html#mingw
0720718NGNG
>>719
ありがとうございます。
そのリンク先のは
http://prdownloads.sourceforge.net/mingw/MinGW-2.0.0-3.exe
と何か違うのでしょうか?
0721デフォルトの名無しさんNGNG
>>720
いくつかのユーティリティが付加されている。そのため、サイズがかなり大きい。
多分どちらでもいいと思うけど、Bitwalkのリビルド版を使っている人は多い
と思う。
0722718NGNG
>>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を追加したので出なくなった)
0723デフォルトの名無しさんNGNG
>>722
フルパスでいれたらどうなりますか?
-l"c:\windows\gdi32" とか。
0724デフォルトの名無しさんNGNG
他には -mwindows を付けるとか。
0725718NGNG
>>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'
0726718NGNG
多分'__ 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;}


0727デフォルトの名無しさんNGNG
>>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"
0728718NGNG
>>724
-mwindowsを付けても変わりませんでした。
0729718NGNG
えっと、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;}
0730718NGNG
>>727
あ、見落としていました。
g++ですか。
0731デフォルトの名無しさんNGNG
>>729
c++でもそのまま通りますが・・・・・
0732718NGNG
皆様、ありがとうございました。
無事実行ファイルが出来あがりました。
0733デフォルトの名無しさんNGNG
gccのインラインアセンブラで、
__asm__のオペランド記述の後ろに"=r"とか,"r"(tmp)
みたいなのが付いてる時がありますが、これは何なんでしょうか?
r以外にもSとかありました。
↓みたいなやつです。

__asm__ volatile ("call %0\n"
:"=r" (tmp) );
__asm__ volatile ("movl %%eax,%0\n"
:
:"r" (tmp) );
0734733NGNG
あ、いいです。忘れてください。
0735デフォルトの名無しさんNGNG
>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 を使うことが多いです。
0736デフォルトの名無しさんNGNG
cygwinのgccの環境は駄目だ。*nixからの移植モノならいいのかもな。
mingwマンセー、と言っておく。
ところで、インラインアセンブラをAT&Tやめてインテル形式で記述できる
パッチ無い?NASMとか使いたいんだけど。
0737デフォルトの名無しさんNGNG
しつもーん
gccの拡張記述で、「戻らない関数」をコンパイラに教えて
コードを最適化する、関数修飾子ってなかったっけ。
今日別のプログラマと話してて、どうしても思い出せなかったっす。
知ってる人教えて〜
0738デフォルトの名無しさんNGNG
__attribute__ ((__noreturn__))
0739737NGNG
>>738
お、そんなのもあるのか。さんきゅう
でも、volatile と同様に、
  hogehoge void quit()
みたいに関数の「前」につけるのなかったっけ・・・?
0740デフォルトの名無しさんNGNG
stdlib.h を見る限り↓ではないけど・・?
extern void exit (int __status) __THROW __attribute__ ((__noreturn__));
0741737NGNG
無いのか・・・X68000のGCCで見た記憶あったんだけど、
夢だったのかも。ありがと〜>>740
なるほど、exit(3)の宣言を見ればよかったのか。
参考になりまつ。
0742デフォルトの名無しさんNGNG
g++(3.2) + gdb で、例外が投げられたらbreakするにはどうしたらいいでしょう
0743デフォルトの名無しさんNGNG
>>742
void f(){throw 0;}
これをコンパイルして、外部参照してるアンダースコアつきの
シンボルにブレークポイントを仕掛ける。
・・・ってな感じでいけるんじゃないかと思った。
0744デフォルトの名無しさんNGNG
>>742
もっとマシなIDEを使う。
0745デフォルトの名無しさんNGNG
>>743
_f に?
_throw ?

0746デフォルトの名無しさんNGNG
>>739
つーかそれが volatile だよ。
volatile void foobar(); で帰ってこない関数 foobar() になる。
gcc2.5 から attribute noreturn が出来たのでそっちを使うようになった。
(volatileも使えるけど)
0747743NGNG
>>745
コンパイラの内部関数に。
漏れはgcc3.1だけど、__cxa_throwとかが怪しいな。
0748737NGNG
>>746
そーだった!
考えてみればあたりまえですた。
揮発な関数ってなんやねんと昔悩んだのに・・・
ありがとござますた
0749デフォルトの名無しさんNGNG
俺的速度評価
←速い
VC6(-O2)>>>mingw(gcc3.2 -O2)>>>bcc5.5(-O2)
いつもこの3つで通るプログラム書いてますが、
だいたいこんな感じです。
「このコードはこんだけ差が出る」っての出せる人いませんか?
0750デフォルトの名無しさんNGNG
>>749
そもそもの話cc1はともかくg++はclに比べて糞重いだろうが、
gccはアセンブラを吐いてas.ldでコンパイルするっていう手順くんでるので
理屈からいっても無駄がでてくる。
0751デフォルトの名無しさんNGNG
コンパイル速度の話には見えない・・・
0752デフォルトの名無しさんNGNG
>750
コンパイル時間の話なのか、生成されるコードの話なのか…
0753749NGNG
すいません。生成コードの速度です。
コンパイル速度で言ったらgcc最下位でしょ。
0754デフォルトの名無しさんNGNG
>>736
同意。それがあれば最高なのに、、、
0755デフォルトの名無しさんNGNG
バイナリサイズがでかい?
0756デフォルトの名無しさんNGNG
自分で脳内最適化してください。
0757デフォルトの名無しさんNGNG
http://sources.redhat.com/binutils/
GNU びぬてぃるすの蜜柑…
0758デフォルトの名無しさんNGNG
>757
?
0759デフォルトの名無しさんNGNG
cygwin-b20 fullをインスコしたのですが、(無論、windowsです)
gccでpthread.hを使おうとしたところ、そんなファイルは無いと言われます。

unixのようなマルチスレッドのプログラムは作れないのでしょうか・・・(;´Д`)

また、パスをきちんと通しているのですが、
gccでコンパイルしようとすると、
stdio.hが見つからない・・・といった類のエラーが出ます。
仕方がないので、gcc.exeが置いてあるディレクトリにファイルを置いて
コンパイルしている現状です・・・

何が悪いのか全然分からないので、
どうか助けてください。よろしくお願いいたします。
0760デフォルトの名無しさんNGNG
>>759
> cygwin-b20 fullをインスコしたのですが、(無論、windowsです)
どっからそんな化石を発掘して来た。
0761デフォルトの名無しさんNGNG
>>759
gccのパスが通ってないだけだと思うけど、
cygwinの質問ならunix板の方がいいよ。
ちなみにb20ってすごく古いよ。
0762759NGNG
えΣ( ゚Д゚)!! マジですか??

cygwin gccでググッて、
http://www.palmos-japan.com/dev/tools/gcc/
のページから落としたのですが・・・
最新版の所在は分かりますか・・・?(;´Д`)
0763デフォルトの名無しさんNGNG
http://cygwin.com/setup.exe
0764埋造NGNG
>>758
>>757 ちゃんは、strip を示唆したんでは。

と言いつつ、埋め。
0765デフォルトの名無しさんNGNG
予定通りだとgcc-3.3がそろそろ出るかな。みなさんバグを発見したら
ちゃんとレポートしましょう。
0766デフォルトの名無しさんNGNG
バグ?
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
0767デフォルトの名無しさんNGNG
>>766
main()がないのでこんなのをくっつけて2.96で試したら問題ないようだけど。

int main()
{
    record r1("hoge", "asdfsd"), r2("hage", "dasfdase");
    cout << (r1 < r2);
    return 0;
}
0768デフォルトの名無しさんNGNG
2.95.4なら通るよ
0769デフォルトの名無しさんNGNG
typeof演算子みたいにtypedef templateをフライング実装してくれないかな
0770デフォルトの名無しさんNGNG
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 で終了しました

とか言われます。
何がいけないんだ?
0771770NGNG
すんません、解決しました。

gcj --main=teste teste.java

ってオプション付ければいいだけだった。
0772デフォルトの名無しさんNGNG
>>770
javaはスレ違い
0773デフォルトの名無しさんNGNG
GNU Compiler Collectionの一部だからそうでもない。
0774デフォルトの名無しさんNGNG
#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: 終端のない文字列リテラルの推定開始位置

とか言われます。
日本語ってどうすりゃいいの?
0775デフォルトの名無しさんNGNG
774
微妙にワラタ
0776774NGNG
いきなりだけど解決した。
EUCじゃなくてJISになっていやがった。
ついでに std::endl にしないとダメだし。
微妙に鬱
0777デフォルトの名無しさんNGNG
微妙、微妙逝ってんじゃねえよ
てめeらこそ微妙
0778デフォルトの名無しさんNGNG
>>777 突っ込んで欲しいのか?
0779デフォルトの名無しさんNGNG
>>777
ゾロ番getおめ
0780デフォルトの名無しさんNGNG
>>777
微妙におめでとー。
0781デフォルトの名無しさんNGNG
GCCの更新履歴とかの詳しい日本語サイトってないんですかね?
0782デフォルトの名無しさんNGNG
>>777
微妙に微妙なヴァカですね。
0783デフォルトの名無しさんNGNG
保守
0784デフォルトの名無しさんNGNG
インラインアセンブラで質問

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 にしない
 これも効率の面から避けたい
0785デフォルトの名無しさんNGNG
>>784
マクロにする
0786デフォルトの名無しさんNGNG
volatile MATRIX &vmat = mat;
として、
 asm volatile("ここで mat に書き込む" :: "r"(&mat));
以降では vmat を使うとどうなる?
0787デフォルトの名無しさんNGNG
>>786
matにvolatileつける…最適化効かないから悲しい事になるか。
やっぱりmemoryをclobberするのが正攻法では?
0788デフォルトの名無しさんNGNG
inline void foo(volatile MATRIX& mat)じゃだめ?
0789デフォルトの名無しさんNGNG
>>784
メモリ領域に出力なんだから "m" constrain を使って
asm volatile("ここで mat に書き出す" : : "=m" (mat));
でどうよ。%0 がアドレスになるからアセンブリはちと変わるかも。
0790デフォルトの名無しさんNGNG
gcjはJavaからネィティブコードを吐き出させることが
できるみたいですが、Windows版はあるのでしょうか?
また、swingなどのGUIコンポーネントには対応しているのでしょうか?
0791デフォルトの名無しさんNGNG
GUIはAWTもほとんど対応してなかったはず
0792790NGNG
>>791
thx.
あーヤパリGUIはダメですか・・・。まだまだ実用段階ではないってことね。

0793デフォルトの名無しさんNGNG
Win版というか、Cygwinのgcc 3.2パッケージに含まれてるgcjが
なんとなーく動く。少なくともhello worldは動いた(w
# もちろんAWTやSwingなんてのは無い
0794784NGNG
いろいろ参考になる意見をどうも。

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" で書き出すのもアリみたい。
0795デフォルトの名無しさんNGNG
>>793
単独実行ファイルになるのはいいけど、
速度面では Sun JVM と変わらないか遅いくらいじゃない?
0796795NGNG
適当なことをいっている気がしたので、きちんと確かめてみた。
ベンチマークはこれで。
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 の方が速いかも。
0797795NGNG
そっか、プロポーショナルフォントだから崩れるのか。鬱。
ちなみに生成されるファイルのサイズは以下の通りでちた。

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
0798デフォルトの名無しさんNGNG
gcc-3.2-3 の実行ファイルのサイズは strip 済みですか?
0799795NGNG
そういやしてなかった。
gcc-3.2-3 native exe(-O2) striped 1436672bytes
       upx -9 して 476672bytes
お、1MB 割った。

GUI は AWT/Swing 待つよりも SWT 使うのが良いと思った。
0800鯣@暇暇團No.52 ◆F52DmOxJlc NGNG
コソルリ>>800ゲトしてみる。
0801デフォルトの名無しさんNGNG
age
0802デフォルトの名無しさんNGNG
-lなんたらって、それを使ってるオブジェクトファイルより後に付けないといけないのね
0803デフォルトの名無しさんNGNG
gccってコンパイルの時にzlib使うみたいですが
何に使われているのでしょうか?
0804デフォルトの名無しさんNGNG
>>803 java の *.jar(*.zip) なファイルを読む時かな。
0805デフォルトの名無しさんNGNG
gcc-3.01-msvcrt.exeファイルが見つからん
0806805NGNG
オレが探していたのはMinGWだった。
お前らの助けを借りずに済んだぜ。ヘヘ

>>806
バーカバーカバーカバーカーバ!!
お前はHTAでもやってろ! プッ
http://www.microsoft.com/japan/msdn/columns/dude/dude070599.asp
0807デフォルトの名無しさんNGNG
>>806
どうしたんだよw
0808805NGNG

MinGWを、gcc Developer Station 2000で、使おうと、した。

上手く、ビルド、出来なかっ た。

DS2kを、使うのを、やめた。


やっぱ、グッシッシ使うならDev-C++だねぁー
>>231に感謝。
>>807
うるせーバカッ!!
0809デフォルトの名無しさんNGNG
>>808
Dev-C++に含まれるg++のバージョンは3.2だから、最新版の3.2.1を使うには
http://www63.tok2.com/home/bitwalk/download.html#mingw
からダウンロードして、上書きしなせえ。
08101001NGNG
>>809
ハァ?
氏ねや
0811デフォルトの名無しさんNGNG
>>810
おまえこそ氏ねよ
0812デフォルトの名無しさんNGNG
ここはひどいインターネットですね。
0813デフォルトの名無しさんNGNG
だが、愛がある
0814デフォルトの名無しさんNGNG
ぬるぽもある
0815仕様書無しさんNGNG
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`∀´)/
 (_フ彡        /  ←>>814
0816デフォルトの名無しさんNGNG
gccを解説した書籍とかサイトとかありません?もちろん、日本語で。
0817デフォルトの名無しさんNGNG
>>816
impressから出てる 「できる!GCC」 シリーズがおすすめ

今日からはじめてすぐにコンパイル!
Hello,worldから詳しく解説。
0818デフォルトの名無しさんNGNG
WE LOVE GCC!
0819デフォルトの名無しさんNGNG
>>817
聞き方が悪かった。
C言語の解説書じゃなくて、GCCでプログラムするための解説書だ。

オライリー辺りで出てないかなと思った次第だが。
0820名無しさん@xyzzyNGNG
>>819
man gcc
もしくは、これじゃだめなのか?
http://www.sra.co.jp/wingnut/gcc/
0821デフォルトの名無しさんNGNG
あとはソースひたすらソース。
ところで@xyzzyってのは初めて見たかも。
動くのか、、、
0822IP記録実験NGNG
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を提出することがある。
0823デフォルトの名無しさんNGNG
>>820
文書が古いね
0824デフォルトの名無しさんNGNG
j
0825デフォルトの名無しさんNGNG
IPってなんですか?
0826デフォルトの名無しさんNGNG
昔は祭りなんてなかったなぁ。
0827デフォルトの名無しさんNGNG
もう対応してるんじゃないの?
0828デフォルトの名無しさんNGNG
IP記録大賛成ですね。
0829デフォルトの名無しさんNGNG
>>544
漏れも「今から危険な領域に突入しようと(以下略」みたいなとこまでは
いったんだが…。気になるけど見たくない…。
0830デフォルトの名無しさんNGNG
>>53 そう、そこが問題なんだよ。 裁判所は、
現状の2ちゃんねるにあっては、名誉毀損かどうかをひろゆきが判断をしなさい。
削除しない場合は、法廷で、「レスの真実性・相当性」をひろゆきが立証しなさい。

と言っているわけ。
0831デフォルトの名無しさんNGNG
>>53 そう、そこが問題なんだよ。 裁判所は、
現状の2ちゃんねるにあっては、名誉毀損かどうかをひろゆきが判断をしなさい。
削除しない場合は、法廷で、「レスの真実性・相当性」をひろゆきが立証しなさい。

と言っているわけ。
0832デフォルトの名無しさんNGNG
あっちこっちでスレ違いのIP記録話が始まってウザい事この上ない。
0833デフォルトの名無しさんNGNG
>>57
一言で言うと、チミも構ってクンw
0834832NGNG
と思ったらスクリプトが腐ってるのか…
これじゃ俺の書き込みの方がウザく思われるな。逝ってきまつ。
0835デフォルトの名無しさんNGNG
えっ!単に
ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者
ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者
ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者
ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者

連呼でも?
常に自分とこの病院が話題にされていると勝手に考えるのは
単に自意識過剰ではないの?
0836デフォルトの名無しさんNGNG
はぁぁぁ。あと、1週間以内で生理・・・。

何事にもむかついてたまらないっ!
生理前って、ブルーになったり、いらいらしたり。。。
ほんと勘弁してって感じ。
0837デフォルトの名無しさんNGNG
祈念カキコ
0838デフォルトの名無しさんNGNG
このまま2chが衰退していくのが目に見えるな
0839デフォルトの名無しさんNGNG
携帯は「あけおめ」を規制するそうだが、
2ちゃんも、31日23時〜1日正午ごろまで、
全板のcgi止めといたほうがいいんじゃないか……?
「かまわん」というのなら巨大なお世話でスマソ
0840デフォルトの名無しさんNGNG

で結局IP記録に賛成なの?
0841デフォルトの名無しさんNGNG
質の低いって言ってもせいぜい荒らしとかのことだろう。
0842デフォルトの名無しさんNGNG
>>714
それはトマトとかいうものらしい?
設定?してあるwebのアドレスを書き込むとリモホとIPが晒される
随分前からやってるらしい
0843デフォルトの名無しさんNGNG
いままで記録してなかったことのほうが不思議だ
0844デフォルトの名無しさんNGNG
ああ、それは当時のIDの算出方法が、IPアドレスを推測可能なものだったから(^_^;)
つか、それで公開仕様のIDを募集したのだな(^_^;)
0845デフォルトの名無しさんNGNG
おしゃべりは録音でもしない限り流れて消えますが
掲示板の書き込みは文字として残りますよ
0846デフォルトの名無しさんNGNG
犯罪者はそれなりの手段で匿名性の確保ができる。
これで困るのはごく一部の愚者と小心で正直な市民だ。
つまり現実世界と同じ。面白いか、そんなの。
0847デフォルトの名無しさんNGNG
まあ嵐が減るならいいや
0848デフォルトの名無しさんNGNG
匿名性のメリットはそういう点でなく、
「双方向目安箱」だと思うよ。

小泉が一般人の振りして2chで議論
これも匿名だから可能だろ?

実際に小泉がやったか知らないが…
0849デフォルトの名無しさんNGNG
個人情報は削除の対象となります。
じゃなかったかすら
0850デフォルトの名無しさんNGNG
意見を聞いてもらうために「次スレたってないようなのでこちらに」は
 
 やめろ。
0851デフォルトの名無しさんNGNG
で、gccについての話題は終了?
0852デフォルトの名無しさんNGNG
2chで内部告発的な事をするリスクが大きくなるのかな?
発信元がわかるんで、告発された側が「よーし金でねじ伏せちゃうぞー」
とか言って裁判でも起こしまくって。
そんな状況はガクブルだから、面白そうな(真実である事が前提の)投稿は、減る?のかな?
考え過ぎ?って言うか見当違い?どうだ?どうなんだ?
0853デフォルトの名無しさんNGNG
IP記録しても構いませんので、スレッドをもっと立てやすくしてください。

IPが記録されるような掲示板は匿名掲示板とはいえませんが、

スレッドが立てられないような掲示板はもはや掲示板ですらありません。
0854デフォルトの名無しさんNGNG
そういうことだったんですか(^_^;)
でもね・・・
そ ん な こ と は 一 秒 あ れ ば 思 い 付 く こ と
だと思いませんか?(^_^;)
つまり、今の手法ってのが選ばれたってことから
そのやり方は選択されなかったことは自明かと・・・・。
0855デフォルトの名無しさんNGNG
キターーー

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.
0856デフォルトの名無しさんNGNG
pchブランチの成果が入ったってことかな?
0857デフォルトの名無しさんNGNG
イパーイ釣れてヨカタね。
0858デフォルトの名無しさんNGNG
まんこ ちんこ うんこ しっこ ぴゅーぴゅー♪ 
0859デフォルトの名無しさんNGNG

        | |[‖★‖]       (  ★ )
        | |<丶`∀´>       <丶・∀・>
        | | )::::::::(          )::::::::(
        \::::::::::::;\        /::::::::::::;\
          |:::::::::::: l |       //´|:::::::::::: l |
          |:::::::::::: | |       | | |:::::::::::: | |
         /::::::::::::/| |      // /::::::::::::/| |
         |::::::::::/ U      U ..|::::::::::/ | |
         |::::||:::|  | |∧_∧| |  |::::||:::|  U
         |::::||::|   |( ;´Д`)/  |::::||::|
          | / | |   / |    | /.| |
         // | |   |    /   // | |
        //  | |   | /| |   //   | |
       //   | |   // | |   //   | |
       U    U  U  U   U     U
0860デフォルトの名無しさんNGNG
http://qb.2ch.net/test/read.cgi/saku2ch/1031014144/67
0861デフォルトの名無しさんNGNG
て
0862デフォルトの名無しさんNGNG
ShutOutというけど
ローカルルールに従った要請は受け付けてるんだから(^_^;)そうすればいいよ
列に並ばないで権利を主張する奴は許されない
0863デフォルトの名無しさんNGNG
フーン
0864山崎渉NGNG
(^^)
0865デフォルトの名無しさんNGNG
既出です
0866山崎渉NGNG
(^^)
0867デフォルトの名無しさんNGNG
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++マニアの人試してみた?
0868デフォルトの名無しさんNGNG

Linux + gccで、

初めて クラスライブラリを構築する事になったのですが、
参考になる 良い書籍やWebページ等ありましたら教えていただけませんか
0869デフォルトの名無しさんNGNG
>>868
主に「何に対して」不安を感じてるんだ? 今まで Visual C++ 使ってて
gcc ははじめてなのか、それとも C++ 自体はじめてなのか。
0870デフォルトの名無しさんNGNG
>>869
人生に対してでふ
0871デフォルトの名無しさんNGNG
人生に憑かれますた
0872868NGNG
c++開発自体は経験ありで、でもクラスライブラリ作成は初めて
gccも本格的に使用するのは初めて
0873hnhjfcldsaNGNG
■■ 出会いサイト開業システムレンタル ■■

儲かる出会い系ビジネス

月収100万円オーバー!!

HP作成できない初心者でも安心して運営

出会いサイトシステムをサーバーごとレンタルします

運営者様には無料で宣伝ソフトもお付けします

http://giko.2ch.net/129/yamada894jp.html
0874デフォルトの名無しさんNGNG
>>868
おじさんは君の童貞がどうしても欲しい
0875山崎渉NGNG
(^^)
0876デフォルトの名無しさんNGNG
3.3はもう普通に使える。なかなかいいかも。
というわけでネタなしのから揚げスマソ。
0877デフォルトの名無しさんNGNG
http://www.agemasukudasai.com/bloom/
0878デフォルトの名無しさんNGNG
>>10 私は>>8ではないですが、最近はbehavior levelから直接
論理ゲートまで合成するツールも出来てきているようですよ.

ところでVerilog vs. VHDLでgoogleと結構感情的な意見の言い合い
のページとかが引っかかって英語圏の人に親近感もったりする。
0879878NGNG
すまん、完全に間違ったところに書いてしまったよ.
0880デフォルトの名無しさんNGNG
cygwinのgcc3.2でC++を使ってます。
クラスのコンストラクタを非インラインで定義すると、
[not-in-charge]と[in-charge]っていうふうに2つ実体が出てきます。
コードサイズがまるまる2倍になって困ってるんですが、
なんでこんなふうに2つ実体がいるのでしょうか?
0881880NGNG
http://gcc.gnu.org/bugs.html#known
に載ってた。
でも、なっとくいかんぞーぅ。
0882デフォルトの名無しさんNGNG
3.2.2 release age
0883デフォルトの名無しさんNGNG
手作りOSにGCCを移植?
http://s-nakani.hp.infoseek.co.jp/eota/gcc-eota.html
0884デフォルトの名無しさんNGNG
シンボル参照されないオブジェクトファイルを実行ファイルに含めないようにする
リンカオプションのようなものはありませんか?
0885デフォルトの名無しさんNGNG
>>884
ないと思う。
0886884NGNG
ガーン
やっぱアーカイブに詰めるしかないのか。
0887名無しさん@MeadowNGNG
日本語混じり(shift-jis)のソースをgccすると一部の日本語文字で怒られるん
だけど…gccって何かフラグあるのかなぁ?
# eucなら上手く行くのは解ってる
0888デフォルトの名無しさんNGNG
LANG?
0889デフォルトの名無しさんNGNG
>>887
2.95,3.0,3.1の話になるけど、SJISやEUCを素直に食わせるには、
gccを日本語対応でコンパイルする必要がある。
そこらのコンパイル済みバイナリはもれなく対応してない。
0890名無しさん@MeadowNGNG
manみて最初LANGかと思ったけど違った。
そーか…cygwinのgcc使ってるんだけど、compileし直すしか無いのか;_;
0891デフォルトの名無しさんNGNG
(´・ω・`)http://homepage3.nifty.com/digikei/
なんだ?ここは
0892デフォルトの名無しさんNGNG
gccのx86ターゲットでNetBurst対応のはありませんか?
(SSE2オプションとかじゃなく)
Northwood買ったのでi686-gccじゃなんか気持ち悪いんで
0893デフォルトの名無しさんNGNG
http://www.freehackers.org/gentoo/gccflags/flag_gcc3.html
これは役に立ちますか?
0894892NGNG
>>893
サンクス。
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
でいいみたね
0895デフォルトの名無しさんNGNG
man見たところ、-O3 つけると -fomit-frame-pointer も有効になるっぽいけど。

あと、 -march=pentium4 はgcc2.x では無い(?)
0896デフォルトの名無しさんNGNG
gcc2.xはそういう意味じゃさっさと捨ててしまいましょう
0897デフォルトの名無しさんNGNG
>>895
gccのmanとinfoはあんまり信用できないぞ。経験的に。
source見たらぜんぜん違うことがあった。
0898デフォルトの名無しさんNGNG
>>890
ソースの中のSJIS文字列を、\225\266\216\232\227\361 みたいに
変換するフィルタを噛ませばよい。
0899デフォルトの名無しさんNGNG
gccでPascalとか、AdaとかJavaとか他の言語使ってる人います?
0900デフォルトの名無しさんNGNG
>>899
他の言語を使っている中の人など900getしない
0901デフォルトの名無しさんNGNG
>>900
何を使ってるの?
0902デフォルトの名無しさんNGNG
>>899
gccってpascalもコンパイルできるの!?
初めて知ったよ!
しかし,pascalって今でも使ってる人っているの?
昔DOSの頃にターボパスカルか何かを大学で使ってたので懐かしい.
しかし,pascalは言語的には結構良く出来てると当時は感じたけど
絶滅させるには惜しい言語だな.
そう言えばTexか何かがpascalが何処かに使われてるとかって話を
聞いたことがあった.
0903デフォルトの名無しさんNGNG
gcc は C# をサポートするの?
0904デフォルトの名無しさんNGNG
>>899
昔書いた Java プログラムを gcj に通して遊んだりしてます。
あーちょっと速くなったーとかいって。
0905デフォルトの名無しさんNGNG
>>902
Delphiは現役で使われまくってるだろ
厳密には独自拡張したものだが、ターパスのころからunitとかいろいろ拡張されてたし。
BASICって今でも使ってる人っているの? と同じ話
0906デフォルトの名無しさんNGNG
>>905
> ターパスのころからunitとかいろいろ拡張されてたし。
俺が使ってたころにはunitはなかった。
0907デフォルトの名無しさんNGNG
ごめん。GNU Pascalとgcc勘違いしてた・・・。
デフォではgccには含まれてないや。
gccのフロントエンドっぽい。

>>906
教科書Pascalみたいな実用的なのは、使いたくないでつ。
0908デフォルトの名無しさんNGNG
×実用的なのは
○実用的でないのは
0909デフォルトの名無しさんNGNG
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++パーザとプリコンパイルヘッダに関するものはメインラインに
統合されたとな。
0910デフォルトの名無しさんNGNG
>>909
> cxx-reflection-branch
これ気になるな。
0911デフォルトの名無しさんNGNG
gcjと組み合わせて.NETのManaged C++みたいなことができるとか・・・
0912デフォルトの名無しさんNGNG
>>910
気ままにリフレクションするんだろうな。
日清焼きそばUFOってところか。
0913デフォルトの名無しさんNGNG
>>909
メインラインとはどのライン?
latestにはそんなもの入ってないっぽいけど
0914デフォルトの名無しさんNGNG
gcc -MM で依存関係出したとき、インクルードしてたヘッダ
消したら(名前変えたりしても)エラーが出るようになっちゃうんだけど、
そういうもんなの?
0915デフォルトの名無しさんNGNG
>>884
ファイル単位だったら、アーカイブして、それリンクすれば普通にはじかれると思うが。

関数単位だったら、コンパイルオプションで -ffunction-secionts -fdata-sections 指定して
関数、データ単位にセクション切らせて、リンカオプションで --gc-sections。
コンパイルドライバ(gcc)コマンドラインからの指定なら
-ffunction-sections -Wl,--gc-sections かな?
0916915NGNG
>>886
あ、アーカイブすればいいのはわかってたのか。すまん。
0917デフォルトの名無しさんNGNG
>>914
そういうもん
0918デフォルトの名無しさん NGNG
>>913
gcc-3_4-basic-improvements-branch
http://gcc.gnu.org/gcc-3.4/changes.html
0919デフォルトの名無しさんNGNG
昨日、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
0920デフォルトの名無しさんNGNG
>>917
微妙に使いにくいな。
0921914NGNG
>>920
微妙じゃねーよー。
エラーになるんだよ。
みんなどうしてんだろ?
一回エラーが出てから対応すんのかな?
0922デフォルトの名無しさんNGNG
>>919
落ちにヤヤウケ
0923デフォルトの名無しさんNGNG
>>921
http://pc2.2ch.net/test/read.cgi/tech/1029599472/235-260n
あたりを参考に汁
0924914NGNG
>>923
gcc -MM とそのリンク先の関係がまるでつかめない。
リンク先は
「ソースファイルの一覧に変更があったときに自動的にアクションを起こす方法」
みたいだけど、、、
まさか、ヘッダファイルが消えた(名前が変わった)のを検知して、
全オブジェクト作り直しとか?
0925デフォルトの名無しさんNGNG
>>918
gcc-3.4を入れてみました。C++のパーサーテストしてますが
なかなかよさげです。ありがとうございました。
0926デフォルトの名無しさんNGNG
>>925
速いのっ?
0927デフォルトの名無しさんNGNG
gcc3.4からいよいよプリコンパイルヘッダーが使えると聞きましたが
本当ですか!?
0928デフォルトの名無しさんNGNG
>>924
> まさか、ヘッダファイルが消えた(名前が変わった)のを検知して、
Makefile(またはincludeされるファイル)を作り直し。
0929914NGNG
>>928
ヘッダが消えた(名前が変わった)のを検知して、
gcc -MM ソース全部 するの?
そりゃひどい。

で、最新のgccマニュアル見てたら、-MPなんてオプションがついてる。
コレだコレ。
あ、でも使ってるgccには無いみたい。
アァァ
0930デフォルトの名無しさんNGNG
SRCS := $(wildcard *.c)

%.d: %.c
    $(CC) $(CPPFLAGS) -MMD $<

include $(SRCS:.c=.d)
0931デフォルトの名無しさんNGNG
g++ のwarningを全部消すには
optionは何を使えばよいのでしょうか?
please help me.
0932デフォルトの名無しさんNGNG
オプションでなんとかせずにコード直せ。
話はそれからだ。
0933931NGNG
>>932
そんなぁ(w
でも解決しました。(-wで
0934デフォルトの名無しさんNGNG
cygwin32 で gcc 使って Palm/LinuxZaurus 用アプリの
開発ってできますかねぇ?
0935デフォルトの名無しさんNGNG
クロス環境作ればできんじゃないの。
0936デフォルトの名無しさんNGNG
リンカとしてgccを使う場合、gccのかわりにg++を使用しても問題はないですか?
0937デフォルトの名無しさんNGNG
突然gccの仕事をまかされました
とりあえずエディタで書いてコマンドでmakeして開発してます。

一般的な開発統合環境みたいな感じでbreakかけたりしながら
デバッグする方法はないのでしょうか
0938デフォルトの名無しさんNGNG
>>937
♪gccを知ってても〜 それだけ〜じゃコマリマス〜

gdb
0939934NGNG
>>935
Qt ってやつを使ってみたいな、と。
エミュレータもあれば便利だろうな、と。

その辺りの必要なツールやらまとめたページってどこかにありませんかねぇ?
# ダウンロード先が現在も生きているページで。
0940デフォルトの名無しさんNGNG
VCの #pragma warning( disable みたいに、特定の警告をださせないようにソースコード上から
指示を出す方法はありませんか?
0941デフォルトの名無しさんNGNG
info gcc
0942デフォルトの名無しさんNGNG
>>936
libstdc++.soがリンクされてもよけりゃ。
0943デフォルトの名無しさんNGNG
int main()
{
const char c[]="圭";
}
とすると
missing terminating " character
possible start of unterminated string literal
parse error at end of input

とでるのですが、G++のバグ?
0944デフォルトの名無しさんNGNG
>>943
"圭\"としる。日本語に対応してないからだね。
0945943NGNG
>>944
なるほど!
Thanks.

GCCのUNICODE化がもう少し進んでくれるといいなぁ。
0946デフォルトの名無しさんNGNG
"圭"はShift-JISでは0x8c5c、0x5cは '\' だから誤動作したのだろうね。
0947デフォルトの名無しさんNGNG
UNICODEと何か関係があるのか?
943のエディタが腐ってるだけだろ
何でもGCCのせいにすんな
0948デフォルトの名無しさんNGNG
>>947
(゚д゚)ハァ?
0949デフォルトの名無しさんNGNG
UNICODEでソース書いたらコンパイル通ったの?
全部2バイト文字になるからサイズが大きくなりそうだし。
0950デフォルトの名無しさんNGNG
UTF-16なんか通るのか?
0951デフォルトの名無しさんNGNG
>>947
(cygwinのG++3.2)
メモ帳で保存。
UNICODE
UTF-8
でやったけど、通ったのはANSIで保存して圭\としたときだけだった。
0952デフォルトの名無しさんNGNG
UTF-8なら通るはずだ。ゴミBOMでもついてんじゃないか?
0953デフォルトの名無しさんNGNG
>>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
と出てファイルが生成されない。
0954デフォルトの名無しさんNGNG
全然問題がちゃうやんけ。
0955デフォルトの名無しさんNGNG
>>952
BOMの存在さえしらないんだと思われ
それでUNICODE化がどーのとよく言えたもんだ
0956デフォルトの名無しさんNGNG
BOMの存在は知らなかったが,
すべてこの見えない存在に悩まされ続けていたのだった.
なぜ、L""が通らなかったのか.
すべての原因がここにあった.(完)

>>952-955
Thanx.
0957デフォルトの名無しさんNGNG
BOMってなあに?
0958デフォルトの名無しさんNGNG
#pragma comment(lib,"libcrypt.a") とかできたら楽なんだけどな。
不要にLDLIBS長くしなくていいし。
0959デフォルトの名無しさんNGNG
そして移植性がなくなって、代わりに-DLIBCRYPT=\"libcrypt.a\"が山のよう
につくようになる罠
0960デフォルトの名無しさんNGNG
>>957
O次郎の唱える呪文
0961デフォルトの名無しさんNGNG
>BOM
Begin Of …なんだっけ。
マンセー?
0962961NGNG
ウケ狙おうとして素で間違えた。(赤面
 Byte Order … だったね。
0963デフォルトの名無しさんNGNG
移植性?
0964デフォルトの名無しさんNGNG
http://www.atmarkit.co.jp/aig/01xml/bom.html
Byte Order Mark
0965-W,l名無しNGNG
>>934
モバイル板に"Linuxザウルス開発スレッド"つーのがあって、そこに情報あり。
http://pc3.2ch.net/mobile/kako/1030/10300/1030091920.html
http://pc3.2ch.net/test/read.cgi/mobile/1041161974/
0966-W,l名無しNGNG
>>958
何これ?
0967デフォルトの名無しさんNGNG
余分なライブラリをいっぱいリンクさせても結局使ってない関数群はa.outには入らないんだよね?
0968デフォルトの名無しさんNGNG
>>967
オブジェクトファイルが別ならな。
0969デフォルトの名無しさんNGNG
>>967
unixについてもう少し勉強しよう。
0970デフォルトの名無しさんNGNG
オブジェクトファイルが一緒なら使ってない関数までリンクされるんだ。
だっせー実装だな(藁
さすが前時代のコンパイラ
0971デフォルトの名無しさんNGNG
コンパイラの都合だけじゃないからややこしい
0972デフォルトの名無しさんNGNG
つーかオブジェクトファイルが一緒でもリンクは関数別なんて事
できるのか?
0973デフォルトの名無しさんNGNG
もしかしてunix依存の話になってる?
0974デフォルトの名無しさんNGNG
>>972
インクリメンタルリンクは、それに近い事やってるんじゃないか?
0975デフォルトの名無しさんNGNG
>>974
たしかに、インクリメンタルリンクができれば、関数ごとのリンクもできそう
な気がするな。
0976デフォルトの名無しさんNGNG
GCCはフリーなのでプリコンパイル済みヘッダーファイルなど大規模開発に必要な機能は
ついておりません。
0977デフォルトの名無しさんNGNG
>>976
gcc3.4ではプリコンパイル済みヘッダ機能が取り込まれる予定。
0978デフォルトの名無しさんNGNG
streamやlocaleのライブラリは、なんであんなに
一個のオブジェクトファイルにまとめてあるんだろう。
Cのライブラリみたいに関数ごとくらいで分ければいいとおもうんだけどなー。
0979デフォルトの名無しさんNGNG
gcj が javaのネイティブコンパイルができるというので使ってみたが、hello, world が
2Mbyte超でちょっと鬱。 しかも変なワーニングも出るし。
0980デフォルトの名無しさんNGNG
>>970
コンパイラの仕事ではなくリンカの仕事です。
0981915NGNG
>>967 〜
結果的には出来る様になってる。
>>915 参照の事


>>980
コンパイラ&アセンブラが部分的に抽出使用出来ないコードを吐いたら、
リンカだけではどうにもならない。オブジェクトレベルで同一オブジェクト内の別関数、
データの配置参照を解決しちゃうとか。で、gccの動作はまさにそれのはず。
0982デフォルトの名無しさんNGNG
>>970
Turbo Pascal/Delphiは十年前からスマートリンクしてたけどな。
0983-W,l名無しNGNG
>>974
インクリメンタルリンクって何?
0984デフォルトの名無しさんNGNG
>>979
Mac OS XだとHelloWorldは7MB超ですた。とほほ…
これってlibgcjとかboehm-gcを静的リンクしてるんでしょうか?
一応configureで--enable-sharedを付けたのですが。
0985デフォルトの名無しさんNGNG
自己レスです。
> Also, we don't seem to support shared libraries on
> Darwin - we need to get a newwer version of libtool
> in order for this to work, I think.
http://gcc.gnu.org/ml/java/2002-05/msg00200.html
こりゃ駄目だ… 新しいlibtoolを当たってみます。
0986デフォルトの名無しさんNGNG
>>976
ccache 使え
0987デフォルトの名無しさんNGNG
>>986
無学にしてccacheというものを知らなかったのですが、いま CXX = ccache g++としてみて
その速さにちょっと感動しています。976ではないですが、教えてくれてありがとうございます。

このccacheってなんか副作用とか使っていく上で気をつけたほうがいい点とかありますか?
0988デフォルトの名無しさんNGNG
GCCについて 2

っていうスレ誰か立ててよ
0989簡素なテンプレ案NGNG
GNU Compiler Collection について語るスレ
http://www.gnu.org/software/gcc/gcc.html

前スレ
GCCについて
http://pc2.2ch.net/test/read.cgi/tech/1007731543/

関連スレ
祝・GCC 3.0リリース
http://pc.2ch.net/test/read.cgi/unix/992942337/
0990デフォルトの名無しさんNGNG
>>989
それでいいんでおながいします。
スレタイトルはあくまで
「GCCについて 2」
という方向で
0991デフォルトの名無しさんNGNG
GCC
CC 
C C
グシシ
GCC
CC 
C C
0992デフォルトの名無しさんNGNG
GCC
CC 
C
グシシ
GCC
CC 
C
0993デフォルトの名無しさんNGNG
GCC
C
C
グシシ
GCC
C
C
0994デフォルトの名無しさんNGNG
GCC
C

グシシ
GC
C
C
0995デフォルトの名無しさんNGNG
GC
C

グシシ
GC
C
0996デフォルトの名無しさんNGNG
G
C

グシシ
GC
0997デフォルトの名無しさんNGNG
G


グシシ
G
0998デフォルトの名無しさんNGNG



グシシ



0999デフォルトの名無しさんNGNG
とりあえず999
1000デフォルトの名無しさんNGNG
次スレ
GCCについて Part2
ttp://pc2.2ch.net/test/read.cgi/tech/1007731543/
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。