GCCについて

このエントリーをはてなブックマークに追加
520デフォルトの名無しさん
下のソースをコンパイルすると
> tes.cpp:6: warning: `typename myit<Cont>::value_type' is implicitly a typename
> tes.cpp:6: warning: implicit typename is deprecated, please see the
> documentation for details
て文句つけてくるんですがなにがいけないの?implicit typename ってなに?
cygwin + gcc 3.2 20020818 (prerelease) です。

#include <iterator>

template<class Cont>
struct myit : public std::iterator<std::input_iterator_tag, const typename Cont::value_type>
{
value_type v;
myit() {};
};

template<class T>
struct mycont {
typedef T value_type;
mycont() {}
};

myit<mycont<int> > c;
>>520
myit クラスのメンバ変数 v の型が特定できんのでは?
522520:02/09/16 03:18
//ソースはこっちのほうが適切だったかも

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

template<class Cont>
struct myit : public vt<typename Cont::value_type>
{
value_type v;
};
523520:02/09/16 03:20
>>521
見落としました。ごめんなさい。で、さらにごめんなさい、どういうことですか?
>>523
myit<mycont<int> >::value_type が定義されてない。
525520:02/09/16 03:34
>>524
でも下はOKなんですよ。

struct int_type {
typedef int value_type;
};

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

>>541
そりゃ

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

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

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

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

というわけであんまり触る必要はないだろう。それなりには楽しめるが。
勿論、CやC++やdel辺りがどのように実現されているかを学びたいのな
らその必要はあるかもしれん。
MinGW のメーリングリストがすごい事になってたよ……
552デフォルトの名無しさん:02/10/01 20:59
>>551
なにがどうすごいのか50文字ジャストでまとめろ
本当にすごかったね……
Earnie Boyd wrote:
>
> Introduction
> ============
> You receive this message because you are subscribed to the MinGW

A time bomb waiting in the crontab for the first day of the month. It
should be fixed now.

Earnie.
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
です。
>>555
> ./example.c: 4: magick/api.h ???????????????????
> というメッセージが出てコンパイルできません。
その前に
bash: Magick-config: command not found
のようなメッセージはないですか?
557555:02/10/03 21:52
>>556
出ていません。メッセージは一行だけです。
>>557
入力コマンドは、
$ gcc `Magick-config --cflags --cppflags --ldflags --libs` example.c
で合ってますよね。
$ Magick-config --cflags
の結果はどうなります?
559555:02/10/03 22:27
すいません
gcc example.c
でコンパイルしていました。

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

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

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

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

で、もう一つだけ質問なんですが、この手の画像作成ライブラリで一般的な
のは他にありますか?
GD
568デフォルトの名無しさん:02/10/12 21:18
gccのソースを読もうと思ったのですが、どこにソースが
あるんでしょうか?ディレクトリのトップは主にライブラリ用の
ディレクトリしかないのでコンパイラ自身はgccだろうという
ことでgcc/下を見てみると、以下のようになっていました。
$ cd gcc
$ find . -type d -maxdepth 1 | xargs du -sH
135MB .
30MB ./ada
41kB ./ch
22MB ./config
5.1MB ./cp
3.3MB ./doc
5.6MB ./f
1.5MB ./fixinc
66kB ./ginclude
345kB ./intl
3.5MB ./java
713kB ./objc
5.5MB ./po
37MB ./testsuite
201kB ./treelang
これのどのどこにあるのでしょうか?
testsuiteはテスト用プログラムだから関係なし。
adaは自身のコンパイラをadaで書かれているんでしょうか?
adb,adsというサフィックスのソースがずらり。
poはコンパイラの多言語版メッセージがずらり。
configはターゲットのマシン,OSに応じた処理をする部分と思われます。

ってことはCはどこで処理されてるの?
gccって謎です。
569デフォルトの名無しさん:02/10/12 21:22
>>568
gccよりあなたの方が謎です。節穴系ですか?

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

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

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

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

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

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

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

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

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

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

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

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


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

>>631
ウム。
standard compliant && clean なコードを書きたい人向けのlintとしてはかなり使えると思う。
>>635
http://gcc.gnu.org/gcc-3.2/changes.html
http://gcc.gnu.org/gcc-3.3/changes.html
これらを見るとDFASchedulerが入ったことかなあ。
といってもそれ、よく分らないんだけどね(汗
cygwinで
gcc version 3.2 20020818 (prerelease)
なんだけど下のコードを
g++ -c -O2
すると、g++が落ちて「レポートしる!」って出るんだけど、どうだろう。

#include <vector>
using namespace std;
typedef int TT;//任意
void make_LR_item() {
 struct inner {
  static int go_to() {
   struct innerinner {
    static int byvec() {
     vector<vector<TT>*> succ;
     vector<TT>::iterator i, e;
     for (int i=0; i<succ.size(); ++i) {
      if (succ[i] == 0) continue;
     }
     return 0;
    }
   };
   return innerinner::byvec();
  }
 };
 inner::go_to();
 return ;
}
>>638
gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
では通りますYO.

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

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

スレチガイニテサゲ。
657デフォルトの名無しさん:02/11/01 14:45
658デフォルトの名無しさん:02/11/01 19:07
g++2.95から3.2にして大量のwarningに苦しんでるたちなんですが、
以下のコードが3.2では通りません。

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

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

両方ともstl_vector.hの中で
 typedef value_type* pointer;
 typedef value_type* iterator;
と定義されていたので同じように使えると思ってました。
にもかかわらず

stl::vector<var*>::pointer i;
stl::vector<const var*>::const_pointer j;
j=i; // これはOK

stl::vector<var*>::iterator i;
stl::vector<const var*>::const_iterator j;
j=i; // これはNG

というのが気になったもので。
# 2.95ではどちらも通るんですよね。
>>662
どこのファイル見てる?
/usr/include/c++/3.2/bits/
の下のファイル見てる?
664658:02/11/01 22:04
>>663
違うところ(usr/include/g++/)見てました。3.2だとパスが違うんですね・・・。
確かに/usr/include/c++/3.2/bits/stl_vector.hではiteratorは
アロケータ込みで定義されてます。ありがとうございました。お恥ずかしい限り。
>>661
厳密に言えば std::vector<T>::pointer は T* でなくても
スマートポインタのようなものでも OK。
つまり、operator* と operator-> が定義されていて T* と同じように
振る舞えばよいということだね。
666 ◆hMJAPH9PWA :02/11/02 09:44
std::vector<>::pointerって標準?初めて見るけど…。
『Generic Programming -- STLによる汎用プログラミング』という
本にはそう書いてあったんだが、規格書を見たらそういう記述は
見あたらなかった。標準ではないかもしれんね。
668デフォルトの名無しさん:02/11/04 07:01
すいません。最近redhat7.3でgccをインストールしたのですが
gtkを使おうと思って#include <gtk/gtk.h> と書いたのですが、gtk/gtk.h
はない、というメッセージが出てエラーになります。
で、#include </gtk/gtk.h>とすると一応gtkディレクトリにあるgtk.hを
読みにいくのですが、gtk.h内のinclude文も #include <gtk/~~.h> と書かれて
いるため全てのincludeがエラーになります。(でも#include <stdio.h>は通り
ます。相対パスを指定するとエラーになります)
gccをバージョンアップしたりしましたが同じ結果でした。
どうなっているのでしょうか?設定がよく分からないので助けてください。
-I フルパス
$ gtk-config --cflags
671668:02/11/04 09:10
>>669>>670
ありがとうございます。指定してみたらできました。
しかし始めからgtkやglibのインストールがおかしかったみたいで
、煮詰まって来て疲れました。もう一度再インストールしてみます。
VB は糞!
http://public.kitware.com/GCC_XML/HTML/Index.html
ブーストスッドレより。どうなんこれ?
>>673
よく読んでないんだけど
Doxygenみたいなもんでしょ?
違うの?
ぜんぜんちがうよん
だったら説明しる
>>676
説明も何も、概要ちゃんと書いてるべさ。あ、もしかして……
>>676
> The purpose of the GCC-XML extension is to generate an XML description
> of a C++ program from GCC's internal representation

C++ のソースコードを parse して、gcc の内部表現に対応する XML コードを
生成すると書いてあるが。
ソースコードのXML表現だったら興味あるかも。
見た目は普通のソースだけど裏ではXMLになってるとか。
680デフォルトの名無しさん:02/11/12 10:52
ソースコードにリンク貼ってくれるやつか
>>679
RTL木だと思う。
何に使うのか謎だが。


682デフォルトの名無しさん:02/11/12 13:42
gccでコンパイルした実行モジュールから、シンボル(ラベル)とアドレスの対応表を、
コードを実行せずに抽出する方法orツールはありますか? アドレスは適当な
ベースからのオフセットで可。
objdump? nm?
684デフォルトの名無しさん:02/11/12 13:54
>>619
古レスすまんが、
「ゴルフ・チャーリー・チャーリー」ではないのか?
685611:02/11/12 14:18
686682:02/11/12 15:00
>>683
nmでオプションを煮詰めればいけそうです。クロスでやってるんで、
nmがあるか心配でしたが、binutilsが一通りあったのでとりあえずOK。
thx!
gccでリンク時or後に、使われなかったデータ/関数を抽出することできますか?
ひとつの.oが多くの機能をもつライブラリをstaticにリンクした時に、使わな
いものまで入ってしまうので、これをみつけたいのです。
本当は削除したいのですが、それは手動でなんとか....
688デフォルトの名無しさん:02/11/13 08:20
なぜvtableが、デフォルトで書き込み可能セクションに出ますか?
>>687
最適化 (-O4以上) で消えないか?
690689:02/11/13 10:25
staticな関数でないと駄目だな。ごめんよ。
>>687
関数単位に分割してライブラリにするってのが常套手段、っつーかそのための
ライブラリだが、それはしたくないわけ?
>>691
うん、それが正しい。が、今あるものを分割するのが、大変なので、自動化で
きる方法ご存じないかしら、とおもって。
defineとコンフィギュレータ(構成変更のツールなの)が曲者。が、ここは、分
割を自動化する方法を考えてみますかね。ありがとう。
man csplit
694-W,l名無し:02/11/14 00:09
>>692
ar xして*.aも*.oにして、
nmしてT,U,D,Cをpickupして、
U→T,C→Dという連鎖で依存関係のgraphを作成して、(nodeは.o)
自前の*.oから到達可能なnodeだけpick upすればよい。

GTL(Graph Template Library)その他グラフ系ツールを使えば
あっと言う間じゃないかな。
695デフォルトの名無しさん:02/11/15 13:37
>>688
vtableを変更するか、意図しない結果か、何かしたいか、のどれかでしょう。
696   :02/11/17 01:54
組み込みのCPUを、PCからシリアルを通じてgdbでデバックしたい場合は、
gdbと通信するモニタープログラムがターゲット上に必要になるかと思いますが、
どうやって対応させるのでしょうか。なにか参考になるHPとかあったら教えて欲しいです。
>>696
・eCosを動かす。
・infoにstubの仕様が書いてあるので、がんばって作る。
>>696
ターゲットは何?
物によっては、メーカーのモニタを使えるぞ。
700696:02/11/18 09:49
>>697,698
resありがとうございます。
本日からちょっとやってみます。eCosは自分の力では無理っぽいです。
>>699
業務関係上具体的にはお話できません。パチンコ向けのわけのわからんCPUですが。
オリジナルのモニタープログラムにデバック機能も組み込みたかったので。
>>697
おおーそれナイス。
702デフォルトの名無しさん:02/11/19 19:58
gcc3.2でC++プログラム書いてるんだけど、
キャッチされない例外があると、即segmentation fault出てcore dumpするの
何とかなら無いすかね?
try {
 ...
} catch (*) { // ワイルドカード(藁
}
とか出来れば、それでもいいけど。
デバッグ超大変なんですけど…
>>702
catch (...)
入門書に書いてあるはずだが…
>>702
おまえ、それはバグを潜在化させるだけじゃないかと、
706702:02/11/19 22:55
本当だ、書いてあった。
お前らありがとうございました…

しかしsegmentation faultは勘弁して欲しい。
javaみたいにどこからどんな例外が投げられて、
そしてキャッチされませんでした、とか言ってくれるのが
ベストだろうけど。
unexceptedを設定知る
>>700
1. モニタにgdb-stub の機能をいれる
2. gdbのほうで、モニタのコマンドにあわせる
の二つの方法がありまする。
1はinfoみればあったはず。2はgdbのソースの remote-xxx.c をみるよろし。
モニタを自分で触れるターゲットなら1のほうがおすすめ。
709デフォルトの名無しさん:02/11/20 13:24
グッシッシ3.2.1リリースあげ
710デフォルトの名無しさん:02/11/20 15:36
711デフォルトの名無しさん:02/11/22 02:04
>>706
segmentation faultが来るなら、例外をキャッチし損ねているんじゃ
なくて、単にメモリ壊したりNULL pointer dereferenceしたりしているだけ。
terminate()ならSIGSEGVじゃなくSIGABRTが来ないとおかしい。
712デフォルトの名無しさん:02/11/22 21:18
質問です。このスレでいいのかわからないですが、どこに書いたらいいのかわからないので・・・。

makeを実行したとき、コンパイルが正常に終了したなら、できたファイルを実行して、
エラーがあったときは実行しないようにしたいのですが、
そういう時はmakefileになんて書けばいいんでしょうか?
教えてください。
コンパイル結果の実行ファイルに依存するダミーのターゲットの処理として実行すればいいじゃん。
714712:02/11/22 22:16
ただ./a.outを書いただけでできました。
しかもcoreを吐いた時は勝手に削除してくれます。
715デフォルトの名無しさん:02/11/23 03:07
gcc で、VisualCでMFCやDirectXを使って作成したプログラムをそのままコンパイルしたりできないでしょうか。
(最適化機能付のプロフェッショナル版が高くて買えないので)
C++での内部シンボル名の規則が違ったり、いろいろ不具合あって出来ないとかでしたっけ?
>>715
昔DirectXのサンプルをBolandC++でもコンパイル出来るようにしたことがあったが・・・。
#pragmaあたりでwarningでまくったりしてかなり苦労したけどな。
Borandでもそのままじゃームリだったので、gccじゃなおさらじゃない?
VC++とBCBとgccはベースは同じC++ですが全くの別物です。
特にGUIアプリに互換性は無いに等しいです。
これはC++の宿命です。C++がクソなのです。
718デフォルトの名無しさん:02/11/23 06:48
windowsで最新のGCC使いたいんですが、
cygwin入れるしか無いでしょうか?
720718:02/11/23 07:23
>>719
ありがとうございます。
そのリンク先のは
http://prdownloads.sourceforge.net/mingw/MinGW-2.0.0-3.exe
と何か違うのでしょうか?
>>720
いくつかのユーティリティが付加されている。そのため、サイズがかなり大きい。
多分どちらでもいいと思うけど、Bitwalkのリビルド版を使っている人は多い
と思う。
722718:02/11/23 07:39
>>721
ありがとうございます。
インストールしました。

で、度々すいません、
windowsアプリ(WinMainを使う)をコンパイルしたいんですが、
試しに七行スレのラスタスクロールをコンパイルすると、

gcc -O2 raster.cpp -lgdi32
c:\windows\TEMP/ccaHn6fb.o(.eh_frame+0x11):raster.cpp: undefined reference to `__
gxx_personality_v0

というリンカのエラーが出るんですが、
gccの引数に何を足せば良いんでしょうか?
(最初BitBltでもエラーになったが-lgdi32を追加したので出なくなった)
>>722
フルパスでいれたらどうなりますか?
-l"c:\windows\gdi32" とか。
他には -mwindows を付けるとか。
725718:02/11/23 07:49
>>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'
726718:02/11/23 07:53
多分'__ gxx_personality_v0'の在処を
なんとかすればいいのはわかるんですが、何なんでしょうねこれ。

↓gccに掛けてるraster.cppのソースです。

#include <windows.h>
#include <math.h>
int a=GetSystemMetrics(0),b=GetSystemMetrics(1),n,f,o=SRCCOPY,s;MSG m;HINSTANCE
i;main(){ HWND g;HDC d; i=GetModuleHandle(0);
WNDCLASS w={67,DefWindowProc,0,0,i,0,0,0,0,"R"};
RegisterClass(&w);g=CreateWindow("R",0,9<<28,0,0,a,b,0,0,i,0);d=GetDC(
g);while(IsWindow(g)){if(PeekMessage(&m,0,0,0,1))DispatchMessage(&m);else{for(n
=0;n<b;n++)BitBlt(d, s=sin((f+n+1)/40.0)*60,n,a,1,d,s,n,o);f++;}}return 0;}


>>726
これで通りましたよ。
g++.exe "C:\MinGW\Learn\raster.cpp" -o "C:\MinGW\Learn\raster.exe" -Wall -mwindows -O3 -s -I"C:\MinGW\include" -I"C:\MinGW\include\c++" -I"C:\MinGW\include" -L"C:\MinGW\lib"
728718:02/11/23 07:58
>>724
-mwindowsを付けても変わりませんでした。
729718:02/11/23 08:04
えっと、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;}
730718:02/11/23 08:08
>>727
あ、見落としていました。
g++ですか。
>>729
c++でもそのまま通りますが・・・・・
732718:02/11/23 08:10
皆様、ありがとうございました。
無事実行ファイルが出来あがりました。
733デフォルトの名無しさん:02/11/23 15:48
gccのインラインアセンブラで、
__asm__のオペランド記述の後ろに"=r"とか,"r"(tmp)
みたいなのが付いてる時がありますが、これは何なんでしょうか?
r以外にもSとかありました。
↓みたいなやつです。

__asm__ volatile ("call %0\n"
:"=r" (tmp) );
__asm__ volatile ("movl %%eax,%0\n"
:
:"r" (tmp) );
734733:02/11/23 16:51
あ、いいです。忘れてください。
735デフォルトの名無しさん:02/11/23 23:15
>717
そうか? MFC みたいなライブラリや、Unicode, SJIS, それと #pragma が絡む
と話は別だが Win32 API だけ使う分には gcc でも問題ないぞ。特に gcc だと
bcc と違って MS の提供するスタティックリンクライブラリもリンクできるし。

>730
gcc はファイルの拡張子によってコンパイル、リンク時の動作が変わるんだが、
標準だと *.cpp は C++ だと認識してくれない。gcc で C++ のソースコードを
書くときには、

1. ソースの拡張子を *.cc など、gcc が C++ ソースと認識するものに変更。
2. gcc ではなく g++ を使う。
3. gcc にコマンドラインオプション -x c++ を指定する

のどれかで対処して下さい。個人的には 2 を使うことが多いです。
736デフォルトの名無しさん:02/11/25 09:15
cygwinのgccの環境は駄目だ。*nixからの移植モノならいいのかもな。
mingwマンセー、と言っておく。
ところで、インラインアセンブラをAT&Tやめてインテル形式で記述できる
パッチ無い?NASMとか使いたいんだけど。
しつもーん
gccの拡張記述で、「戻らない関数」をコンパイラに教えて
コードを最適化する、関数修飾子ってなかったっけ。
今日別のプログラマと話してて、どうしても思い出せなかったっす。
知ってる人教えて〜
__attribute__ ((__noreturn__))
739737:02/11/25 11:18
>>738
お、そんなのもあるのか。さんきゅう
でも、volatile と同様に、
  hogehoge void quit()
みたいに関数の「前」につけるのなかったっけ・・・?
stdlib.h を見る限り↓ではないけど・・?
extern void exit (int __status) __THROW __attribute__ ((__noreturn__));
741737:02/11/25 11:25
無いのか・・・X68000のGCCで見た記憶あったんだけど、
夢だったのかも。ありがと〜>>740
なるほど、exit(3)の宣言を見ればよかったのか。
参考になりまつ。
742デフォルトの名無しさん:02/11/25 13:17
g++(3.2) + gdb で、例外が投げられたらbreakするにはどうしたらいいでしょう
>>742
void f(){throw 0;}
これをコンパイルして、外部参照してるアンダースコアつきの
シンボルにブレークポイントを仕掛ける。
・・・ってな感じでいけるんじゃないかと思った。
>>742
もっとマシなIDEを使う。
745デフォルトの名無しさん:02/11/25 13:48
>>743
_f に?
_throw ?

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

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

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

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

cygwin gccでググッて、
http://www.palmos-japan.com/dev/tools/gcc/
のページから落としたのですが・・・
最新版の所在は分かりますか・・・?(;´Д`)
764埋造:02/12/05 07:30
>>758
>>757 ちゃんは、strip を示唆したんでは。

と言いつつ、埋め。
765デフォルトの名無しさん:02/12/05 11:08
予定通りだとgcc-3.3がそろそろ出るかな。みなさんバグを発見したら
ちゃんとレポートしましょう。
766デフォルトの名無しさん:02/12/05 13:37
バグ?
2.95.3ですまそ。これ通らないといけないと思ったが通らん。
Borland-C++5.6では通る。

class record {
std::string key;
std::string value;
public:
friend bool operator< (const record &l, const record &r);
record(const std::string &k, const std::string &v)
: key(k), value(v) {}
};

bool operator< (const record &l, const record &r)
{ return l.key < r.key; }
s.cc: In function `int main()':
s.cc:6: `class string record::key' is private
s.cc:28: within this context
s.cc:7: `class string record::value' is private
s.cc:28: within this context
>>766
main()がないのでこんなのをくっつけて2.96で試したら問題ないようだけど。

int main()
{
    record r1("hoge", "asdfsd"), r2("hage", "dasfdase");
    cout << (r1 < r2);
    return 0;
}
2.95.4なら通るよ
typeof演算子みたいにtypedef templateをフライング実装してくれないかな
public class teste {
  public static void main (String [] args) {
    System.out.println ("Hellow world");
  }
}

こんなプログラム書いてgcjでコンパイルしたら、

/usr/lib/crt1.o: In function `_start':
/usr/lib/crt1.o(.text+0x18): undefined reference to `main'
collect2: ld はステータス 1 で終了しました

とか言われます。
何がいけないんだ?
771770:02/12/07 14:11
すんません、解決しました。

gcj --main=teste teste.java

ってオプション付ければいいだけだった。
>>770
javaはスレ違い
GNU Compiler Collectionの一部だからそうでもない。
774デフォルトの名無しさん:02/12/09 19:38
#include <iostream>
int main ()
{
  std::cout << "あはんはん" << endl;
  return 0;
}

文字コードEUCの、このファイルをコンパイルすると、

ahan.cc: function 内の `int main()':
ahan.cc:5: プログラムとして逸脱した文字 '\33'
ahan.cc:5: 構文解析エラー が `(' トークンの前にあります
ahan.cc:5:39: 警告: 複数行文字列リテラルは推奨されません
ahan.cc:5:39: " 文字での終端を欠いています
ahan.cc:5:39: 終端のない文字列リテラルの推定開始位置

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

typedef float MATRIX[4][4];
inline void foo(MATRIX& mat) {
 asm volatile("ここで mat に書き込む" :: "r"(&mat));
 // ここで mat 読み出す
}

こういうコードを書くと、gcc がインラインアセンブラで mat を書き換えたことに気づ
かず、レジスタに残ってる mat[4][4] の要素を再利用することがある。明示的に
mat 書き換えたよ、と宣言したいんだけどどうしたらいい?

いちおう解決方法は見つけたんだが、どっちもイマイチなんで。

1. clobbered registeres に "memory" と書く
 これだと mat に限らず、すべてのレジスタをいったん破棄してしまうから、効率が
 イマイチ…。
2. inline にしない
 これも効率の面から避けたい
785デフォルトの名無しさん:02/12/18 21:38
>>784
マクロにする
volatile MATRIX &vmat = mat;
として、
 asm volatile("ここで mat に書き込む" :: "r"(&mat));
以降では vmat を使うとどうなる?
>>786
matにvolatileつける…最適化効かないから悲しい事になるか。
やっぱりmemoryをclobberするのが正攻法では?
inline void foo(volatile MATRIX& mat)じゃだめ?
>>784
メモリ領域に出力なんだから "m" constrain を使って
asm volatile("ここで mat に書き出す" : : "=m" (mat));
でどうよ。%0 がアドレスになるからアセンブリはちと変わるかも。
gcjはJavaからネィティブコードを吐き出させることが
できるみたいですが、Windows版はあるのでしょうか?
また、swingなどのGUIコンポーネントには対応しているのでしょうか?
GUIはAWTもほとんど対応してなかったはず
792790:02/12/20 13:41
>>791
thx.
あーヤパリGUIはダメですか・・・。まだまだ実用段階ではないってことね。

Win版というか、Cygwinのgcc 3.2パッケージに含まれてるgcjが
なんとなーく動く。少なくともhello worldは動いた(w
# もちろんAWTやSwingなんてのは無い
794784:02/12/20 21:57
いろいろ参考になる意見をどうも。

volatile はどれもダメだった。元々の変数を非 volatile で宣言してあると、後で
volatile 参照変数に入れても「元の方は影響受けない」ってことみたい。(それ
だと今回はキツいんで)

>>789
これで対応しました。ただ

0x00(%0) -> %0
0x10(%0) -> 0x10 + %0

とか書くと %0 が %lo(xxxxx)(%fp) みたいに展開された時にアセンブラが文句を
言うので

"=m"(mat[0]), "=m"(mat[1]), "=m"(mat[2]), "=m"(mat[3])

と並べて対応しました。

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

j2se1.4.1_01 class files 105303bytes
gcc-3.2-3 class files 91806bytes
gcc-3.2-3 native exe(-O2) 2204515bytes
       upx -9 して 1244515 bytes
gcc-3.2-3 の実行ファイルのサイズは strip 済みですか?
799795:02/12/21 01:42
そういやしてなかった。
gcc-3.2-3 native exe(-O2) striped 1436672bytes
       upx -9 して 476672bytes
お、1MB 割った。

GUI は AWT/Swing 待つよりも SWT 使うのが良いと思った。
コソルリ>>800ゲトしてみる。
801デフォルトの名無しさん:03/01/05 08:21
age
-lなんたらって、それを使ってるオブジェクトファイルより後に付けないといけないのね
803デフォルトの名無しさん:03/01/05 18:15
gccってコンパイルの時にzlib使うみたいですが
何に使われているのでしょうか?
>>803 java の *.jar(*.zip) なファイルを読む時かな。
gcc-3.01-msvcrt.exeファイルが見つからん
806805:03/01/07 03:04
オレが探していたのはMinGWだった。
お前らの助けを借りずに済んだぜ。ヘヘ

>>806
バーカバーカバーカバーカーバ!!
お前はHTAでもやってろ! プッ
http://www.microsoft.com/japan/msdn/columns/dude/dude070599.asp
>>806
どうしたんだよw
808805:03/01/07 04:22

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

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

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


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

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

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

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

と言っているわけ。
あっちこっちでスレ違いのIP記録話が始まってウザい事この上ない。
>>57
一言で言うと、チミも構ってクンw
834832:03/01/10 10:12
と思ったらスクリプトが腐ってるのか…
これじゃ俺の書き込みの方がウザく思われるな。逝ってきまつ。
えっ!単に
ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者
ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者
ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者
ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者ヤブ医者

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

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

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

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

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

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

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

January 10, 2003
Geoffrey Keating of Apple Computer, Inc., with support from Red Hat, Inc., has contributed a precompiled header
implementation that can dramatically speed up compilation of some projects.
pchブランチの成果が入ったってことかな?
イパーイ釣れてヨカタね。
まんこ ちんこ うんこ しっこ ぴゅーぴゅー♪ 

        | |[‖★‖]       (  ★ )
        | |<丶`∀´>       <丶・∀・>
        | | )::::::::(          )::::::::(
        \::::::::::::;\        /::::::::::::;\
          |:::::::::::: l |       //´|:::::::::::: l |
          |:::::::::::: | |       | | |:::::::::::: | |
         /::::::::::::/| |      // /::::::::::::/| |
         |::::::::::/ U      U ..|::::::::::/ | |
         |::::||:::|  | |∧_∧| |  |::::||:::|  U
         |::::||::|   |( ;´Д`)/  |::::||::|
          | / | |   / |    | /.| |
         // | |   |    /   // | |
        //  | |   | /| |   //   | |
       //   | |   // | |   //   | |
       U    U  U  U   U     U
ShutOutというけど
ローカルルールに従った要請は受け付けてるんだから(^_^;)そうすればいいよ
列に並ばないで権利を主張する奴は許されない
フーン
864山崎渉:03/01/13 18:39
(^^)
既出です
866山崎渉:03/01/15 17:59
(^^)
867デフォルトの名無しさん:03/01/16 17:47
December 27, 2002
Mark Mitchell of CodeSourcery has contributed a new,
hand-crafted recursive-descent C++ parser sponsored
by the Los Alamos National Laboratory. The new parser
is more standard conforming and fixes many bugs
(about 100 in our bug database alone) from the old
YACC-derived parser.

これってcp-parser-branchのことだけど、C++マニアの人試してみた?
868デフォルトの名無しさん:03/01/17 11:59

Linux + gccで、

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

儲かる出会い系ビジネス

月収100万円オーバー!!

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

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

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

http://giko.2ch.net/129/yamada894jp.html
>>868
おじさんは君の童貞がどうしても欲しい
875山崎渉:03/01/23 20:07
(^^)
876デフォルトの名無しさん:03/01/30 16:25
3.3はもう普通に使える。なかなかいいかも。
というわけでネタなしのから揚げスマソ。
877デフォルトの名無しさん:03/01/30 17:49
878デフォルトの名無しさん:03/01/30 18:47
>>10 私は>>8ではないですが、最近はbehavior levelから直接
論理ゲートまで合成するツールも出来てきているようですよ.

ところでVerilog vs. VHDLでgoogleと結構感情的な意見の言い合い
のページとかが引っかかって英語圏の人に親近感もったりする。
879878:03/01/30 18:58
すまん、完全に間違ったところに書いてしまったよ.
880デフォルトの名無しさん:03/02/04 04:32
cygwinのgcc3.2でC++を使ってます。
クラスのコンストラクタを非インラインで定義すると、
[not-in-charge]と[in-charge]っていうふうに2つ実体が出てきます。
コードサイズがまるまる2倍になって困ってるんですが、
なんでこんなふうに2つ実体がいるのでしょうか?
881880:03/02/04 12:30
http://gcc.gnu.org/bugs.html#known
に載ってた。
でも、なっとくいかんぞーぅ。
882デフォルトの名無しさん:03/02/05 13:56
3.2.2 release age
883デフォルトの名無しさん:03/02/05 16:24
884デフォルトの名無しさん:03/02/07 23:08
シンボル参照されないオブジェクトファイルを実行ファイルに含めないようにする
リンカオプションのようなものはありませんか?
>>884
ないと思う。
886884:03/02/07 23:32
ガーン
やっぱアーカイブに詰めるしかないのか。
887名無しさん@Meadow:03/02/09 00:04
日本語混じり(shift-jis)のソースをgccすると一部の日本語文字で怒られるん
だけど…gccって何かフラグあるのかなぁ?
# eucなら上手く行くのは解ってる
LANG?
>>887
2.95,3.0,3.1の話になるけど、SJISやEUCを素直に食わせるには、
gccを日本語対応でコンパイルする必要がある。
そこらのコンパイル済みバイナリはもれなく対応してない。
890名無しさん@Meadow:03/02/09 01:44
manみて最初LANGかと思ったけど違った。
そーか…cygwinのgcc使ってるんだけど、compileし直すしか無いのか;_;
891デフォルトの名無しさん:03/02/09 01:46
(´・ω・`)http://homepage3.nifty.com/digikei/
なんだ?ここは
892デフォルトの名無しさん:03/02/09 01:46
gccのx86ターゲットでNetBurst対応のはありませんか?
(SSE2オプションとかじゃなく)
Northwood買ったのでi686-gccじゃなんか気持ち悪いんで
893デフォルトの名無しさん:03/02/09 02:08
894892:03/02/09 02:44
>>893
サンクス。
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
でいいみたね
895デフォルトの名無しさん:03/02/09 04:14
man見たところ、-O3 つけると -fomit-frame-pointer も有効になるっぽいけど。

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

>>906
教科書Pascalみたいな実用的なのは、使いたくないでつ。
×実用的なのは
○実用的でないのは
909デフォルトの名無しさん:03/02/11 12:55
http://gcc.gnu.org/cvs.html
久しぶりに見てみると、なにやらブランチが倍増しています。
gomp-01-branch
new-regalloc-branch
rtlopt-branch
bnw-simple-branch
condexec-branch
cxx-reflection-branch
cygwin-mingw-v2-branch
fixincl-branch
itanium-sched-branch
meissner-ppc-branch
merged-arm-thumb-backend-branch
new-abi-branch
pchgc-branch
pchmerge-branch
subreg-byte-branch
tree-serialize-branch
x86-64-branch
新しいC++パーザとプリコンパイルヘッダに関するものはメインラインに
統合されたとな。
>>909
> cxx-reflection-branch
これ気になるな。
gcjと組み合わせて.NETのManaged C++みたいなことができるとか・・・
>>910
気ままにリフレクションするんだろうな。
日清焼きそばUFOってところか。
913デフォルトの名無しさん:03/02/16 22:49
>>909
メインラインとはどのライン?
latestにはそんなもの入ってないっぽいけど
914デフォルトの名無しさん:03/02/16 22:52
gcc -MM で依存関係出したとき、インクルードしてたヘッダ
消したら(名前変えたりしても)エラーが出るようになっちゃうんだけど、
そういうもんなの?
915デフォルトの名無しさん:03/02/16 22:59
>>884
ファイル単位だったら、アーカイブして、それリンクすれば普通にはじかれると思うが。

関数単位だったら、コンパイルオプションで -ffunction-secionts -fdata-sections 指定して
関数、データ単位にセクション切らせて、リンカオプションで --gc-sections。
コンパイルドライバ(gcc)コマンドラインからの指定なら
-ffunction-sections -Wl,--gc-sections かな?
916915:03/02/16 23:01
>>886
あ、アーカイブすればいいのはわかってたのか。すまん。
>>914
そういうもん
>>913
gcc-3_4-basic-improvements-branch
http://gcc.gnu.org/gcc-3.4/changes.html
昨日、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
>>917
微妙に使いにくいな。
921914:03/02/17 07:49
>>920
微妙じゃねーよー。
エラーになるんだよ。
みんなどうしてんだろ?
一回エラーが出てから対応すんのかな?
>>919
落ちにヤヤウケ
924914:03/02/18 00:48
>>923
gcc -MM とそのリンク先の関係がまるでつかめない。
リンク先は
「ソースファイルの一覧に変更があったときに自動的にアクションを起こす方法」
みたいだけど、、、
まさか、ヘッダファイルが消えた(名前が変わった)のを検知して、
全オブジェクト作り直しとか?
925デフォルトの名無しさん:03/02/18 08:16
>>918
gcc-3.4を入れてみました。C++のパーサーテストしてますが
なかなかよさげです。ありがとうございました。
>>925
速いのっ?
gcc3.4からいよいよプリコンパイルヘッダーが使えると聞きましたが
本当ですか!?
>>924
> まさか、ヘッダファイルが消えた(名前が変わった)のを検知して、
Makefile(またはincludeされるファイル)を作り直し。
929914:03/02/18 11:10
>>928
ヘッダが消えた(名前が変わった)のを検知して、
gcc -MM ソース全部 するの?
そりゃひどい。

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

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

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

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

gdb
939934:03/02/20 18:37
>>935
Qt ってやつを使ってみたいな、と。
エミュレータもあれば便利だろうな、と。

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

とでるのですが、G++のバグ?
>>943
"圭\"としる。日本語に対応してないからだね。
945943:03/02/20 20:18
>>944
なるほど!
Thanks.

GCCのUNICODE化がもう少し進んでくれるといいなぁ。
"圭"はShift-JISでは0x8c5c、0x5cは '\' だから誤動作したのだろうね。
UNICODEと何か関係があるのか?
943のエディタが腐ってるだけだろ
何でもGCCのせいにすんな
>>947
(゚д゚)ハァ?
UNICODEでソース書いたらコンパイル通ったの?
全部2バイト文字になるからサイズが大きくなりそうだし。
UTF-16なんか通るのか?
951デフォルトの名無しさん:03/02/20 21:24
>>947
(cygwinのG++3.2)
メモ帳で保存。
UNICODE
UTF-8
でやったけど、通ったのはANSIで保存して圭\としたときだけだった。
UTF-8なら通るはずだ。ゴミBOMでもついてんじゃないか?
953デフォルトの名無しさん:03/02/20 21:44
>>952
(STL PORTは入れてない状態で)
undefined reference to std::basic_string<wchar_t,std::char_traits<wchar_t>,
std::allocator<wchar_t> >::basic_string[in-charge](whchar_t const*,std::allocator<wchar_t? const&)
...
collect2: ldreturned 1 exit status
と出てファイルが生成されない。
全然問題がちゃうやんけ。
955デフォルトの名無しさん:03/02/20 23:25
>>952
BOMの存在さえしらないんだと思われ
それでUNICODE化がどーのとよく言えたもんだ
956デフォルトの名無しさん:03/02/21 00:22
BOMの存在は知らなかったが,
すべてこの見えない存在に悩まされ続けていたのだった.
なぜ、L""が通らなかったのか.
すべての原因がここにあった.(完)

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


>>980
コンパイラ&アセンブラが部分的に抽出使用出来ないコードを吐いたら、
リンカだけではどうにもならない。オブジェクトレベルで同一オブジェクト内の別関数、
データの配置参照を解決しちゃうとか。で、gccの動作はまさにそれのはず。
>>970
Turbo Pascal/Delphiは十年前からスマートリンクしてたけどな。
983-W,l名無し:03/02/24 23:34
>>974
インクリメンタルリンクって何?
984デフォルトの名無しさん:03/02/25 13:24
>>979
Mac OS XだとHelloWorldは7MB超ですた。とほほ…
これってlibgcjとかboehm-gcを静的リンクしてるんでしょうか?
一応configureで--enable-sharedを付けたのですが。
自己レスです。
> 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を当たってみます。
>>976
ccache 使え
>>986
無学にしてccacheというものを知らなかったのですが、いま CXX = ccache g++としてみて
その速さにちょっと感動しています。976ではないですが、教えてくれてありがとうございます。

このccacheってなんか副作用とか使っていく上で気をつけたほうがいい点とかありますか?
GCCについて 2

っていうスレ誰か立ててよ
989簡素なテンプレ案:03/02/25 18:35
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/
>>989
それでいいんでおながいします。
スレタイトルはあくまで
「GCCについて 2」
という方向で
GCC
CC 
C C
グシシ
GCC
CC 
C C
GCC
CC 
C
グシシ
GCC
CC 
C
GCC
C
C
グシシ
GCC
C
C
GCC
C

グシシ
GC
C
C
GC
C

グシシ
GC
C
G
C

グシシ
GC
G


グシシ
G



グシシ



とりあえず999
次スレ
GCCについて Part2
ttp://pc2.2ch.net/test/read.cgi/tech/1007731543/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。