GCCについて part6

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
史上最強かもしれないツール、GCC(GNU Compiler Collection)について語るスレ。

GNU本家のGCCページ
http://gcc.gnu.org/

Binutils - Collection of binary utilities ←これも必要だぞ。
http://www.gnu.org/directory/GNU/binutils.html

GNU Binutils
http://sources.redhat.com/binutils/

GCC online documentation
http://gcc.gnu.org/onlinedocs/

Installing GCC
http://gcc.gnu.org/install/

GCC Timeline
http://gcc.gnu.org/releases.html#timeline

Calendar
http://gcc.gnu.org/develop.html#timeline
2デフォルトの名無しさん:2005/07/12(火) 14:47:47
宇宙一の開発ツール Delphi !!
3デフォルトの名無しさん:2005/07/12(火) 15:16:13
前スレ
GCCについて part5
http://pc8.2ch.net/test/read.cgi/tech/1103057320/
・GCCについて part4
http://pc5.2ch.net/test/read.cgi/tech/1090062751/
・GCCについて part3
http://pc5.2ch.net/test/read.cgi/tech/1072484422/
・GCCについて part2
http://pc2.2ch.net/test/read.cgi/tech/1046179115/
・GCCについて(過去ログ倉庫)
http://pc2.2ch.net/tech/kako/1007/10077/1007731543.html

関連スレ
・cygwin + mingwn + gcc 相談室
http://pc5.2ch.net/test/read.cgi/tech/1058134693/
・gcjって使ってる人います?
http://pc5.2ch.net/test/read.cgi/tech/1046627795/
4デフォルトの名無しさん:2005/07/12(火) 15:18:16
    r‐┐            r‐┐        r‐┐
    |_|.    __   .__|  |__         .|  |
    | ̄| | ̄!'´.  `ヽ |__  __|          |  |
    |  | |. .r"⌒ヽ .|  |  |.    ___   |  |
    |  | |  |   |  |  |  |  ,r''"   .`ヽ |  |
    |  | |  |   |  |  |  !__i'. ,r"⌒ヽ  i|  |
    |_| |_|   |_|  !、___   _ ̄ ̄ __.,|
                       !  !、 ̄ ̄,―,
                   ゝ、_  ̄ _ノ
                       ̄ ̄

  ∩∩ High performance and low price            ∩
  (7ヌ)                              (/ /
 / /                 ∧_∧            ||
/ /  ∧_∧     ∧_∧  _(´∀` )   ∧_∧   ||
\ \( ´∀`)―--( ´∀` ) ̄      ⌒ヽ(´∀` ) //
  \       /⌒   ⌒ ̄ヽ、Itanium/~⌒    ⌒ /
   |      |ー、      / ̄|    //`i Xeon   /
   |Celeron| |Pentium/ (ミ   ミ)  |    |
   |    | |     | /      \ |    |
   |    |  )    /   /\   \|       ヽ
   /   ノ | /  ヽ ヽ、_/)  (\    ) ゝ  |
   |  |  | /   /|   / レ   \`ー ' |  |  /
5デフォルトの名無しさん:2005/07/12(火) 16:55:41
犯罪者集団
                   ,,-‐''""''ー--,_
                 |"""       "'||      Low performance, High price,
:::::::::::::::::::::::::::          | Intel in the hell ||        Extreme Heat and Electricity !!!
::::::::::::::::::::::::::::::::::        | Intelは逝ってる .||
:::::::::::::::::::::::::::::::::::::::::::::::    |       ,ノ""""'||       :::::::::::::::::::::::::::::::::::::
  ::::::::::::::::::::::::::::::::::::::::::::::   |   ,/"""     ||   ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::        """"         .||      ::::::::::::::::::::::::::::::::::::::::::::::::::
                          ./ )    :::::::::::::::::::::::::::::::::::::::::::::::::
     ::::::::::::::::::::::::::::::::::::::::::::::::::       / /||
           :∩:::::::::::::::::::::::::::      / /
     ∧_∧  | |             ( (
    (´・ω・`)//      /中\   \\. ∧_∧
   ./Celeron     ∧_∧( `ハ´)    \ < `∀´ >     n  ∩
   |   雑_音   (´Д`li)Itanium.     ハ      \.   ( E) | |
      (@ε@)  /    '\ ノ        |INяg/\ \_/./' | |
( ヽ,  /    ヽ、/ Xeon// ヽ,        |    ノ  \__/   | |  ∧_∧
 \\/ ,/l  D  l ( (   ( \ノ i        |    i.         ヽヽ( ゚Д ゚ ;)
   ヽ__,ノ .| HT |  ヽ、ヽ、//ヽ、__ノ        /   /           '\Pentium\
6デフォルトの名無しさん:2005/07/12(火) 19:52:41
とりあえず、自作PC板逝け
7デフォルトの名無しさん:2005/07/12(火) 19:54:53
>>6
淫厨ですか?
8デフォルトの名無しさん:2005/07/13(水) 12:48:06
馬鹿者が、俺の周りにはそんなCPU存在しとらん
9デフォルトの名無しさん:2005/07/13(水) 13:09:47
ぶっとび!CPU
10デフォルトの名無しさん:2005/07/14(木) 16:58:29
ううう
11デフォルトの名無しさん:2005/07/15(金) 02:12:43
>>1
>史上最強かもしれないツール、GCC(GNU Compiler Collection)について語るスレ。
あ、前スレに俺が書いたテンプレのメッセージ変えやがった。



人類史上最強のツール、それが GCC。
12デフォルトの名無しさん:2005/07/15(金) 02:14:48
>>4-9
おまいら、もちつけよ。


ってことで燃料投下
ttp://www.nminoru.jp/~nminoru/diary/2005/07.html#2005-07-14
13デフォルトの名無しさん:2005/07/15(金) 02:24:05
res movsbじゃなくてrep movsbだったような気がするけど
14デフォルトの名無しさん:2005/07/15(金) 07:48:15
15デフォルトの名無しさん:2005/07/16(土) 17:15:50
まがいもののCPU使ってる奴はどっかいけよ
16デフォルトの名無しさん:2005/07/16(土) 22:19:02
SPARC, MIPSのみが選ばれたCPUです。
次はAlpha
17デフォルトの名無しさん:2005/07/16(土) 23:02:31
>>16
>>12のサイトではSPARCは最悪の命令セットなんて言われとりますな。
18デフォルトの名無しさん:2005/07/16(土) 23:02:54
GCCは、アーキテクチャを選ばないのだ。


other architecture's patch are welcome.
19デフォルトの名無しさん:2005/07/16(土) 23:15:31
>>16は湾岸スレの誤爆か?
20デフォルトの名無しさん:2005/07/17(日) 00:11:45
仮想マシンを作ってるんだけどアプリ開発のプラットフォームで行き詰って
自作アセンブラまでしか進めません。
GCCの移植を行う前にシンプルなCコンパイラが必要になってくるんでしょうか。
どういう道のりになるかわからないんだけど何かアドバイスもらえたら幸いです。
21デフォルトの名無しさん:2005/07/17(日) 00:32:29
>>20
1. 既存のプラットフォームで動く、キミの仮想マシンをターゲットに
したgccを作る
2. 既存のプラットフォームで、1を使って仮想マシンで動く仮想マシン
をターゲットにしたgccを作る

22デフォルトの名無しさん:2005/07/17(日) 01:19:20
gcc 4.0.1 がでましたね。
しかし、うちの Athlon64 3000+だと、3.4.3のほうが速いバイナリをはくんだけど、4.0の最適化を実感できた人、います?
23デフォルトの名無しさん:2005/07/17(日) 01:41:33
8bit向けgccぷりーず
24デフォルトの名無しさん:2005/07/17(日) 04:04:27
この中に 8bit arch って無かったっけ?

alpha, arc, arm, avr, bfin, c4x, cris, fr30, frv, h8300, i386, i860,
ia64, ip2k, iq2000, m32r, m68hc11, m68k, mcore, mips, mmix, mn10300,
ns32k, pa, pdp11, rs6000, s390, sh, sparc, stormy16, v850, vax, xtensa
25デフォルトの名無しさん:2005/07/17(日) 07:29:46
386には対応していても8086には対応していないくらいだから・・・
16bitはGCC自体が動く環境ではない、とは言っても
クロスコンパイラなら作れそうな気もするけど。
26デフォルトの名無しさん:2005/07/17(日) 09:30:05
>>17
SPARCの魅力は、変態メモリアクセスモードにあります。
RMOはSPARCv9からだけど。PSOは前からあるし。
27デフォルトの名無しさん:2005/07/17(日) 14:17:15
SPARCをこれから使うっていうアホな企業ってあるの?
28デフォルトの名無しさん:2005/07/17(日) 14:24:41
ていうか Z80 のパッチぐらい簡単に作れるだろ。

パッチの作成は↓にまかせた。
29デフォルトの名無しさん:2005/07/17(日) 14:49:33
avrが8bitぽい。
bit数よりも汎用レジスタがどんだけあるかのほうが重要かも。
avrはレジスタたくさんあるみたいだけど、ほとんど専用レジスタ
しかないZ80用のmd書くのはとても辛そうだ。
30デフォルトの名無しさん:2005/07/17(日) 18:19:34
プリプロセッサに#lineディレクティブを無視させるオプションてないんでしたっけ?
いまどき珍しいcwebで書かれたらしいプログラム(元ソースはなし)のコンパイルが
うまくいかないので調べているんだが、これのせいでどこでエラーになっているのか
さっぱりわからん。
31デフォルトの名無しさん:2005/07/17(日) 18:25:51
sedかなんかで全部削ってしまう方が早いだろ。

32デフォルトの名無しさん:2005/07/17(日) 20:45:09
>>30
あのさ、 man も info も --help も source も見ないようでは GNU な世界で生きていけんぞ。


-P    Do not generate #line directives
3332:2005/07/17(日) 20:51:14
>>30
げ、よく読んだらソースがねーのかよw。てゆーか、その文章意味わからんぞ。
プリプロセスしてるんでなくて、Cコンパイルしてるって事か?
なら >>31 だな。
34デフォルトの名無しさん:2005/07/17(日) 20:51:25
>>32
それじゃあ、質問の答えになってないべ
3532:2005/07/17(日) 21:00:53
>>34
だって、プリプロセスした物をもう一度プリプロセスさせるとは思わなかったんだもん。

ってゆーかクローズドですか。そうですか。
3630:2005/07/17(日) 22:43:45
>>33
ああスマソ。cwebからプリコンパイルしたらしいCソースがあるけど、このコンパイルが
通らないということです。
#lineディレクティブを解釈して__LINE__をいじるのはプリプロセッサじゃなくて
コンパイラの方なんですね。考えてみればそうか。
どちらにしてもgccにはそういうスイッチはないということで。

yaccで生成されたらしいソースが配布されているのはよく見るけど、それで
同じように困ったことがある人はいないんでしょうかねぇ。
37デフォルトの名無しさん:2005/07/18(月) 02:57:13
>>33
webなんて知らない若造には意味がわからんわな。
38デフォルトの名無しさん:2005/07/18(月) 07:24:54
>>36
>>31を読んでも意味が分からない人?
39デフォルトの名無しさん:2005/07/20(水) 00:32:28
gccって同一のリテラル文字列をまとめてくれたりするの?
printf("hello");
puts("hello");
とか書いた時。
40デフォルトの名無しさん:2005/07/20(水) 01:02:26
そのはず。

41デフォルトの名無しさん:2005/07/20(水) 01:40:21
同一ソース内でならまとめてくれる。
ただし "hello" と "llo" みたいな部分一致はまとめてくれないようだ→xstr使おう
42デフォルトの名無しさん:2005/07/20(水) 06:21:01
-fmerge-constants
43デフォルトの名無しさん:2005/07/20(水) 11:55:12
うへ。gcc -S でチェックしたんだけど、merge-constants って ld レベルでもやるのか。
知らんかった。
44デフォルトの名無しさん:2005/07/20(水) 23:16:53
C++以降、ld(collect)さんは仕事多いですよね。
45デフォルトの名無しさん:2005/07/20(水) 23:35:18
C++は最適化を含む下のレイヤが賢く処理すれば万事OKさって
面倒なことを無責任に増やしまくる方向に走ったからなあ。
46デフォルトの名無しさん:2005/07/21(木) 00:49:47
MIPSのアセンブラやリンカも命令勝手に最適化してたなぁ
47デフォルトの名無しさん:2005/07/21(木) 13:32:56
MIPSはそれやってもらわないと速度が出な…
48デフォルトの名無しさん:2005/07/22(金) 17:02:44
x86_64で-fschedule-insnsが…
49デフォルトの名無しさん:2005/07/22(金) 17:48:17
つづきを
50デフォルトの名無しさん:2005/07/22(金) 19:57:55
デフォで無効、-O2 -fschedule-insnsとかやると…
51デフォルトの名無しさん:2005/07/22(金) 20:31:39
つづきを
52デフォルトの名無しさん:2005/07/22(金) 21:21:54
お前の後ろに-fschedule-insnsが…
53デフォルトの名無しさん:2005/07/22(金) 22:02:00
unable to find a register to spill in class なんたらってエラーを…
54デフォルトの名無しさん:2005/07/23(土) 06:33:27
つづきを
55デフォルトの名無しさん:2005/07/23(土) 15:23:14
吐いて止まる事が、止まらない時はいいコード吐いてるのに…
56デフォルトの名無しさん:2005/07/25(月) 14:02:13
gcc4.0.1になってから、作成したプログラムを&をつけて実行しても、ログアウト時に同時に終了してしまいます。
4.0.0の時は問題ありませんでした。何が問題なのでしょう?
57デフォルトの名無しさん:2005/07/25(月) 14:09:56
nohup
58デフォルトの名無しさん:2005/07/25(月) 15:46:56
>>57
ありがとうございます。4.0.1からなにか変更になったのですか?リリースノートを見てもわからなかったのですが。
59デフォルトの名無しさん:2005/07/25(月) 15:58:33
いや、普通そういう時は nohup つけて実行するもんなんじゃないの?
60デフォルトの名無しさん:2005/07/26(火) 01:06:18
shellか、shellの設定が変ったんじゃないの?
61デフォルトの名無しさん:2005/07/27(水) 16:09:30
bashです。nohupをつけて実行すればうまくいきましたが、優先度が5下がってしまいます。
root権限がないので、実行後優先度を上げられません。nohupを使用時に、優先度を0で実行できないものでしょうか?
62デフォルトの名無しさん:2005/07/27(水) 16:50:07
>>61
できない
63デフォルトの名無しさん:2005/07/27(水) 17:32:15
disownしてからログアウトしてる?
64デフォルトの名無しさん:2005/07/27(水) 22:16:59
>>56-63
いくらなんでも、gcc と無関係だろ。それ。
65デフォルトの名無しさん:2005/07/27(水) 22:55:11
gccを知ってても〜 それだけーじゃ 困ります〜
66デフォルトの名無しさん:2005/07/27(水) 23:04:35
ていうか、スレ違いだろ
67デフォルトの名無しさん:2005/07/29(金) 14:40:53
myrand(int a, int b);
a〜bまでの乱数を作りたいです
68デフォルトの名無しさん:2005/07/29(金) 17:02:32
int myrand(int a, int b){
return random(b - a) + a;
}
69デフォルトの名無しさん:2005/07/29(金) 17:10:10
int myrand(int a, int b){
srand(time(0));
return random(b - a + 1) + a;
}

では?
70デフォルトの名無しさん:2005/07/29(金) 17:11:26
>>69
GJ!
71デフォルトの名無しさん:2005/07/29(金) 17:19:59
>>69
毎回系列を更新すると、乱数の質が果てしなく悪くなる。
つーか、1秒以内に一回しか呼べない関数かよ。
72デフォルトの名無しさん:2005/07/30(土) 07:31:56
(笑)
73デフォルトの名無しさん:2005/07/30(土) 21:31:44
>>69-70
自演?
74デフォルトの名無しさん:2005/07/31(日) 18:57:20
Windresの--languageオプションの使い方がわからないんだけど。
詳細な解説してるところが見つからない。
本家じゃ--languageオプションつかっても日本語は通らないの?
75デフォルトの名無しさん:2005/08/01(月) 16:05:04
-languageはまともに対応してなかったとオモタ
というか *.rc に utf8 で直接書けば日本語使えたような。
76デフォルトの名無しさん:2005/08/01(月) 18:09:31
-languageはencodingとは直接関係ない。リソースの言語指定。
Windowsインストールしたときの言語指定と同じ。
表示メッセージの切り替えなどに使う。
77デフォルトの名無しさん:2005/08/03(水) 08:06:45
gcc.gnu.org dj?
78デフォルトの名無しさん:2005/08/03(水) 15:14:25
今は見れる。
79デフォルトの名無しさん:2005/08/06(土) 11:13:04
ヘッダファイル中で

typedef struct argfoo argfoo;
struct argfoo{
int data;
argfoo *next;
};
ってな風にやってるんだけど
argfooを使う*.cファイルで

c:6: error: `argfoo' undeclared (first use in this function)
c:6: error: (Each undeclared identifier is reported only once
c:6: error: for each function it appears in.)

ってなコンパイルエラーが出て困っています。
きちんとヘッダファイルはインクルードしています。

struct argfoo{
int data;
struct argfoo *next;
};

関数に引数渡すときに一文がやたら長くなるので
こんなふうにはしたくないんですが・・・
8079:2005/08/06(土) 11:42:14
自己解決しました。

途中で構造体って事を示すm_ってのを[argfoo]の前に追加してたんだけど
ソースコード全てを変更していなかったみたい
そこの部分でエラーになってた
心配してくれたプログラマの皆さんご迷惑をおかけしました。
81デフォルトの名無しさん:2005/08/06(土) 12:20:07
どうでもいいが m_ で構造体を示すってかなり珍しくないか
82デフォルトの名無しさん:2005/08/06(土) 15:04:54
m_ は member の頭文字として、

struct argfoo {
    int m_data;
    struct argfoo * m_next;
};

にするのが一般的だな。
83デフォルトの名無しさん:2005/08/06(土) 15:14:23
構造体の場合は一般的じゃないと思うが...。
それに、クラスメンバでも _ を最後につけるタイプの人もそれなりにいる。
84デフォルトの名無しさん:2005/08/06(土) 16:42:55
>>83
m_ の使い方の話をしてるんであって、メンバの変数名の話をしてるんじゃない。
よく文盲って言われない?
8581:2005/08/06(土) 17:35:41
構造体の命名法の話をしてたのに m_ の使い方の話に持っていった方も
同類だと思うが。

自分の想定外の話の仕方が嫌ならブログでも書いとれ。
86デフォルトの名無しさん:2005/08/06(土) 19:34:50
>>81 オマエモナー
87デフォルトの名無しさん:2005/08/06(土) 21:05:46
GCCについて
88デフォルトの名無しさん:2005/08/06(土) 21:14:03
がべーじこれくたーこれくしょん?
89デフォルトの名無しさん:2005/08/06(土) 21:16:54
>>88
お前は俺か。
90デフォルトの名無しさん:2005/08/06(土) 21:19:51
>>89
お前は俺だ。
91デフォルトの名無しさん:2005/08/06(土) 21:46:27
ここは自他境界の曖昧なインターネットですね
92デフォルトの名無しさん:2005/08/06(土) 22:08:59
ガンダムチョットコケテネー
93デフォルトの名無しさん:2005/08/06(土) 23:19:11
>>90
俺もお前だ
94デフォルトの名無しさん:2005/08/07(日) 00:56:14
なんでアクシズを落とそうとしたんだっけ
95デフォルトの名無しさん:2005/08/07(日) 03:31:42
いわゆる「核の冬」で地上を寒冷化させて地上の人類を滅ぼすため
96デフォルトの名無しさん:2005/08/07(日) 03:42:44
数十億の人間を宇宙に上げる技術力があるんだから
ぶっちゃけそんな塵くらいなんとかなりそうな気がする
97デフォルトの名無しさん:2005/08/07(日) 10:05:00
昔ユカタン半島に落ちた隕石が
氷河期を起こして恐竜を絶滅させたってのの再現を狙ったわけだな。
核は関係ないと思うけど。
98デフォルトの名無しさん:2005/08/07(日) 13:10:11
>>79-97
スレ違いな上にその話題もつまらん。
99デフォルトの名無しさん:2005/08/07(日) 21:16:31
ガンダムが巨大な掃除機を持ちながら空中の塵を掃除する姿を想像しました。
その掃除機を制御するプログラムをGCC内の言語で書くならどれがいいですか?
C? C++? ObjectiveC?
100デフォルトの名無しさん:2005/08/07(日) 21:26:03
>>99
Javaじゃないか?

掃除機だけにな! ウェーハッハッハ
101デフォルトの名無しさん:2005/08/07(日) 21:30:36
D という手も。
102デフォルトの名無しさん:2005/08/07(日) 21:32:46
Adaのことも思い出してあげてください。
103デフォルトの名無しさん:2005/08/07(日) 21:37:00
>>100
意味がわからん。
誰か解説きぼん。
104デフォルトの名無しさん:2005/08/07(日) 21:38:29
ガベージコレクション
105デフォルトの名無しさん:2005/08/07(日) 21:38:48
じゃばじゃば吸うとでもいいたかったのだろう
106デフォルトの名無しさん:2005/08/07(日) 22:09:09
風呂釜の掃除か。
107デフォルトの名無しさん:2005/08/08(月) 00:04:48
只今より
GCC=Gundam Cosmo Cleaner





要はガンダム+ヤマト
108デフォルトの名無しさん:2005/08/08(月) 04:43:15
掃除機を振り回すガンダムじゃなくて、
ガンダムが使う掃除機の制御プログラムだろ?
何でもいいんじゃないか。

ガンダムの方の制御なら今のGCCにはない言語がそのころのGCCには入っているに
違いない。
109デフォルトの名無しさん:2005/08/09(火) 11:12:32
ガンダムの制御はアセンブリで出来るよな?
110デフォルトの名無しさん:2005/08/09(火) 11:36:19
サイコみゅとかは思考制御じゃよ
gccだとコンパイルできない
111デフォルトの名無しさん:2005/08/09(火) 12:17:24
鉄人28号を動かす正太郎君の手の動きだって、gccだとコンパイルできない。
制御プログラムはその先の問題だろ。
112デフォルトの名無しさん:2005/08/09(火) 15:57:22
なぁ、ここってもしかて荒されてるのか?
113デフォルトの名無しさん:2005/08/09(火) 16:02:18
フリーソフトだからね
114デフォルトの名無しさん:2005/08/09(火) 21:25:32
自分の思い通りのレスが無ければ即荒らし扱いか・・・
GNUが誤解されるからそういう思想は捨ててください。
お願いします。
115デフォルトの名無しさん:2005/08/09(火) 21:31:12
はいはい
116デフォルトの名無しさん:2005/08/09(火) 22:04:36
>>112
最近妙につまんない話題多いから、そう思うのもむりはない。
117デフォルトの名無しさん:2005/08/10(水) 14:58:55
コンパイル時のオプションのデフォルトを指定するにはどうすればよいのでしょうか?
118デフォルトの名無しさん:2005/08/10(水) 15:35:53
>>118
Makefileに書きなさい。
119デフォルトの名無しさん:2005/08/10(水) 21:23:12
make: 循環 118 <- 118 依存関係が破棄されました。
120デフォルトの名無しさん:2005/08/11(木) 23:21:38
gccで、各architectureのメンテナって全て決まってるの?
もし決まってるのならそれってどこかに書いてありますか?
121デフォルトの名無しさん:2005/08/11(木) 23:35:20
122デフォルトの名無しさん:2005/08/11(木) 23:38:43
http://www.x86-64.org/contributors/gcc
他のは検索してみて
123デフォルトの名無しさん:2005/08/11(木) 23:44:40
>>121
隊長!!それってメンテナじゃなくて、貢献者のリストだと思います!
124デフォルトの名無しさん:2005/08/12(金) 00:01:17
125デフォルトの名無しさん:2005/08/12(金) 03:28:19
隊長!!gccで受け入れ難いバグを発見した時の怒りは、どこにぶつけたらよいのでしょうか?
126デフォルトの名無しさん:2005/08/12(金) 03:36:07
>>125
patchを作って呪詛とともにメンテナに送りつける。
127デフォルトの名無しさん:2005/08/12(金) 04:18:13
隊長!!gccプロジェクトは各アーキテクチャごとに、もっとregression testをした方がいいと思いますっ!
彼らはきっと脳内コンパイルしかしてないと思いますっっ!!
実機でコンパイルしてないと思いますっっっ!!!
128デフォルトの名無しさん:2005/08/12(金) 09:27:20
2進パッチをみんなで送りつけるプロジェクト
129デフォルトの名無しさん:2005/08/12(金) 16:29:33
>>127
該当アーキテクチャのマシンを買ってビールとともにメンテナに送りつける。
130デフォルトの名無しさん:2005/08/12(金) 17:22:48
>>127
でかいプログラムをひとつ用意して、いじめまくるとか。

自力でgcc動かせないようなターゲットだと、でかいコードなんてまず取り扱わないから、
いろいろ出てきて楽しいぞ。
131デフォルトの名無しさん:2005/08/12(金) 17:32:27
>>130
あぱっちでいいじゃん
132デフォルトの名無しさん:2005/08/12(金) 21:16:45
GCC4.0.1をコンパイルできなかった・・・
133デフォルトの名無しさん:2005/08/12(金) 21:48:22
gcc魂を見せつけたいなら既存の環境にコンパイルするのでなくて、
クロスコンパイル環境を構築すればgcc Level 10ぐらいになれる。
134デフォルトの名無しさん:2005/08/12(金) 21:49:34
gccで、全アーキテクチャのクロスコンパイル環境を構築するとrmsのサインがもらえるって言うのは、








ガセ。
135デフォルトの名無しさん:2005/08/12(金) 22:14:20
>>129
そういや、昔ビールウェアなんてのがあったな
136デフォルトの名無しさん:2005/08/12(金) 22:19:45
ピザウェアにはお世話になりました
137デフォルトの名無しさん:2005/08/12(金) 22:28:17
メンテナ、キタ━━━━(゚∀゚)━━━━!!!!
138デフォルトの名無しさん:2005/08/14(日) 10:12:40
C++ でインクルードガードみたいなアホなことを書きたくないんだが、
コンパイルオプションは何を指定したらいい?
139デフォルトの名無しさん:2005/08/14(日) 12:32:53
>>138
お前がアホ。
140デフォルトの名無しさん:2005/08/14(日) 12:34:18
俺はどんなアプリも1ファイルで書ききるのでインクルードガードなんて不要。
141デフォルトの名無しさん:2005/08/14(日) 14:25:17
失礼だけど意味は通じてる?
C と違って C++ ではインクルードガードは本来必要ないはずだよ
142デフォルトの名無しさん:2005/08/14(日) 14:30:36
>>140
コンパイル時間が長くなるからやだ
143デフォルトの名無しさん:2005/08/14(日) 14:35:17
インクルードガードって何?
144デフォルトの名無しさん:2005/08/14(日) 14:43:58
>>143
俗語なので正式な定義はない

1つの翻訳単位の中で同一のファイルを2回以上引用したときに生じる重複宣言を回避する記述で
典型的な事例では #if 指令もしくは #ifdef 指令が使われる

例を挙げる

// hoge.h
#ifndef hoge_h_INCLUDED
#define hoge_h_INCLUDED

class hoge { };

#endif
145デフォルトの名無しさん:2005/08/14(日) 14:52:12
インペリアルガードって何?
146デフォルトの名無しさん:2005/08/14(日) 15:39:01
>>141
じゃあ気にしないで、インクルードガードしなければいいじゃん。必要ないんだろ?

147デフォルトの名無しさん:2005/08/14(日) 16:02:21
うん。同じヘッダを2回呼ばなきゃいいだけなんだから
たいした問題じゃないよな
148デフォルトの名無しさん:2005/08/14(日) 18:16:00
138 ですが、自己解決しました

# 以上、ギブアンドテイクの精神で釣り合うだけの内容の報告でした :-)
149デフォルトの名無しさん:2005/08/14(日) 18:40:42
スレ荒さしといて何馬鹿なこと言ってるんだ?
解決策書いてけよ
150デフォルトの名無しさん:2005/08/14(日) 19:33:31
ヘッダの中じゃなくてインクルードする側でやる方が賢い
151デフォルトの名無しさん:2005/08/14(日) 19:53:21
>>150
おまい、頭いいな!!!
152デフォルトの名無しさん:2005/08/14(日) 21:43:43
今更インクルードガードで盛り上がれるのが羨ましい
153デフォルトの名無しさん:2005/08/15(月) 14:44:18
インクルードガードと聞いてインペリアルクロスを連想し
ロマンシングガイルまでたどり着いたのだが

リンク先がなくなってる!
154デフォルトの名無しさん:2005/08/15(月) 18:33:06
155デフォルトの名無しさん:2005/08/15(月) 22:57:58
>>154
リンク先が無いんだよ!
156デフォルトの名無しさん:2005/08/15(月) 23:03:31
ガイルつながりで質問

変数の初期化がいるのに未設定のまま関数の引数に使ったりしたとき
gcc -Wall でWarning出てたと思ったんだけど、今やったら出なくなってる
なんていうオプションを使うんだっけ?
157デフォルトの名無しさん:2005/08/15(月) 23:23:40
>>156
-Wallで警告が出るはず。ただし、-O以上の最適化オプションが必須。
と、gcc-3.4.4のinfoに書いてある。
158デフォルトの名無しさん:2005/08/15(月) 23:26:36
-Wuninitialized + 最適化 + 条件諸々
能無しでスマソ。
159デフォルトの名無しさん:2005/08/15(月) 23:27:29
>>157-158
ありがとう! お礼にタメ解除してあげる
160デフォルトの名無しさん:2005/08/15(月) 23:27:34
能無しの上に被りました。
161デフォルトの名無しさん:2005/08/16(火) 10:07:03
>>156
質問する場合は、gccのバージョンも書く事。
162デフォルトの名無しさん:2005/08/16(火) 22:00:11
gccすげええええええええ
163デフォルトの名無しさん:2005/08/17(水) 21:24:33
GCC3.4.4でi386がターゲットでビルドしようとしてるんだけどmakeでこける・・・ orz
164デフォルトの名無しさん:2005/08/17(水) 21:33:26
そんなあなたに
gmumake

これで検索してみ
165デフォルトの名無しさん:2005/08/17(水) 21:46:26
Objcをmakeしようとしたところでstdio.hがないって怒られてる
166デフォルトの名無しさん:2005/08/18(木) 22:08:49
C MagazineにGCC4の比較記事発見。
167デフォルトの名無しさん:2005/08/19(金) 11:09:30
>>166
Σ(゜Д゜;) マジ!

C Magazineって以前は読んでいたがあったが、コンパイラ関連の記事だと
IntelコンパイラやVisial Studioの話ばっかりだったので近頃全然読まなくなった。
168デフォルトの名無しさん:2005/08/19(金) 13:09:32
立ち読みしてきた。
・tree-ssaとかの話
・ベンチマーク
てなところですか。

買ってまで読むほどの内容じゃないな。
169167:2005/08/19(金) 19:38:08
>>168
げっ!もう買っちゃったぞ。
全160ページ中のたった8ページのGCC記事だけの為に。

けど、GCCの内部(しくみ)まで書いてる記事はあまり無いんで、別にいいやと思ってる。
170デフォルトの名無しさん:2005/08/19(金) 19:44:27
>>169
そういえば、書籍じゃないからちょっと違うんだけど
この前gccのソースを読んだんだけど
内部の仕組みまでみっちりと書いてあったよ。
あれはひさびさにためになったなぁ
171デフォルトの名無しさん:2005/08/19(金) 20:19:51
GCC解説・カスタマイズ記事は、Interface誌あたりに載ってなかったっけ?
172167:2005/08/19(金) 21:49:55
>>171
GCCの使いかた or オプションの紹介 or クロスコンパイル方法とかなら
雑誌や書籍やウェブサイトにあるけど、
GCCの内部動作を解説してるのは見た事ないような...

オライリーとかから、「詳細GCCインターナル」とか出れば買うかも。(w
173デフォルトの名無しさん:2005/08/19(金) 22:15:23
そういう資料はUsing and Porting GCCくらいかの〜
さわりの書いてある本も昔あったような気がするが。
174デフォルトの名無しさん:2005/08/19(金) 23:29:32
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).
175デフォルトの名無しさん:2005/08/19(金) 23:38:47
>>174
3.0.4?
176デフォルトの名無しさん:2005/08/19(金) 23:50:22
>>174
3年半ほど前にリリースされてますが。
177167:2005/08/19(金) 23:57:55
>>173
これらの事かな?

Gcc Command Options: Using and Porting the Gnu Complier Collection Gcc
(Using and Porting the GNU Compiler Collection)
ttp://www.amazon.com/exec/obidos/tg/detail/-/0595100368/

Gnu Reference: Using and Porting the Gnu Complier Collection Gcc
(Using and Porting the GNU Compiler Collection)
ttp://www.amazon.com/exec/obidos/tg/detail/-/0595100376/

Gcc Target Description Macros: Using and Porting the Gnu Compiler Collection Gcc
(GCC Target Description Macros)
ttp://www.amazon.com/exec/obidos/tg/detail/-/0595100384/


Customer Reviewsで、
>Not sure why I should buy this book as it is available on-line
>on a mirror-site near you. Save the trees!
>BTW, is this a typo or the second C in GCC now means Complier vs. Compiler as it
>was always the case in the past. The art on the cover looks bogus to me. Just
>wondering if the rest of the volume has been carefully corrected... Doesn't look
>to promising. Once again, it's easy to correct on the web.
>Prints are a total different matter.
なんて事を言われてるけど.....
178デフォルトの名無しさん:2005/08/30(火) 14:40:34
>>168
GCC4.0だと-O最適化だけでGCC3.4の-O3に匹敵する速度向上が得られるような事が書いてあったが・・・あれホントなのかな。
179デフォルトの名無しさん:2005/08/30(火) 19:28:16
>>178
特定条件下に限っては事実でしょ。
全般的にはいまいち感が漂うけど、土台を切り替えた直後でこれだけ速ければ上等だと思うけど。
それよりも strict-aliasing で死屍累々なことが大問題(^^;
180デフォルトの名無しさん:2005/08/30(火) 21:50:01
ちゅうか、gcc4.0 + -mtune=pentium3でemacsがコンパイル通らんが……
ダンプでこける。
もちろん、-mtune付けなければ問題ないけど。emacsが対応してないだけだろうな。
181デフォルトの名無しさん:2005/08/30(火) 22:51:04
>>180
-mtune ではなくて -march ではどうか?
てゆーかさ、今どきの流行は -mtune でなくて -march でそ。
182デフォルトの名無しさん:2005/08/30(火) 23:05:09
流行りて(w
目的違うやん
183デフォルトの名無しさん:2005/08/30(火) 23:18:49
どうやら同じ意味みたいだね。-mtune、-march
ttp://gcc.gnu.org/onlinedocs/gcc-4.0.1/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options

4.0.1でも発生するのか?
184180:2005/08/30(火) 23:24:34
>>181
あゃ、間違えたぞ。
-march=pentium3だった。
ちなみに、gcc3系だと-march=pentium3でも無問題。
185180:2005/08/30(火) 23:43:32
>>184
おぅ?同じなの?
確かにどっちでも失敗する。4.0.1でも駄目。
186デフォルトの名無しさん:2005/08/31(水) 00:25:10
temacsのビルドには成功するけど、それ動かすところで落ちるパターン?
187デフォルトの名無しさん:2005/08/31(水) 00:25:12
-fno-strict-aliasing とか
188デフォルトの名無しさん:2005/08/31(水) 01:17:42
>>183
> どうやら同じ意味みたいだね。-mtune、-march

ちゃうやろ、よく読めや。
189デフォルトの名無しさん:2005/08/31(水) 01:35:44
ヒント: -march=pentium3 -mtune=pentium3
190デフォルトの名無しさん:2005/08/31(水) 03:06:30
gcc での C++ の例外の扱いについて質問があります.

gcc 3.3.5 で「throw "エラー!";」見たいな行を含むプログラムを -g オプショ
ンつけてコンパイルして,valgrind を使って実行したところ下記の様なメッセージが出ました.

# Hoge.cpp:137 がちょうど throw 文がある行です.

==13524== 8 bytes in 1 blocks are still reachable in loss record 2 of 30
==13524== at 0x1B903BAE: malloc (vg_replace_malloc.c:131)
==13524== by 0x1C20A66F: __cxa_get_globals (in /usr/lib/gcc-lib/i686-gentoo-linux/3.3.5-20050130/libstdc++.so.5.0.7)
==13524== by 0x1C20B267: __cxa_throw (in /usr/lib/gcc-lib/i686-gentoo-linux/3.3.5-20050130/libstdc++.so.5.0.7)
==13524== by 0x1BCABE8C: hoge(char const*, unsigned*) (Hoge.cpp:137)

これを見ると,throw することでメモリリークしてるように見えるのですが,
そういう物なのでしょうか?

ちなみに,投げられた例外は,下記の用にして catch してます.

try {
 hoge();
} catch(const char *) {
// 無視
}
191デフォルトの名無しさん:2005/09/02(金) 12:39:05
age
192デフォルトの名無しさん:2005/09/02(金) 13:26:54
>>4-5
どっちやねん
193デフォルトの名無しさん:2005/09/02(金) 16:13:22
march: アーキテクチャに最適化し、そのCPU以外では動作を保証しない。
mtune: スケジューリングに最適化するが、他のCPUでも動作を保証する。
194デフォルトの名無しさん:2005/09/03(土) 03:00:53
gccで 漢字の文字をprintf();で出力することは容易ですか?
それとも皆さん、英語でコメントを打っておられるのでしょうか
195デフォルトの名無しさん:2005/09/03(土) 04:01:05
同じCPUで周波数だけ違う場合、marchでOKですか?
196デフォルトの名無しさん:2005/09/03(土) 05:02:47
>>194
コメントは英語に決まっとろうが
世界屈指の難解語でコメント書いた気になってるヴォケは逝ってよし
197デフォルトの名無しさん:2005/09/03(土) 05:32:42
>>196
それが金に結びつくのなら、なんだか金を稼げる匂いがするので英語で書いておきます
198デフォルトの名無しさん:2005/09/03(土) 09:54:22
>>194
コメント?

フォーマット文字列に漢字を使えないかって言いたいわけ?
199デフォルトの名無しさん:2005/09/03(土) 10:40:03
>>194
何が聞きたいのか正しく意図が伝わってこないが、たぶんできる。信じてやってみろ。

200デフォルトの名無しさん:2005/09/03(土) 11:21:14
>>195
duron なんかは周波数でコアが違ってて -march も違った気がする。
201デフォルトの名無しさん:2005/09/03(土) 16:08:21
>>194
eucなら大丈夫。sjisは\(バックスラッシュ)の問題があるのでやめといたほうが吉。

>>196
何かイヤな事でもあったんだろうか。
202デフォルトの名無しさん:2005/09/03(土) 16:14:13
x86(IA-32)だと-marchの違いって、cmov(コンディションムーブ)の使用の有無
ぐらいだと思うんだけど、他に何かあるのかな?
203デフォルトの名無しさん:2005/09/03(土) 16:15:41
>>201
韓国語でコメント書かれて切れたと想像してみる。

インドだと英語だから無問題。
204デフォルトの名無しさん:2005/09/03(土) 20:45:29
ストールを避けるくらいのことはしているんじゃないの。
205デフォルトの名無しさん:2005/09/03(土) 21:07:39
>>194,>>201
最近のgccならオプションで文字コードを指定できるので全然問題ない。
eucでソースを書き、オブジェクトファイルに持たせるリテラルデータはsjisなんてこともできる。

206デフォルトの名無しさん:2005/09/07(水) 01:40:06
64bit の gas では、 .long と .int は同じなんだね。
gcc on x86-64 の C では long = 64bit, int = 32bit だから、
なんかちょっと嵌まっちゃったYO!!


ありがとう stallman!(涙)
207デフォルトの名無しさん:2005/09/07(水) 02:30:44
GCCフリークの皆様方
なんかGCC関連の書籍が出るみたいですよ

実例で学ぶGCCの本格的活用法
岸 哲夫 著  B5判 288ページ  定価2,310円(税込)
2005年9月24日発売予定
ttp://www.cqpub.co.jp/hanbai/books/MIF/MIFZ200511.htm
208デフォルトの名無しさん:2005/09/07(水) 03:54:04
I/F誌に連載されてたののまとめかな?
だったら参考書として手元に置いときたいんでホスィ
209デフォルトの名無しさん:2005/09/07(水) 23:52:10
皆はgccのソースとか普通に読める人達?
俺はかなりストレスたまってダメだったんだけど
>170さん
コメントみっちりどこにのってたの?
これは返答にかなりの工数が必要ですね、ってんで覚えてたら是非
210デフォルトの名無しさん:2005/09/08(木) 11:42:25
>>209
いや、コメントなんて不確かなものではなくて
コードがみっちりと書いてあった
211デフォルトの名無しさん:2005/09/08(木) 12:02:50
gcc-2.xの頃、ソース読んだけど、
flow.c, gcse.c辺りの最適化の部分はコメントが結構多いよ。
けど、コードがすっきりしてないので解読しずらい。
学生の頃かなりコードは読んだけれど、解読が一番疲れたね。

gccより一時期最適化が優れていたコンパイラとか、
8bit時代に隆盛を誇ったコンパイラのソースを見る機会があったけれど、
ずっとすっきりしていたね。(どちらもproprietaryなコンパイラ)
212デフォルトの名無しさん:2005/09/08(木) 16:31:46
>>211
8bit 時代のコードなんと比べてもなぁ。
まぁ、gcc のコードがあまり綺麗ではないのは事実だけど。

4.x はフルスクラッチだっけ?それなら多少マシになってるんじゃないか。
213デフォルトの名無しさん:2005/09/08(木) 17:07:19
某16ビットコンパイラは一旦(独自)アセンブラ出力に落とすので、
一部の最適化のためにニモニックの方に工夫を施してあったりもした。
お蔭で調べる範囲がプロセスを跨る罠。
214デフォルトの名無しさん:2005/09/08(木) 17:26:08
>>212
> 8bit 時代のコードなんと比べてもなぁ。

いや、凶悪な最適化をするので有名なコンパイラで、おもちゃコンパイラじゃないよ。
215デフォルトの名無しさん:2005/09/08(木) 17:48:39
GCCをおもちゃにして遊んでる奴が一番最強。
216デフォルトの名無しさん:2005/09/08(木) 19:38:17
>>214
8bit 時代の最適化と 32bit/64bit の最適化、どっちが複雑か考えるまでもない。
比較の対象外。
217デフォルトの名無しさん:2005/09/08(木) 19:52:41
確かに最適化の難しさは違うよなあ。
アラインメントなんか気にしなくていいし、パイプライン気にしなくていいからジャンプし放題。
レジスタでもメモリでも速度余り違わないからレジスタ割付なんて考えなくていいし、ペアリングもない。
218デフォルトの名無しさん:2005/09/08(木) 19:55:55
So what?
219デフォルトの名無しさん:2005/09/08(木) 20:56:20
凶悪な最適化って言うと、コードの意味が変わるやつか?
220デフォルトの名無しさん:2005/09/08(木) 22:02:11
volatile char *p;
void wait(void)
{
volatile char *tmp = p;
while(p != tmp) ;
}

こんなんで volatile を無視しやがった〜とか騒ぎ出すアフォが絡んでるケースが大半を占める
221デフォルトの名無しさん:2005/09/08(木) 23:45:50
>>219
8bitCPUの典型的な最適化は、自己書き換えだね。
#ROM化が大変なんだけど。
222デフォルトの名無しさん:2005/09/09(金) 00:15:50
何が?
命令書き換えなんてどーせアセンブラで書いてるだろ
それとも動作保証のない禁止パターンでも使ってたのか
俺の知る限り 8bit には diagnose の類はなかったぜ
223デフォルトの名無しさん:2005/09/09(金) 00:17:24
>>222
だからROM化が大変という話でしょ
RAMの上で動くなら問題ないけどさ
224デフォルトの名無しさん:2005/09/09(金) 00:23:52
だったら「大変」がますます意味わかんねー
225デフォルトの名無しさん:2005/09/09(金) 01:46:01
>>217
「ペアリング」っていう言葉が出てくるあたり、知識がPentiumで止まってるっぽい。
226デフォルトの名無しさん:2005/09/09(金) 03:20:52
8bitで止まってる奴よりはましな気がするが。
227デフォルトの名無しさん:2005/09/09(金) 04:55:35
対等な条件ではないものを持ち出してきてる時点で、脳が沸いてるとしか思えんな。
228デフォルトの名無しさん:2005/09/09(金) 14:10:51
>>224
ROMからRAMに転送させるのが大変、とか。
その方法探す(マニュアル読む)のが大変、とか。

>>227
実際やってみてその無意味さに気が付くのもまた勉強。
普通なら脳内でやってすぐ気づくだろとか言わない。

最適化というよりは難読化になるけど、
複数バイトの命令の真ん中にジャンプして以降闇の中
なんてコードがあったなあ。
229デフォルトの名無しさん:2005/09/09(金) 15:21:16
ROM上で動くから書き換えできないということで
230デフォルトの名無しさん:2005/09/09(金) 16:22:26
>>228
闇の中どころか、3バイト命令の2-3バイト目はオペランドだからそこに2バイト命令を
置いておくのはよくある手法。
231デフォルトの名無しさん:2005/09/10(土) 01:33:37
話ぶったぎっちゃうけど

if (eval) {
...;
}

if (eval)
...;
と書くのは何故?最適化とか何か特別な意味があるの?
gnuがらみ嫌がらで外して書いてのかって思う
ブロック書いてくれるだけでだいぶ読みやすくなる。俺が変なの?
232デフォルトの名無しさん:2005/09/10(土) 04:13:06
>>231
一行だったら時と場合によるんじゃ。
それともif 〜 else には必ずブロックつけろって言うこと?
233デフォルトの名無しさん:2005/09/10(土) 04:27:20
>>231
その辺は宗教でしょ。プロジェクト内で統一されていれば問題ない。
GNU コーディング規約に従っているので、俺は別に構わないと思う。
234デフォルトの名無しさん:2005/09/10(土) 04:39:21
>>231
>gnuがらみ(は)嫌がら(せ)で外して書いて(いる)のかって思う
これは嫌がらで外して書いてのか?
235デフォルトの名無しさん:2005/09/10(土) 04:46:23
わろす
236デフォルトの名無しさん:2005/09/10(土) 05:54:27
ifに必ずブロックを付けろという奴はいるけど、ポリシー貫くなら
if (eval) {
} else { if (eval) {
} }
と書かなきゃ片手落ちだよな。
237デフォルトの名無しさん:2005/09/10(土) 06:03:04
もしもelsifがあったなら・・・と思ったことはある。
238デフォルトの名無しさん:2005/09/10(土) 06:41:48
ない
まったくない

elsifなのかelseifなのかelifなのか

つーか氏ねよそんなこと思うお前
239デフォルトの名無しさん:2005/09/10(土) 06:52:02
>>237
そんなのマクロでどうにでもなるじゃないか。
240231:2005/09/10(土) 09:10:59
>233
そうなの?コンパイルすれば一緒になんの?
>234
恐縮です

if ()
..;
else
for ()
if ()
break;
これも入れないでいけちゃの?タフだね
それより寝坊ねまずいね、急いで風邪ひかねーとまずい
241デフォルトの名無しさん:2005/09/10(土) 09:32:33
個人的には、行を変えるならブロック化して欲しい。
for (...; ...; ...) {
;
}
って感じで。
逆に言うと、ブロック化しないなら1行野郎で。
for (...; ...; ...) ;

あと、これはいやだ。
if (...) {
...;
...;
} else
...;

もちろん、これもいや。
if (...)
...;
else {
...;
...;
}
最近目にした公開ソフトのコーディングがこれでね……
242デフォルトの名無しさん:2005/09/10(土) 09:33:21
べつにいいだろ
いやとか言う奴は死ね
243デフォルトの名無しさん:2005/09/10(土) 09:39:23
>>242
いやだから、修正する前に全部ブロック化しましたが何か。
244デフォルトの名無しさん:2005/09/10(土) 09:52:40
いちいち自分の馬鹿さ加減をスレ違い報告する奴は死ね
245デフォルトの名無しさん:2005/09/10(土) 10:04:10
gcc4って失敗作?
246デフォルトの名無しさん:2005/09/10(土) 13:11:23
ブロック化しようぜ、そこいらに神経使うのうんざりだ
どっちでもいいんだけどさ、統一しよう!
独裁的にしちゃってくれてかまわんさ

熱くなっちまった、今手元にあるの非じゃないよ

( .. ? :
( ? : (..))
((.) ? : ))

見てこれ!マジ冗談抜き!!犯人でてこいやこれえ!!
ブロックを書かない派はそれのほうが見やすいって事なんだよね
これも速読できちゃうの?助けてくれない?
247デフォルトの名無しさん:2005/09/10(土) 13:23:54
やだ
248デフォルトの名無しさん:2005/09/10(土) 14:47:01
>>240
一緒になる。無知を晒すなよ…。

何度も言うけど、どれが読みやすいかなんて主観の問題。人によって違う。
だからプロジェクト間で統一が取れていればそれで良いと思う。
249デフォルトの名無しさん:2005/09/10(土) 15:38:18
g++ A.a foo.o -o exec
こんな感じで実行ファイルを作ってたんですが、
g++ A.a B.a foo.o -o exec
と、リンクする.aファイルを2個にしたら上手く行かなくなりました。
こういった場合はどうしたら良いのでしょうか?
250デフォルトの名無しさん:2005/09/10(土) 15:43:59
A.aはライブラリなのかい
251デフォルトの名無しさん:2005/09/10(土) 15:46:02
ar rs A.a foo.o bar.o ....
みたいに作ったものです。B.aも同じ感じです。
252デフォルトの名無しさん:2005/09/10(土) 15:48:38
入れ替えて味噌
g++ -o exec foo.o B.a A.a

B.aがA.aに依存していたらB.aを前にしてみるとか
俺にはこれ以上はわからない スマン
253デフォルトの名無しさん:2005/09/10(土) 15:54:05
>>252
その並びに変えたら行けました。でもってB.aはA.aに依存してました。
ありがとうございました。
254デフォルトの名無しさん:2005/09/10(土) 16:53:31
もし相互に依存しているなら、A.a B.a A.a B.aで解決。
#しないケースもあるから大笑い。
255名無しさん@そうだ選挙に行こう:2005/09/10(土) 17:34:58
>GNUが低品質なのはconfigureと無関係ではないだろう。
256名無しさん@そうだ選挙に行こう:2005/09/10(土) 22:15:16
嘔吐conf
嘔吐make
257名無しさん@そうだ選挙に行こう:2005/09/10(土) 23:32:53
混不具屋
258名無しさん@そうだ選挙に行こう:2005/09/10(土) 23:43:16
自慰乳
259名無しさん@そうだ選挙に行こう:2005/09/11(日) 00:37:48
gccってコンパイル速度糞遅い
Delphiぐらい速くならんの?
260名無しさん@そうだ選挙に行こう:2005/09/11(日) 00:39:23
Delphiは某の伝統もあって糞早
でもGCCてガマンできないほど遅くはないと思うがのう?
261名無しさん@そうだ選挙に行こう:2005/09/11(日) 00:44:09
言語仕様の違いや最適化の度合がコンパイル速度に影響しないと思っている
馬鹿がいるスレはここですか?
262名無しさん@そうだ選挙に行こう:2005/09/11(日) 01:04:11
>>259
Pascal がお行儀の良い言語仕様だから
263名無しさん@そうだ選挙に行こう:2005/09/11(日) 01:26:15
>>262
Ada@gccはC++と速度大差無いぞ…
Delphiのコンパイラはx86に最適化されてる気がする。
gccはクロスが売りだし…
264名無しさん@そうだ選挙に行こう:2005/09/11(日) 01:45:39
Pascalの構文はLLって言うんだったっけ?

しかし、TurboPascalにはお世話になったよ。
統合環境といい、爆速コンパイルといい、文字出力が言語仕様に
組込まれているし、エラーメッセージが日本語で表示されて、
なおかつ1つしか表示されないし、教育用途には最適だったな。

エラーメッセージが最初の1つしかでないなんてコンパイラとしては
最低だが、初心者にとっては非常に重要。
画面がエラーメッセージで埋まろうもんならやる気なくすしね。

スレ違いか、スマソ...
265名無しさん@そうだ選挙に行こう:2005/09/11(日) 02:07:40
>>263
>クロスが売り
           ・ ・ ・
そのおかげで苦労するんだけどな

なんつったりしてなハッハッハ
266名無しさん@そうだ選挙に行こう:2005/09/11(日) 02:23:42
Delphiコンパイラはx86というよりPascalに最適化というほうが正しいか…
.dcuなんてプリコンパイルヘッダ+.objでしかもユニット単位だからC++のようにひとつのクラスのメソッドが別.objに格納されるケースなんて考えなくていいし。
実際C++Builderのコンパイルはそんなに早く無い。
gccはクロスだけじゃなくミックスランゲージコンパイラでもあるからな…(C++のプリコンパイルヘッダやAdaの.ali等はあるけど)
267名無しさん@そうだ選挙に行こう:2005/09/11(日) 03:26:26
超初心者です、教えてください。
GCC でコンパイルするとき -S って付けると、アセンブラのソースが出力されますが、
C++のソースをコメントとして一緒に出力することはできないでしょうか?
C++で書いたものがどういう機械語になるのか調べたいのですが・・・
268名無しさん@そうだ選挙に行こう:2005/09/11(日) 03:42:47
>>245
失敗ってことはないよ。作りかけではあるけど。
・・・というか、たいていのソフトウエアは、常に作りかけなんだけどね。
269名無しさん@そうだ選挙に行こう:2005/09/11(日) 03:52:54
>>267
C++のソースを一緒に吐けるのかは知らないけど、
ソースレベルデバッガを使うってのはどうでしょうか。
270名無しさん@そうだ選挙に行こう:2005/09/11(日) 05:11:15
>>267
c++ -g -c foo.c して
objdump -S foo.o すれば同じようなことはできるかな。

gccにそういうオプションあってもいいのにな
271名無しさん@そうだ選挙に行こう:2005/09/11(日) 07:32:00
>>261
コンパイル時間が余分にかかるくせにバイナリでけえんだよな
272名無しさん@そうだ選挙に行こう:2005/09/11(日) 07:34:46
荒らしは無視 > all
273名無しさん@そうだ選挙に行こう:2005/09/11(日) 07:38:47
272=荒らしな罠
274名無しさん@そうだ選挙に行こう:2005/09/11(日) 07:47:06
>>267
extern void hoge();
main()
{
asm("; --------------------");
hoge();
asm("; --------------------");
}
275名無しさん@そうだ選挙に行こう:2005/09/11(日) 09:37:49
初期のTurboPascalは1パスコンパイラだった。
最後までそうだったかは知らない。Delphiは1パスコンパイルできる仕様なんだろうか?
276名無しさん@そうだ選挙に行こう:2005/09/11(日) 09:40:03
最適化する場合は少なくとも式に対して2パス必要。
そうしないと代入でえらい非効率になる。
277名無しさん@そうだ選挙に行こう:2005/09/11(日) 09:50:10
2パス処理のくせに前方参照ができない変な奴が大半を占める歪んだ現状
278名無しさん@そうだ選挙に行こう:2005/09/11(日) 10:03:48
よぉアホども
279名無しさん@そうだ選挙に行こう:2005/09/11(日) 10:06:27
GNUは低品質ソフトを量産してるくせに業界ででかい顔
280名無しさん@そうだ選挙に行こう:2005/09/11(日) 15:38:40
>>279
GNUという組織はない。
281名無しさん@そうだ選挙に行こう:2005/09/11(日) 16:23:31
>>265を皆が無視している件について
282名無しさん@そうだ選挙に行こう:2005/09/11(日) 16:30:17
>>281が観測してしまったので>>265の位置(評価)が決まってしまった
283名無しさん@そうだ選挙に行こう:2005/09/11(日) 16:50:22
初歩質問です。
下のmakefile でコンパイルはうまくいくんですが、ライブラリリンクの方法を # でコメントしてある記述で
行おうとすると、dll not found エラーになります。
-L オプションでライブラリパスを指定しておけば、ライブラリ名だけでリンクしてくれるものと思っているの
ですが、違うのでしょうか? また下記では、-l オプションを使わずにリンクできていますが、-l はどういう
ときに使うのでしょうか? ライブラリの形式が関係あるのかな?
###########################################################
BOOSTDIR = c:/usr/boost

CPPFLAGS = -I$(BOOSTDIR)/include/boost-1_33
LIBS = $(BOOSTDIR)/lib/boost_filesystem-gcc-d-1_33.dll

#CPPFLAGS = -I$(BOOSTDIR)/include/boost-1_33 -L$(BOOSTDIR)/lib
#LIBS = -lboost_filesystem-gcc-d-1_33.dll

TARGET = fs.exe
OBJS = fs.o

$(TARGET) : $(OBJS)
g++ -o$@ $(OBJS) $(CPPFLAGS) $(LIBS)
############################################################
284283:2005/09/11(日) 16:56:05
>下のmakefile でコンパイルはうまくいくんですが

言い直します

>下のmakefile でメイクはうまくいくんですが

です。
コンパイルだけじゃなくリンクもできてます。
285名無しさん@そうだ選挙に行こう:2005/09/11(日) 17:37:20
cygwinはよくしらんが、

LDFLAGS = -L$(BOOSTDIR)/include/boost-1_33/lib
LIBS = -lboost_filesystem-gcc

g++ -o$@ $(LDFLAGS) $(OBJS) $(LIBS)


じゃないのか?
286名無しさん@そうだ選挙に行こう:2005/09/11(日) 17:59:57
>>285
できました。
-l オプションの後には、ファイル名をフルネームで書くわけではないんですね。

でも、boost のライブラリ名が boost_filesystem や、 boost_filesystem-gcc-1_33 ではなく
boost_filesystem-gcc だというのは、どこからわかるのでしょうか?
何か命名規則があるのでしょうか? それともライブラリごとに任意で、boostのドキュメント
のどこかに書かれているでしょうか?
287名無しさん@そうだ選挙に行こう:2005/09/11(日) 18:09:25
>>286
boostライブラリが何者かは知らんが、まともならドキュメントに書いてある。
288名無しさん@そうだ選挙に行こう:2005/09/11(日) 18:13:04
>>287
了解しました。ありがとうございます。

ちなみに boost は、 C++ の準標準といわれるテンプレート拡張ライブラリです。
289285:2005/09/11(日) 18:23:30
>>286
cygwinはよく知らないのだが、UNIXの場合は、
libname.X.Y.soというファイル名で、(前のlibはお約束)
-lnameとやるからその類推で-lboost_filesystem-gccだろうと思った。

cygwin + mingwn + gcc 相談室 Part2
http://pc8.2ch.net/test/read.cgi/tech/1126103347/

で聞いてみてはどうか?


290デフォルトの名無しさん:2005/09/16(金) 00:34:04
ライブラリで、スタティックリンクできるものはスタティックリンクして、
.soしかないものはダイナミックリンクする、てのはどうやったら出来るでしょうか?
291デフォルトの名無しさん:2005/09/16(金) 04:15:11
そうならない理由を排除する。
292デフォルトの名無しさん:2005/09/16(金) 09:46:07
>>291
普通と逆でしょ?
>>290
lib*.aを探して、あれば引数にフルパスを渡せば?
293291:2005/09/17(土) 09:05:10
>>292
よくみたらそのとおりだった。ごめん
294デフォルトの名無しさん:2005/09/19(月) 00:34:01
4.0のくそったれ!!
テメエのバグのせいでどれだけ時間をつぶしたことか。。
295デフォルトの名無しさん:2005/09/19(月) 01:13:12
それが、『GCC』クオリティ
296デフォルトの名無しさん:2005/09/19(月) 01:31:31
>>294
頼ってもいいが、信じるな
それがgccだ
297デフォルトの名無しさん:2005/09/19(月) 12:22:03
snapshotをコンパイルすると
gthr-posix.h:43: pthread.h: No such file or directory
gthr-posix.h:44: unistd.h: No such file or directory
てエラーが出るんですが、どうしたらちゃんと見付けてくれるんでしょうか?
/usr/includeにはちゃんとあるんですが。
298デフォルトの名無しさん:2005/09/19(月) 13:11:45
CQ出版からGCCの本がでるみたいだね
299デフォルトの名無しさん:2005/09/19(月) 21:43:25
これだね。

実例で学ぶGCCの本格的活用法
ttp://www.cqpub.co.jp/hanbai/books/MIF/MIFZ200511.htm

こいつをまとめたものかな。

フリーソフトウェア徹底活用講座
ttp://www.cqpub.co.jp/interface/column/freesoft/default.htm

相変わらずCQはちょっと覚悟がいるかもしれない。
300デフォルトの名無しさん:2005/09/19(月) 23:19:58
>>297
・実はマルチバイト文字
・「ちゃんとある」のはpthread.hやunistd.hではなくgthr-posix.hだけだった
301デフォルトの名無しさん:2005/09/22(木) 09:08:04
gcc4.0以上のWindowsバイナリってないの?
302デフォルトの名無しさん:2005/09/22(木) 09:53:23
>>301
あるよ
ttp://www.reactsoft.com/ (Javaなし)
Javaも欲しいなら、ちょっと古いけど
ttp://www.thisiscool.com/gcc_mingw.htm
303デフォルトの名無しさん:2005/09/22(木) 20:05:12
>>302
AdaとFortranとObjective-Cは眼中にすら無いですかそうですか。
304デフォルトの名無しさん:2005/09/22(木) 23:48:20
FortranとObj-Cはともかく、Adaってどのような人種に需要があるんだろう……。
305デフォルトの名無しさん:2005/09/22(木) 23:56:40
C++0xに失望、または待ち切れない人はAdaに来るべし。
今Ada@gccが熱い。
新規格Ada2005がほぼ固まりつつある最終段階にあり、月に何度か一気に大量のパッチが適用されて、どんどん言語が変わってる。
バージョンの下一桁が上がるごとに追加される構文、ライブラリ、直されるバグ。
新規格そのものも、米国防総省の言語のはずなのに、互換性どこ吹く風でinterfaceやdownward closureをはじめ言語の使い方を一変させる新機能の嵐。
これを追いかけなくてどうするっ。
306デフォルトの名無しさん:2005/09/23(金) 00:07:37
妙に熱いのでもっと詳しく
307デフォルトの名無しさん:2005/09/23(金) 00:21:26
えーと;;
http://gcc.gnu.org/ml/gcc-patches/ の、ここ数ヶ月を見てもらえばわかるように、たまに、[Ada]がどかっと連続で来るんだよね。
AI-xxxって番号が、新規格の変更点リストの番号で、総数は三桁いってる。このリストは却下された案も含めたら500超える。
これはC++0xのwish listと比べてもすごく多い。もっともC++0xが固まるのはもっと後だろうから追加があるかもしれないけれど。
http://www.research.att.com/~bs/evol-issues.html
そしてこうしたパッチの大群が来るたびに言語そのものに追加機能があるわけなので、gccの言語の中で今追いかけるなら断然Ada。
308デフォルトの名無しさん:2005/09/23(金) 01:39:44
>>304
軍関係。今はDoDも必須じゃないけれど。
309デフォルトの名無しさん:2005/09/23(金) 01:48:53
もうすぐ出る予定の Atmel AVR用のクロスコンパイラ
次期WinAVRは Adaサポート予定。
マイコンのプログラムをAdaでするのってどう?
ttp://sourceforge.net/projects/avr-ada
310デフォルトの名無しさん:2005/09/23(金) 02:35:56
gcc3.3.6の最適化機構にgcc4のc++コンパイラなgccでないのかな
311デフォルトの名無しさん:2005/09/23(金) 12:50:02
adaはC++より速いしね
http://shootout.alioth.debian.org/benchmark.php?test=all&lang=all&sort=fullcpu

C gcc 21.86
D Digital Mars 21.81
Ada 95 GNAT 18.51
C++ g++ 9.32
312デフォルトの名無しさん:2005/09/23(金) 12:52:16
間違えたこっちだった。
D Digital Mars 36.53
C gcc 28.71
Ada 95 GNAT 27.43
Pascal Free Pascal 20.21
C++ g++ 18.05
313デフォルトの名無しさん:2005/09/23(金) 13:00:34
>>311
ひでえなそこのページ。言語毎にアルゴリズム変えてやがる。
特定の言語をひいきするようなベンチマークは信用できない。

↓ここでも見ろ。
http://dada.perl.it/shootout/
314デフォルトの名無しさん:2005/09/23(金) 14:35:45
それも、inline指定の有無とか、軽い構造体と重いクラスが別にある言語でどちらを使うかとか、Delphiトップとか最下位のREBOLミッシングと失敗ばっかじゃんとか納得行かんところはあるなあ。

関係ないが、ベンチマークやるなら、各言語の特長を活かしライブラリを活用して奇麗に書く部門と、小手先の最適化駆使の速度追求部門が必要に思えた。
315デフォルトの名無しさん:2005/09/23(金) 14:42:26
というか、コンパイラ実装の比較なのか、言語仕様の比較なのか orz
316デフォルトの名無しさん:2005/09/23(金) 14:49:12
その点は、同じ言語でも複数コンパイラ出してきてるから、実装込みと思ったが
317デフォルトの名無しさん:2005/09/25(日) 01:52:56
>>313
なんだよ。そこのページWindosじゃねーかよ。
萎え
318デフォルトの名無しさん:2005/09/25(日) 02:56:24
Windos ってなーに?(^Д^)
319デフォルトの名無しさん:2005/09/25(日) 02:57:55
MS-DOS用のGUI Shellらしい>WinDOS
ttp://www.pldos.pl/windos/screen.htm
320デフォルトの名無しさん:2005/09/27(火) 12:37:33
上位にはないけどjavaすごいな、速度はあとからなんとかなるもんなんだね
とりあえずベンチマーク鵜呑み、ヨロシク!
321名無しさん@しぃあぃ:2005/09/29(木) 19:10:10
gcc-4.0.2 登場、あげっ
http://gcc.gnu.org
322デフォルトの名無しさん:2005/09/29(木) 20:50:38
GCC用のオススメのIDEはなに?
323デフォルトの名無しさん:2005/09/29(木) 20:52:02
>>322
Cygwin
324デフォルトの名無しさん:2005/09/29(木) 22:03:00
>>323
IDEとは何か調べてから出直す必要はない。もう来るな
325デフォルトの名無しさん:2005/09/29(木) 22:06:36
>>322
Windows 使いの人なら、sambaで共有しつつビルドコマンドにはrshなど使って
Visual Studio で作業するという方法も検討してみて。結構いける。
326デフォルトの名無しさん:2005/09/30(金) 00:31:59
>>322
MinGW+テキストエディタ。これ最強。
327デフォルトの名無しさん:2005/09/30(金) 00:44:45
まあ・・・makeで十分な気も・・・
328デフォルトの名無しさん:2005/09/30(金) 02:04:01
>>324
プッ
329デフォルトの名無しさん:2005/09/30(金) 12:22:26
>>325
ほほぅ
330デフォルトの名無しさん:2005/09/30(金) 12:36:53
DEV-C++、MinGWでいいじゃん。
パッケージマネージャが激しく使いにくいけど。
331デフォルトの名無しさん:2005/09/30(金) 23:31:40
Eclipseの名前が出て来ないのはなんで?
こんな記事もでてるよ。
ttp://www-6.ibm.com/jp/developerworks/opensource/030620/j_os-ecc.html
332デフォルトの名無しさん:2005/09/30(金) 23:54:53
Eclipseはmake書かにゃならんのが残念だなぁ
333デフォルトの名無しさん:2005/10/01(土) 00:43:40
最近のEclipse+CDTはmakeの自動生成もやってくれる。
334デフォルトの名無しさん:2005/10/01(土) 01:39:42
makeが自動生成されるのがちょっとうっとうしい
335デフォルトの名無しさん:2005/10/01(土) 01:56:36
自動生成されるのとされないのと選べるじゃんか
336デフォルトの名無しさん:2005/10/01(土) 08:01:34
>>333
あっそうなの?
これから試してみる
337デフォルトの名無しさん:2005/10/01(土) 10:23:54
>>336
managedって方が自動生成、standardが生成されない方
managedは、プロジェクト名に相当する実行形式をつくるmakefileを生成する
338デフォルトの名無しさん:2005/10/01(土) 19:55:05
gccと結婚したい
339デフォルトの名無しさん:2005/10/01(土) 20:05:28
CPUになりたまえ
340デフォルトの名無しさん:2005/10/01(土) 20:17:22
父はRMS
341デフォルトの名無しさん:2005/10/01(土) 20:33:25
gcc Developer Stationってのは試した人います?
342デフォルトの名無しさん:2005/10/02(日) 16:40:35
gcc 初心者です。教えてください。
gcc 3.2.2 で生成した C オブジェクトを
gcc 3.4.3 でリンクできるのでしょうか?
ちなみにソースは C++ です。

今度 3.4.3 環境で作る事になりそうでして。
以前、マイナーバージョンアップでも上位互換無いような事を
聞いたもので、心配してます。
宜しくお願いします。
343デフォルトの名無しさん:2005/10/02(日) 19:35:04
3.4/4.0以降とそれ以前は違う。
http://lists.debian.org/debian-release/2005/04/msg00153.html
http://www.codesourcery.com/cxx-abi/

3.3リリース後にC++のABIを変えたから。

だから>>342のケースはダメ。
344デフォルトの名無しさん:2005/10/02(日) 19:54:31
4.0ちょっとひどくない?
しんどい部分頑張ってるっぽいけど、時期尚早でした

>343
3.3にすれば全盛期のgccにあえる?
345デフォルトの名無しさん:2005/10/02(日) 20:02:45


>GNUが低品質なのはconfigureと無関係ではないだろう。
>GNUが低品質なのはconfigureと無関係ではないだろう。
>GNUが低品質なのはconfigureと無関係ではないだろう。

http://pc8.2ch.net/test/read.cgi/tech/1114223450/
346デフォルトの名無しさん:2005/10/02(日) 20:08:24
>>344
バージョン番号の法則からは逃れられないということでしょう。
347デフォルトの名無しさん:2005/10/02(日) 20:32:07
>>344
3.4でいいと思うけど。
いずれにせよ、自分のLinux boxには、2.95, 3.3, 3.4, 4.0がインストールされてます。
古いABIのままのlibraryがあるし、4.0は未だ不安なので。
348デフォルトの名無しさん:2005/10/03(月) 00:45:02
>>343
早速の回答、ありがとうございます。
やはりそうなんですね。

gcc、遊びで使った事はあるのですが、
今度仕事で使う事になりまして。
色々調べていたのですが、
本格的に使おうとすると結構敷居高いですね。

どうもでした_(._.)_
349デフォルトの名無しさん:2005/10/03(月) 00:49:10
>>348
いや、ABIの変更なんて当分ないから。
350デフォルトの名無しさん:2005/10/03(月) 01:19:58
「以降」と「以前」じゃ被るんじゃねーか?

そもそも「以前」の対義語は「以後」で…。
351デフォルトの名無しさん:2005/10/03(月) 02:15:59
>>350
そんな些細なこと気にすんなって。気楽に行こう。

行こうと以降をかけています。
352デフォルトの名無しさん:2005/10/03(月) 02:20:50
より前、以前は日常語としても範囲があやふやだな。
より後、以降、以後もあいまいだわ・・・。
353デフォルトの名無しさん:2005/10/03(月) 02:33:50
>>352
あやふやったって、基準点を含むか含まないか程度のあいまいさだろ。
以前と言って未来を指す訳でもないんだからよ。
354デフォルトの名無しさん:2005/10/03(月) 02:39:45
あいまいさを無くそうとすると
xxxより前(xxxを含まない)のバージョンでは
xxx以前(xxxを含む)バージョンでは
と括弧書きが必要になるんがツライかなぁ。
355デフォルトの名無しさん:2005/10/06(木) 06:07:52
初めましてルマンドという者です。
g++ から Windows のライブラリにリンクしたいのですが方法が分かりません。
下記のmakefileとソースファイルで、その下のようなエラーが出ます。
MinGW のサイトにあるように、makefile の $(libraries) の位置を変えたりしたのですが、
うまくいきませんでした。オプションなどがあるのでしょうか?
環境はWinXP+SP2、MinGW4.1.1です。よろしくお願いします。

-- makefile(一部抜粋) --
objects = $(sources:.cpp=.o)
libraries = C:/Program_Files/Microsoft_Platform_SDK/lib/wininet.lib
$(project_name).exe: $(objects)
g++ -mconsole -mwindows -o $(objects) $(libraries)
.cpp.o:
g++ -mconsole -mwindows -c $< -o $@

-- source file --
#include "test.h"
#include <wininet.h>
int main()
{
HINTERNET handle = InternetOpen("test", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
InternetCloseHandle(handle);
return 0;
}

-- error --
./output/test.o(.text+0x52):test.cpp: undefined reference to `InternetOpenA@20'
./output/test.o(.text+0x8a):test.cpp: undefined reference to `InternetCloseHandle@4'
collect2: ld returned 1 exit status

長くなってすいません。
356デフォルトの名無しさん:2005/10/06(木) 07:00:57
reference を解決しろ。
はい次。
357デフォルトの名無しさん:2005/10/06(木) 09:12:30
libraries = -lwininet

$(project_name).exe: $(objects)
echo g++ -mconsole -mwindows -o $@ $(objects) $(libraries) >355
echo collect2: ld returned 1 exit status

一字一句正確に、コピ禁、手打ち
358デフォルトの名無しさん:2005/10/06(木) 16:00:31
>>357
素早いお返事ありがとうございます。
うまく動かすことが出来ました。

g++ からの場合は .lib ではなくて .a のライブラリを読むんですね。
普段は Visual Studio を使っていたので全然無知でした……。

また初歩的な質問をしてしまうかもしれませんが、これからもよろしくお願いします。
妙な挨拶みたいになりましたが……。
359デフォルトの名無しさん:2005/10/06(木) 17:20:01
VCのライブラリとGCCのライブラリの間には
互換性は無いんでしょうか?
360デフォルトの名無しさん:2005/10/06(木) 18:20:02
ない。
361デフォルトの名無しさん:2005/10/06(木) 19:44:08
>>360
なるほど、わかりました。ありがとうございます。
362デフォルトの名無しさん:2005/10/06(木) 22:49:01
バイナリフォーマットは互換性があるが
リンケージの違い、ABIの違いが少々存在するので
一筋縄ではいかない(ことが、ある)。
363デフォルトの名無しさん:2005/10/06(木) 23:21:23
最近のMinGWだとVC++の.libをそのまま喰えなかったっけ。
364デフォルトの名無しさん:2005/10/06(木) 23:30:31
mingwというよりはむしろbinutilsのx86-pe-coff
つまり、喰うだけだったらCygwinでも他ホスト上のクロス環境でも喰える。
365デフォルトの名無しさん:2005/10/06(木) 23:31:34
mingwはほとんど食えるよね、逆がうざいぐらいに食い残す
366デフォルトの名無しさん:2005/10/07(金) 00:30:21
食い残しってどうやったらわかるん?
367デフォルトの名無しさん:2005/10/07(金) 03:16:42
無理矢理喰わせて吐きだすかどうか。
368デフォルトの名無しさん:2005/10/07(金) 05:26:08
おうぇっ

369デフォルトの名無しさん:2005/10/07(金) 20:19:32
食い残しは食えるけど、ゲロは食えねえなぁ。。。
370デフォルトの名無しさん:2005/10/07(金) 20:35:54
可愛い女の子のゲロなら食えます。
371デフォルトの名無しさん:2005/10/07(金) 20:50:46
嘘だッ!!
372デフォルトの名無しさん:2005/10/08(土) 01:50:38
炒めて酸味を消すのがポイント
373デフォルトの名無しさん:2005/10/08(土) 21:50:13
漏れはgdbにはなれそうにないのはわかった
374デフォルトの名無しさん:2005/10/09(日) 05:15:39
gdb = gero debugger
375デフォルトの名無しさん:2005/10/09(日) 07:49:10
げろこんぱいらこれくしょん?
376デフォルトの名無しさん:2005/10/09(日) 08:20:39
Gero is Not UNIX
377デフォルトの名無しさん:2005/10/09(日) 08:56:24
あー、それで core 吐くのか
378デフォルトの名無しさん:2005/10/09(日) 14:20:47
マニアはゲロを詳細に分析するからな。
ゲロで体調がわかる。
379デフォルトの名無しさん:2005/10/09(日) 17:00:38
Men's 5 の歌?
380デフォルトの名無しさん:2005/10/13(木) 08:11:18
「可能」とコメントに入れたらコンパイルしてくれないのは仕様ですか?
381デフォルトの名無しさん:2005/10/13(木) 08:20:36
/* コンパイル可能 */
// コンパイル不可能
382デフォルトの名無しさん:2005/10/13(木) 10:09:59
383デフォルトの名無しさん:2005/10/13(木) 10:10:19
-finput-charset=cp932 -fexec-charset=cp932
を入れたらコンパイル可能
(gccが対応している時)
384デフォルトの名無しさん:2005/10/13(木) 22:27:24
2バイト目に0x5cったら結構な数ありそうだね
/* これでくくれってことっすね?*/
385デフォルトの名無しさん:2005/10/13(木) 22:47:26
それでもダメ!
ってことあったっけ?
gccにはあった気がする
386デフォルトの名無しさん:2005/10/13(木) 23:07:29
>>384
後ろの*/の手前に空白を入れるべし
387デフォルトの名無しさん:2005/10/14(金) 00:26:02
-finput-charset=cp932 -fexec-charset=cp932
はスルーですか
そうですか
ひとり言
gccの3.4.x以降で configureに --enable-c-mbchar を指定してgccを作成すると
上記オプションが有効になるみたい
mingwではOKだった
ついでにAVR用のgccも作成してみたがこれも無問題でした
まあ対応していないコンパイラのことを考えると結局
/* これが正解ですね */
388デフォルトの名無しさん:2005/10/14(金) 00:34:47
/* コメントならこれでよいけど */
printf("表示テスト") は
printf("表\示テスト") としなければいけないので・・・

389デフォルトの名無しさん:2005/10/14(金) 10:05:53
805c 815c 825c 835c 845c 855c 865c 875c
'\'  '―'  '・'   'ソ'  'Ы'  '・'   '・'  '\'
885c 895c 8a5c 8b5c 8c5c 8d5c 8e5c 8f5c
'・'  '噂'  '浬'  '欺'  '圭'  '構'  '蚕'  '十'
905c 915c 925c 935c 945c 955c 965c 975c
'申'  '曾'  '箪'  '貼'  '能'  '表'  '暴'  '予'
985c 995c 9a5c 9b5c 9c5c 9d5c 9e5c 9f5c
'禄'  '兔'  '喀'  '媾'  '彌'  '拿'  '杤'  '歃'
e05c e15c e25c e35c e45c e55c e65c e75c
'濬'  '畚'  '秉'  '綵'  '臀'  '藹'  '觸'  '軆'
e85c e95c ea5c eb5c ec5c ed5c ee5c ef5c
'鐔'  '饅'  '鷭'  '・'   '・'  'x'  'x'  '・'
f05c f15c f25c f35c f45c f55c f65c f75c
''   ''   ''  ''   ''   ''   ''   ''
f85c f95c fa5c fb5c fc5c
''   ''  '\'  '\'  '・'
390デフォルトの名無しさん:2005/10/14(金) 10:39:46
printf("第十\回 噂\の饅\頭暴\食大会の予\定");

てな表\記を貼\ってみた
391デフォルトの名無しさん:2005/10/14(金) 11:03:02
// 構\造体の定義

とか、初心者が書きそう
392デフォルトの名無しさん:2005/10/14(金) 11:38:00
// 噂の曾爺さん無免で箱乗り申し上げます

やっばいねこれ無駄に熱くなるね
393デフォルトの名無しさん:2005/10/14(金) 11:38:59
そういえば漢字を文字コードに展開するフィルタ作ったことがあったなあ。

文字列の判定が適当だったので、たまに全然関係ない所まで書き換えられて
謎なエラーに悩まされたものじゃ。
394デフォルトの名無しさん:2005/10/14(金) 11:49:20
>>391
最後が「義」だから問題ないでしょ。

// 〜 \

となるのが継続コメント行で問題なんだから。
395デフォルトの名無しさん:2005/10/14(金) 11:52:06
nkfを改造して第2バイトに0x5cがきたら\を追加するオプションをつけたことは
ある。当時はなかなか役に立った。
しかもnkfをちょちょいと変更するだけだから簡単クッキング。

396デフォルトの名無しさん:2005/10/14(金) 12:02:11
gccならlocaleをja_JP.sjisにしとけばいいだけだろ?
HAVE_LOCALEとHAVE_ICONVでコンパイルされていれば。
397デフォルトの名無しさん:2005/10/14(金) 16:58:35
2byte文字、例えば "表示" を "\225\134\216\246" みたいにするフィルタをかませばよい
398デフォルトの名無しさん:2005/10/14(金) 17:22:03
エイダかわいいよエイダ
http://ja.wikipedia.org/wiki/Ada
399デフォルトの名無しさん:2005/10/14(金) 19:48:10
せめて肖像画がついてるところを貼ったらどうだ
ttp://en.wikibooks.org/wiki/Ada_Programming
400デフォルトの名無しさん:2005/10/15(土) 01:07:08
int data[100] __attribute__((section ("xxx")));

ってそーすをコンパイルして、gcc sore.c -Wl,--section-start -Wl,xxx=0x300
とかしたら、dataが0x300に配置されるのかな?と思ったけど、うまくいかなかった。

ハードウェアのメモリにちゃんとアクセスできてるかを、PCでシミュレーションしたかったんだけど、
うまい方法ないっすかね?
401デフォルトの名無しさん:2005/10/15(土) 01:14:58
そのメモリの値を読めば良いだけじゃね?あとフォローよろしく↓
402400:2005/10/15(土) 01:22:11
例えば、
ushort* p = (ushort*)0x300;
*p = 35;
とかってソースかいて特定のアドレスに書き込むんだけど、
これ、PCでやったらエラーでちゃうんですよ。

そこで、配列用意して、それのアドレスが0x300に配置されてたら、
PCでもエラーにならないとおもったんだけど。

こういうコードがいろいろ散らばってるんで、PCで走らせて、
意図した値が書き込めてるかテストしてみたいんです。

他にも、--check-memory-usageも考えてみたんだけど、いまいちで。
403デフォルトの名無しさん:2005/10/15(土) 01:22:14
#define data ((int *)0x300)
じゃ駄目なのかな
404デフォルトの名無しさん:2005/10/15(土) 01:31:45
PC上でそのまま走らせてるわけじゃないですよね?
PC上で動くエミュレーターですよね?

0x300なんて下位過ぎるアドレス、OSが保護してると思うんだ…。
405400:2005/10/15(土) 01:36:20
PCでコンパイルしてそのまま走らせてます。
エミュレータがないんで...
406デフォルトの名無しさん:2005/10/15(土) 01:40:32
だからターゲット用にコンパイルするときはdefineなりでベースアドレスを指定して
PCで動作確認するときはグローバル変数なりにしときゃいいだけじゃないのか
407400:2005/10/15(土) 01:42:26
>>406
たしかに、それもいいとは思うんだけど、
ソースがそれを意識して書かれてないと、ダメだよね。
408デフォルトの名無しさん:2005/10/15(土) 01:42:37
とりあえず、「PC上でそのまま動かす」「0x300番地に書き込んで確認したい」
なんていってるようじゃ、どうしようもないと思うけどね。

DOSでも使ったら。
409デフォルトの名無しさん:2005/10/15(土) 01:43:28
例えばWindowsだったら4GBのアドレス空間中、起動した.exeそのものは0x00400000から〜、後半2GBはOSのdll、という風に、
OSによって大体のアドレスの使われ方は決まってしまうわけで…。
0x300なんて端っこは、恐らくというかほぼ確実にというか、まず空いて無いと思われます。
410400:2005/10/15(土) 01:46:01
やはり、ダメですか...
妙な質問のお相手していただいて感謝です。
411デフォルトの名無しさん:2005/10/15(土) 01:47:27
>409
論理アドレスと物理アドレスのことを分かって書いてる?
どちらにしろPC上で意味もなく固定アドレスに書き込もうとしているのは間違い
412デフォルトの名無しさん:2005/10/15(土) 01:48:51
>>411
いや…この上VirtualAllocの説明までしたくなかったし…。
413400:2005/10/15(土) 01:54:15
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_virtualalloc.htm
もしかして、任意のアドレスを確保できる?
414デフォルトの名無しさん:2005/10/15(土) 01:54:38
>いや…この上VirtualAllocの説明までしたくなかったし…。
そうではなくて
AとBのプロセスを同時に走らせているとして
Aの0x300とBの0x300番地は物理アドレスではまったく別の場所を指しているのだけど
通常のプログラムで0x300番地をアクセスしたら自分の論理番地0x300をアクセスすることになる
またOSにより論理アドレス0x300に対する物理アドレスは変更されることもある
415デフォルトの名無しさん:2005/10/15(土) 01:55:20
Windowsはぬるぽ用に最初の1ページは使用不可になってるね。0x300は
1ページ以内だな。UNIX系だと0番地にmmap()できるのはあった気がする。


416デフォルトの名無しさん:2005/10/15(土) 01:56:51
おいおい、I/Oのアドレスをソース内に即値でちりばめてるのかよ。
そんなだから、こういう腐った質問や腐ったやり方を考えようとするんだろうな。
417デフォルトの名無しさん:2005/10/15(土) 02:01:14
開発中はごまかしといて実機でテストするのがいいと思うよ
418デフォルトの名無しさん:2005/10/15(土) 02:01:30
>>414
それはそうだが、そこまで説明いらんっしょ…。
理解して無かったら、「起動した.exeそのものは0x00400000から〜」なんて決め打った数字書かないよ。

>>413
要求は出来るが必ずしも要求が通るとは限らないです。

確かに、同じアドレス空間を確保することで、ポインタ込みの永続化を実現するライブラリなんてのもあることはあるけどさ(ボソ
419デフォルトの名無しさん:2005/10/15(土) 02:02:35
>おいおい、I/Oのアドレスをソース内に即値でちりばめてるのかよ。
いやメモリのアドレスの即値だと思うんだが
420デフォルトの名無しさん:2005/10/15(土) 02:04:52
メモリだってI/Oの一種には違いな…じゃなくて、CPUによってはポートを特殊なアドレスに割り当ててるのはありますね。
421デフォルトの名無しさん:2005/10/15(土) 02:07:43
「CPUによっては」というとりハードによってはかな
x86だとI/Oマップドとメモリマップドの両方出来るから

422416:2005/10/15(土) 02:10:25
>>419-422
うん、まあ、メモリマップドI/Oのつもりで書いた。
8086の割り込みベクタとかならともかく、
メモリの即値が必要なのって、そういうケースしか思いつかなかったから。
423デフォルトの名無しさん:2005/10/15(土) 02:16:13
そうだね
8086だと0x300ってベクタ領域だ
424デフォルトの名無しさん:2005/10/15(土) 02:18:21
gccで作ったプログラムはソースを公開しなければいけない
425デフォルトの名無しさん:2005/10/15(土) 02:20:02
こらこら
426デフォルトの名無しさん:2005/10/15(土) 02:20:10
バイナリを持ってる人が要求した場合だけっしょ?
GPL3で拡大しようという動きはあるけどさ、とりあえず今のところは。
427デフォルトの名無しさん:2005/10/15(土) 02:23:15
GPLなライブラリとリンクしてるならともかく
そうでなければ公開の必要はなし
この話しはGPLスレだな
428デフォルトの名無しさん:2005/10/15(土) 02:32:50
>>408
MS-DOSも0x300は駄目(w
429デフォルトの名無しさん:2005/10/15(土) 02:35:56
>>411=>>414
この男は何を言い出すんだ(w
とんちんかんキングだな。
430デフォルトの名無しさん:2005/10/15(土) 02:48:09
>429
この男もトンチンカン2

431デフォルトの名無しさん:2005/10/15(土) 02:50:55
>430
429は多分MMUのことを知らないんだよ
432デフォルトの名無しさん:2005/10/15(土) 03:42:44
論理アドレス空間にカーネルが全くいないと思っているのか?
433デフォルトの名無しさん:2005/10/15(土) 09:27:02
なぜカーネルの話題が必要なのだ?
434デフォルトの名無しさん:2005/10/15(土) 09:29:31
同様に >409はなぜ物理メモリの話が必要だったのか?
435デフォルトの名無しさん:2005/10/15(土) 09:39:02
ていどひくいな
436デフォルトの名無しさん:2005/10/15(土) 09:44:26
そりゃ2chだもの
437デフォルトの名無しさん:2005/10/15(土) 10:45:29
頭悪スレでやってくれ
438デフォルトの名無しさん:2005/10/15(土) 11:25:16
読み出し時にlong型の変数で取って、MASKとかしなければいけないんじゃない?
そういう問題じゃなくて?
4byteCPUだと4の倍数byteのアドレス指定しないと読み込めないとか。
439デフォルトの名無しさん:2005/10/15(土) 11:30:40
CPUの品種により対応状況はまちまち
440デフォルトの名無しさん:2005/10/15(土) 11:54:13
すいません頭悪スレってここですか
441デフォルトの名無しさん:2005/10/15(土) 12:18:27
gcc! gcc! gcc! (AA略
442400:2005/10/15(土) 12:42:02
mmapでどうにかできました。
実際には、たしか0xA000以降にアクセスできればよかったので、これでいけるかも。
うちのknoppixでは0x1000以降なら配置できるようでした。

しかし、セクションの割り当てでうまくいかないのはどうしてだろう?
いろんなアドレスでやってみたけどうまくいかなかったから、
attribute文法とか-Wl,--section-start -Wl,secname=addrの使いかた間違ってます?
443デフォルトの名無しさん:2005/10/15(土) 13:24:55
gcc -Wl,--section-start -Wl,xxx=0x300 store.c
/usr/bin/ld: a.out: Not enough room for program headers (allocated 7, need 8)
444400:2005/10/15(土) 13:44:16
>>443さん
そのメッセージでないのですが、store.cの中身みせてもらえます?
445デフォルトの名無しさん:2005/10/15(土) 13:51:50
gcc 4.0.2
int data[100] __attribute__((section ("xxx")));

2.95.4, 3.4.5, 3.3.5でも同様。
Linux foobarbaz 2.6.11.7 #1 Thu Apr 14 00:13:35 JST 2005 i686 GNU/Linux
446400:2005/10/15(土) 14:01:04
>>444
そのソースだと以下のようになりません?

knoppix@2[knoppix]$ gcc -Wl,--section-start -Wl,xxx=0x300 store.c
/UNIONFS/usr/bin/../lib/gcc-lib/i486-linux/3.3.6/../../../crt1.o(.text+0x18): In function `_start':
../sysdeps/i386/elf/start.S:98: undefined reference to `main'
collect2: ld はステータス 1 で終了しました
knoppix@2[knoppix]$ cat store.c
int data[100] __attribute__((section ("xxx")));
knoppix@2[knoppix]$ uname -a
Linux Knoppix 2.6.11 #2 SMP Thu May 26 20:53:11 CEST 2005 i686 GNU/Linux
knoppix@2[knoppix]$ gcc --version
gcc (GCC) 3.3.6 (Debian 1:3.3.6-5)
447400:2005/10/15(土) 14:04:11
>>444じゃなくて>>445でした
448デフォルトの名無しさん:2005/10/15(土) 14:05:20
>>446
つまり、mainとリンクすればうまくいくってことですか?
449デフォルトの名無しさん:2005/10/15(土) 14:05:31
data=0x300ならそうなります。
"xxx" section用のELFヘッダ領域がないからでしょう。 > Not enough

$ ld -v
GNU ld version 2.16.1 Debian GNU/Linux

です。
450400:2005/10/15(土) 14:14:47
mainを追加して、出力してみました。ぜんぜんアドレスが反映されないのです。

knoppix@2[knoppix]$ cat store.c
#include <stdio.h>

int d[0x100];
int data[0x100] __attribute__((section ("xxx")));

int main()
{
printf("d =0x%X\n", (unsigned int)d);
printf("data=0x%X\n", (unsigned int)data);
return 0;
}
knoppix@2[knoppix]$ gcc -Wl,--section-start -Wl,xxx=0x3000 store.c -Wall
knoppix@2[knoppix]$ ./a.out
d =0x8049A40
data=0x8049520
451400:2005/10/15(土) 14:16:06
knoppix@2[knoppix]$ gcc store.c -c
knoppix@2[knoppix]$ objdump -h store.o

store.o: ファイル形式 elf32-i386

セクション:
索引名 サイズ VMA LMA File off Algn
0 .text 0000003f 00000000 00000000 00000034 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
1 .data 00000000 00000000 00000000 00000074 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 00000000 00000000 00000074 2**2
ALLOC
3 .rodata 00000016 00000000 00000000 00000074 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
4 xxx 00000400 00000000 00000000 000000a0 2**5
CONTENTS, ALLOC, LOAD, DATA
5 .note.GNU-stack 00000000 00000000 00000000 000004a0 2**0
CONTENTS, READONLY
6 .comment 00000025 00000000 00000000 000004a0 2**0
CONTENTS, READONLY
knoppix@2[knoppix]$ ld -v
GNU ld version 2.15
452デフォルトの名無しさん:2005/10/15(土) 16:50:56
gccスレよりknoppixスレでやったほうがいいんじゃないの。
機種依存の端の話だし。
453デフォルトの名無しさん:2005/10/16(日) 18:18:37
ちゃんとldscript書かなきゃダメでないか?
knoppixスレもスレ違いだろ。linker && loader スレかな。人いないけど。
454デフォルトの名無しさん:2005/10/16(日) 19:17:32
いないわけじゃないんだけど、漏れにはちと荷が重いな。

0x300みたいな低いアドレスは、>>415の言う通り
仮想メモリ持ってるOSだと大抵はぬるぽ検出用にプロテクトされるから、
OSのローダーが親切にアドレスずらしてるんじゃないかねえ。

手元のFreeBSDで試してみたが、>>400とほぼ同じ結果だった。
cygwinで試したら「有効なWin32アプリケーションではない」と言われたから、
多分OSというかローダー依存と思われる。

移るならL&Lスレだろうが・・・わかる奴いるんかなあ。
455デフォルトの名無しさん:2005/10/16(日) 19:20:23
元々の真意としては再配置可能モジュールってだけだったがな
456デフォルトの名無しさん:2005/10/16(日) 21:29:47
undefined reference to `libmsvcrt_a_iname'
これはどんな原因かズバリ教えてください。
ズバリヒントください。どうか
457デフォルトの名無しさん:2005/10/16(日) 21:44:42
http://www.mingw.org/MinGWiki/index.php/undefined%20references

Cygwin/Mingwのスレに行った方がいいよ。
SOS!!

Info: resolving __pctype by linking to __imp___pctype (auto-import)
fu000001.o(.idata$3+0xc): undefined reference to `libmsvcrt_a_iname'
fu000002.o(.idata$3+0xc): undefined reference to `libmsvcrt_a_iname'
fu000003.o(.idata$3+0xc): undefined reference to `libmsvcrt_a_iname'
fu000004.o(.idata$3+0xc): undefined reference to `libmsvcrt_a_iname'
fu000005.o(.idata$3+0xc): undefined reference to `libmsvcrt_a_iname'
fu000006.o(.idata$3+0xc): more undefined references to `libmsvcrt_a_iname' follow
nmth000000.o(.idata$4+0x0): undefined reference to `_nm___pctype'

少ない脳で思いつく限りの食わせ方したんですが
fu000005〜fu000011に数がかわるだけで、ずっとこんなんです。
459デフォルトの名無しさん:2005/10/16(日) 21:51:57
>457
かしこまりました。
3連投失礼しました。
460デフォルトの名無しさん:2005/10/21(金) 13:45:08
gcc3.3.3使ってるんだけどC++のコードでちょっと困った状態になったので教えて欲しい。
O'REILLYから出てる本の後ろに付いてるQuaternionクラスとVectorクラスを
書いて使っているんだけど、メンバ関数やoperatorで引数を参照渡しにしたんだ。
VC++では上手くいってたんだけど、gccだと一時変数や演算結果を引数にすると
値渡しのオーバーロードが見つからないってエラーを吐いてしまう。
例えばQuaternionのコンストラクタで
Quaternion::Quaternion(float n, Vector &v);
があったとすると
Vector v;
float n;
Quaternion q(n, -v);
みたいなコードを書くと
error: no matching function for call to `Quaternion::Quaternion(float&, Vector)'
って言われる。しかもfloatの方に参照がついてるし。
何とかならないかな?
461デフォルトの名無しさん:2005/10/21(金) 14:17:21
>> 460
-Quaternion::Quaternion(float n, Vector &v);
+Quaternion::Quaternion(float n, const Vector &v);
462デフォルトの名無しさん:2005/10/22(土) 09:33:29
>>461
遅レススマソ。
よくなりますた。
一時変数はリテラルと同じで変更を許さないって方針なのかな。
463デフォルトの名無しさん:2005/10/22(土) 10:17:29
orz
464デフォルトの名無しさん:2005/10/22(土) 16:02:30
>>462
その通り
VC++はレベル4では警告を出す
GCCが文法としては正しい
これはすごく難しい問題をC++言語に提起しているので
たぶん将来改定される
465デフォルトの名無しさん:2005/10/22(土) 16:24:22
ホントだ。いつもW3でやってたから知らなかった。
しかし・・・参照にするとちょっと複雑な式が動かなくなるってのは結構不便だ・・・
コンパイルオプションで何とかならないのかなぁっつーのはconstを省く怠け者の戯言か。

TECH IのGCC本が出たけどC++については何も載ってなくて残念。
買ったけど。
466デフォルトの名無しさん:2005/10/22(土) 16:33:52
>>464
文法(syntax)じゃなくて意味(論; semantics)な
467デフォルトの名無しさん:2005/10/22(土) 18:16:18
>>465
意味的なことをよく考えてみれって

非const参照(書き込み可)で渡すってことは
その関数が書き込んだ値を後で使うからすぐには消さないってことだろ
そういうときは変数作るやん

関数内で書き込むけどそのとき限りで関数から抜けたらあぼーんは参照じゃなく値だよな
468デフォルトの名無しさん:2005/10/22(土) 18:28:47
>>465
const は「省く」なんて言えるもんじゃないぞ。
有るべきところに無いのは「間違い」だ。
469デフォルトの名無しさん:2005/10/22(土) 18:36:15
>>468
つーても operator = の返却値だとか = 0 で mutable が必要になったりとか
判断が難しいのは普通にあるね
470デフォルトの名無しさん:2005/10/28(金) 17:16:02
ソースに見慣れない
__try {
}
__finally {
}
ってのがあったんですが、Borland?VC?だかの拡張だそうなんですけど
gccで置換えるものってあります?ここだけgcj使うとか無茶は通るわけないよね
471デフォルトの名無しさん:2005/10/28(金) 19:17:32
C++ SEH 例外
あたりでぐぐるとヒントが見つかろう。
Win32アプリケーションはともかくDDKあたりでは避けて通れない。

mingw とかでどう置き換えていいものやら折れも知りたい。
472デフォルトの名無しさん:2005/10/28(金) 20:14:36
C++にしていいなら、効率無視で
bool f;
try{
 f = 1;

 f = 0;
 throw gomi;
}catch(...){

 if(f) throw;
}
とかでいいんでは。
473デフォルトの名無しさん:2005/10/28(金) 23:50:18
APIがSEH例外投げるときはどうしたらええんべ?
474デフォルトの名無しさん:2005/10/29(土) 00:27:34
ReactOS方面でgccのSEH対応パッチがあったような記憶があるな。
475デフォルトの名無しさん:2005/10/29(土) 02:59:43
if(a==TRUE)とかやると大抵はエラーの元になるので
マクロかなんかで、例えば UNKO というdefineを使うと
if(a==UNKO) と if(!a) が等価になるような、そんな
プリプリプロセッセを作りたいニャ
476デフォルトの名無しさん:2005/10/29(土) 03:18:14
これ?
http://reactos.csh-consult.dk/install-mingw-seh.txt

何か面白そうだねえ。
SEHがもう少しうまくC++ exceptionに融合しているといいけれど、
ctorの最中に例外による大域脱出が起きると困るしなあ。
ctorのコード生成ロジックが異常に複雑になっちゃう。
477デフォルトの名無しさん:2005/10/29(土) 03:25:15
http://reactos.csh-consult.dk/index.php?page=gccseh
こっちがGCC SEHトップページか。
478デフォルトの名無しさん:2005/10/29(土) 03:32:16
ctor は基本的にはゼロクリ等、他のオブジェクトに関係しない初期化のみに限定
ポインタ貼ったり数をカウントしたりは ctor のコンテキストからは呼び出さない関数で行う
479デフォルトの名無しさん:2005/10/29(土) 04:18:11
>>476
VCの素のSEHはebp縛りのハンドラ呼び出しとか小汚い実装なんだよな。
一度_exceptで例外受けると同じ例外の再throwはもちろんできないので
C++の様にはいかない。
またCで書く以上、コードスタイル的に__finallyは別になくても良いし。
移植性を考えると結局はハードウェア例外を捕捉する用途以外は積極的に使えない。
Windowsと心中するつもりの奴向けだな。
480デフォルトの名無しさん:2005/10/29(土) 21:41:47
>>475
て言うか、a の真偽を判定するのに if(a==TRUE) なん
て書く奴は、アフォだと思う。
481デフォルトの名無しさん:2005/10/30(日) 13:48:53
リンカスクリプトの書き方をアホみたいに詳細に解説した
ホームページを教えれ
482デフォルトの名無しさん:2005/10/30(日) 14:42:39
>>481
リンカ スクリプトぐらいでぐぐればいいと思うが…

おまえが言っている「詳細」がどのレベルかよくわか
らんけど、とりあえず…

http://www.sra.co.jp/wingnut/ld/ld-ja_3.html#SEC6
483デフォルトの名無しさん:2005/10/30(日) 14:55:32
g++のことは、ここで聞いたらダメなんですか?
484デフォルトの名無しさん:2005/10/30(日) 15:07:32
ダメです。

って言われたら、おまいどうするつもりだ?
485デフォルトの名無しさん:2005/10/30(日) 15:09:32
gcc じゃなくて GCC なんだから構わないだろ?
>1 にも GNU Compiler Collection って書いてるじゃないか。
486デフォルトの名無しさん:2005/10/30(日) 15:13:10
聞いてみてダメだったらスルーされるだけだから。
487デフォルトの名無しさん:2005/10/30(日) 15:15:59
じゃあ聞く。
g++の後継コンパイラがGCCとは別になるって本当ですか?
今までgccと統合してきたことによる様々な弊害を解消するのが目的だそうです。
GNUとしても今後はGCCよりg++の後継コンパイラに力を注ぐそうです。

あともう一点、LinuxがC++でスクラッチから書き直されているそうです。
リーナスの手によって。
488デフォルトの名無しさん:2005/10/30(日) 16:48:06
ソース出せ。

↓こういうGCCのforked projectはある。
http://open64.sourceforge.net/documentation.html
489デフォルトの名無しさん:2005/10/30(日) 17:42:52
>あともう一点、LinuxがC++でスクラッチから書き直されているそうです。
>リーナスの手によって。
テラワロスww
わざわざC++にするなんて無駄だろ
490デフォルトの名無しさん:2005/10/30(日) 17:48:20
>>489
話の真偽は知らんけど、デバドラなんかは C よりも
すっきり書けると思うよ。

そういう意味じゃ、MINIX なんかの方が C++ で書
く意味があるかもね。
491デフォルトの名無しさん:2005/10/30(日) 17:52:55
new使わないC++を特別に名付けるとしたら
なんて名前がいいかな
492デフォルトの名無しさん:2005/10/30(日) 17:59:48
>あともう一点、LinuxがC++でスクラッチから書き直されているそうです。
>リーナスの手によって。
ポインタきぼんぬ。

ABIに起因する多くの欠点 >>> 自然にOOが出来る利点

なので、C++でカーネル書くのは、到底おいしいとは思えないのだが。
493デフォルトの名無しさん:2005/10/30(日) 18:01:21
>>489
レスありがとうございます。
笑ってもらえて光栄です。
494デフォルトの名無しさん:2005/10/30(日) 18:02:35
>>492
おいしくないはずがないですよ。
C++はオブジェクト指向なんですから。
分業の時代ですよ?
495デフォルトの名無しさん:2005/10/30(日) 18:08:40
> ABIに起因する多くの欠点

詳しい説明求む。
496デフォルトの名無しさん:2005/10/30(日) 18:08:48
>>491
C++-new
497デフォルトの名無しさん:2005/10/30(日) 18:10:18
>>491
OldC++
498デフォルトの名無しさん:2005/10/30(日) 18:20:08
>>491
C++
使うかどうかは言語の種類にあらず
499デフォルトの名無しさん:2005/10/30(日) 18:26:17
500デフォルトの名無しさん:2005/10/30(日) 18:26:53
>>497も捨てがたいけど、>>496でいくよ

>>498
C++の一部だけを使って高機能なCとして使うのを
ベターCとか言ったりするでしょ。あんな感じ。
501デフォルトの名無しさん:2005/10/30(日) 18:26:56
C99で満足しろ。
どうせなら、OSはC++じゃなくて、Objective Cで書いて欲しい。
502デフォルトの名無しさん:2005/10/30(日) 18:57:47
Objective Cはメソッドディスパッチがカーネル向きじゃない。

DarwinのデバドラIOKitが制限付きC++。
デバイスの種別階層をクラス階層にマッピング。
http://developer.apple.com/devicedrivers/
503デフォルトの名無しさん:2005/10/30(日) 19:16:50
たまにいるんだよな、オブジェクト指向にすれば何でも上手く行くと
思ってる奴…。
504デフォルトの名無しさん:2005/10/30(日) 19:23:53
GCCってガーベージコレクションの略?
505デフォルトの名無しさん:2005/10/30(日) 19:29:06
Gカップ Cカップ Cカップ の三人組アイドルユニットです
506デフォルトの名無しさん:2005/10/30(日) 20:33:55
ごっつい コアラ カッコイイ
507デフォルトの名無しさん:2005/10/30(日) 20:53:47
>>500
C++ is a better C と同様に
C++ is a 何と言いたいんだ?

ちなみに new を使わない分野は実在するが
厳密に定義されたコーディング基準あるいは制限にいちいちコードネームはあんまり付けない
508デフォルトの名無しさん:2005/10/30(日) 21:47:20
スレ違いだな。
509デフォルトの名無しさん:2005/10/30(日) 22:06:35
>>487
>あともう一点、LinuxがC++でスクラッチから書き直されているそうです。
>リーナスの手によって。
何この壮大な釣りww

(・∀・) 巣にカエレ
510デフォルトの名無しさん:2005/10/30(日) 22:15:01
>>499
URL ありがと。
ただ、これってインターフェースの問題で、既存の言語でもそれなりに発生す
るよね。まあ、OS の API がころころ変わるのはあまりないけど、ライブラリ
がバージョンアップした時によく聞く話だよね。

でも、(>>487 が正しいとして) Linus 氏が API まで変更するとはあまり思え
ない。
純然に、OS の内部を C++ だけで書いてるだけじゃないかな?

まあ、C++ のオブジェクトベースで資源が使える OS と言うのも面白そうだが、
バージョンアップにそれなりに耐えうるためには、何らかの動的な解決策が必
要だと思うので、C++ ではちょっと難しい感じがする。

>>507
コーディング規約とかじゃなくて、C++ のサブセット版みたいな感じだと思う
けど。イメージとしては、MemorySafe C++ みたいな。

> 厳密に定義されたコーディング基準あるいは制限にいちいちコードネームは
> あんまり付けない

MISRA とかは無視なの?
511デフォルトの名無しさん:2005/10/30(日) 22:26:25
>MISRA とかは無視なの?

あれのどこが厳密なんだよ
512デフォルトの名無しさん:2005/10/30(日) 22:30:34
>>507
気持ちの問題だよ
コードネームついてた方がかっこいいじゃん
それだけ
513デフォルトの名無しさん:2005/10/30(日) 22:34:10
Linus :「LinuxをC++で再構築する予定は無い。go to hell!」
514デフォルトの名無しさん:2005/10/30(日) 22:43:14
いまだに変数名をなんにするか程度でモメるのに、
これからLINUXをC++で書き直すんですか?
515デフォルトの名無しさん:2005/10/30(日) 22:54:07
C++で書き直すって!?
これからのLinuxは全コンパイルがデフォですか?!
516デフォルトの名無しさん:2005/10/30(日) 22:58:16
>>510
インターフェース(だけ)の問題じゃないぞ。
(ライブラリで定義されているような)ベースクラス実装が変って、
ベースクラスのサイズが変ると問題が起きる。

だから実装だけ別オブジェクトする事が良く行われる。
Pimplイデオム
http://boost.cppll.jp/HEAD/libs/smart_ptr/sp_techniques.html#pimpl

もうね、>>499なんて常識ですよ。
常識だからどうやればいいかも(ちょっと面倒だけど)はっきりしている。
517デフォルトの名無しさん:2005/10/31(月) 01:25:25
BeOSをバカにするな!!!
謝れ!!!
518デフォルトの名無しさん:2005/10/31(月) 01:30:28
ちょっと思うんだが、Pimplイディオムって基本的には抽象クラスを使えば済む話じゃないの?
まったく同じ指向のものってわけじゃないだろうからどっちか一方イラネってことじゃないけどね。
519デフォルトの名無しさん:2005/10/31(月) 02:37:39
書き直すって程馬鹿な行為はない。
しかもC++でって、Cからの移行メリットがほとんどない。
ライナスがそこまでアホだとは思えないんだが。
Perl6を見ろ。
520デフォルトの名無しさん:2005/10/31(月) 02:42:09
>517
BeOS知らないやつらにまでばらすな!!!
嘘だと言え!!!
521デフォルトの名無しさん:2005/10/31(月) 02:45:29
いつまでネタを引っ張れば気が済むのかと
522デフォルトの名無しさん:2005/10/31(月) 02:47:28
>しかもC++でって、Cからの移行メリットがほとんどない。
違う。
「LinuxにおいてCからC++への移行メリットは全く無い。」
523デフォルトの名無しさん:2005/10/31(月) 03:32:04
OS を C++ で実装するのに、FBC への対策として Pimpl を持ってくるのは
ちょっと違うと思うがね。
524デフォルトの名無しさん:2005/10/31(月) 14:10:39
対象が何でも同じだろ。
Kernelだってloadable moduleの互換性なくなるし。
525デフォルトの名無しさん:2005/10/31(月) 14:11:29
>>518
全然違うから(w
>>449のページを良く読むように。
526デフォルトの名無しさん:2005/10/31(月) 18:32:33
Objective-Cにしておけばいいのに。
拡張が容易。
527デフォルトの名無しさん:2005/10/31(月) 20:48:32
>>526
Lisp にしておけばいいのに。
拡張が容易。
528デフォルトの名無しさん:2005/10/31(月) 21:41:08
アセンブラにしておけばいいのに。
工数の都合上、お客様のご要望にはお応えできまsn
529デフォルトの名無しさん:2005/10/31(月) 23:21:00
Brainf*ckにしておけばいいのに。
読める人間がいないので、セキュリティも万全。
530デフォルトの名無しさん:2005/11/01(火) 07:24:36
>>527
LISPマシン!
531デフォルトの名無しさん:2005/11/01(火) 17:47:07
ひまわりにしておけばいいのに。
日本人開発者が増える。
532デフォルトの名無しさん:2005/11/04(金) 18:59:23
>ひまわりにしておけばいいのに。
>日本人開発者が増える。
それは無さそうだよ
533デフォルトの名無しさん:2005/11/04(金) 19:21:46
GCCでひまわりがコンパイル出来るようになるのは何時頃ですか?
534デフォルトの名無しさん:2005/11/04(金) 22:59:57
>>533
あなたがGCC開発プロジェクトに参加したその瞬間に、道は開けます。
用意はいいですね?それでは、始めましょうか。
535デフォルトの名無しさん:2005/11/05(土) 00:03:56
536デフォルトの名無しさん:2005/11/05(土) 00:06:32
537デフォルトの名無しさん:2005/11/05(土) 00:15:17
538デフォルトの名無しさん:2005/11/05(土) 00:16:32

539デフォルトの名無しさん:2005/11/05(土) 00:16:56
540デフォルトの名無しさん:2005/11/05(土) 00:32:06
541デフォルトの名無しさん:2005/11/05(土) 00:41:39
542535:2005/11/05(土) 00:48:40
ヒロシ キタ━━━━━━(゚∀゚)━━━━━━ !!!!! て、いやちがうやん
543デフォルトの名無しさん:2005/11/06(日) 17:38:04
-mfpmath=sse2やsse3って何で無いんですか?
-mfpmath=sseで精度落ちちゃうのが嫌なんですが。
544デフォルトの名無しさん:2005/11/06(日) 19:42:23
>>543
sse2が使えるなら使うよ。
545デフォルトの名無しさん:2005/11/06(日) 20:44:15
>>544
3.3.1だとerror: bad value (sse2) for -mfpmath= switchと言われます。
それとも、mfpmath=sseは-msseと同じ意味ってことですか?
546デフォルトの名無しさん:2005/11/06(日) 22:24:07
ぶっちゃげ
For i387 you need to use -march=cpu-type, -msse or -msse2 switches to enable SSE extensions and make this option effective.
を訳して欲しいです
547デフォルトの名無しさん:2005/11/06(日) 22:31:56
>>545
544じゃないが、違う。

-msseをすると、sse命令が使えるようになる。
-mfpmath=sseは、従来のFPU命令を出力する所をsseの
スカラー演算命令に置き換える。

余談だが、Pentium3では-mfpmath=sseは逆に遅くなる。
Pentium4では知らん。でも、劇的に早くなるとは思えん。

遅くなる理由は、単純にgccのsseスカラー命令のスケジューリング
がこなれてないせいだろうな。インテルコンパイラーの
出力と比べるとなんとなくそう感じる。
548デフォルトの名無しさん:2005/11/06(日) 22:32:04
>>546
「i387のためにSSE拡張を可能にし、このオプションを効果的にするために
-march=CPUタイプ、-msee、または-msse2スイッチを使う必要があります。」

TECH I Vol.29 実例で学ぶGCCの本格的活用法 p.270
         ~~~~~~


直訳載っけておしまいはひどいよCQ出版さん・・・
こんくらいman読んだだけでわかるって・・・
549デフォルトの名無しさん:2005/11/07(月) 00:06:39
$ マン ぐっしっし
550デフォルトの名無しさん:2005/11/07(月) 00:48:33
直訳でも、あの量はかなりの労力だろうな。
和文になってるだけでも価値を認める人はいるし。
551デフォルトの名無しさん:2005/11/07(月) 00:55:05
>>550
JM Project知らないの?
多少古いけどほとんど載ってるよ。
552デフォルトの名無しさん:2005/11/07(月) 06:42:37
To have SSE/SSE2 instructions generated automatically from
floating-point code, see `-mfpmath=sse'.
553デフォルトの名無しさん:2005/11/08(火) 02:59:00
カトちゃんケンちゃんの空中面で死ぬってのはどうなのよ?
下手すぎじゃね?
554デフォルトの名無しさん:2005/11/09(水) 00:08:10
gccでコンパイルするのとg++でコンパイルした場合の違いを教えてください。
555デフォルトの名無しさん:2005/11/09(水) 00:37:13
>>554
C++であれば、リンク時に libstdc++ が自動的に入るかどうか。
556デフォルトの名無しさん:2005/11/09(水) 01:01:09
>>554
デフォルト検索パスが違う。
557デフォルトの名無しさん:2005/11/09(水) 01:03:04
>>554
なんかかっこいい。
558デフォルトの名無しさん:2005/11/09(水) 05:28:08
better C
559デフォルトの名無しさん:2005/11/18(金) 20:24:34
$ gcc -O3 icc.c -o icc
560デフォルトの名無しさん:2005/11/20(日) 01:07:54
>>548
この本アマゾンで検索してもでてきませんね。ネットでは買えないのか?
それにしても、オプションの解説ばかり載っている本ですね。
561デフォルトの名無しさん:2005/11/20(日) 08:40:27
だってオプションの解説の本だもの。

それはそれでいいんだけど、
・Webで公開されている連載と変わらない
・実例がないのでman異常の価値を感じない
ので買うほどの意欲が沸かなかった……。
発売前は期待していたのになぁ。
562デフォルトの名無しさん:2005/11/20(日) 09:11:48
スレ違いの話題ですまん
4.1.0が出た
563デフォルトの名無しさん:2005/11/20(日) 09:32:38
>>562
いやスレ違いじゃないですよ。
564デフォルトの名無しさん:2005/11/20(日) 10:20:38
>>561
ソースとアセンブリが載ってるけど、あれって実例とは言わないよな。
買って損したと言い切ることは出来ないんだけども、
買わなくても問題はなかったと思ってしまう本だった。
565デフォルトの名無しさん:2005/11/20(日) 13:15:38
>>562
http://gcc.gnu.org/ の Serious regressions のリンク先によると、
いくつかの「うんこ」な問題が復活してるみたいだね。
open for regression and documentation fixes only
らしいし、4.1.1を待つか。

566デフォルトの名無しさん:2005/11/20(日) 14:43:38
前から疑問に思ってたんですけど、regressionってどういう意味ですか?
回帰とか退化とか辞書にはのってますけど。
567デフォルトの名無しさん:2005/11/20(日) 15:00:32
>>566
前のバージョンに比べて、機能が低下したってことじゃない?
568デフォルトの名無しさん:2005/11/20(日) 15:05:47
569デフォルトの名無しさん:2005/11/20(日) 15:24:47
なるほど、バグで言ったら今まで問題なかったのが、新たに導入されたバグ
最適化だったら今までできてたのが、できなくなったとかことなのかな
って書こうとしてたら、間に気持ち悪いレスがついた。
違うのかな?
570567:2005/11/20(日) 16:16:01
>>569
それ以外考えようがない。
571デフォルトの名無しさん:2005/11/20(日) 16:43:23
ぐぐった
http://mozillazine.jp/?m=200510&paged=2
regression (他のバグを修正したときに発生したバグ)
572567:2005/11/20(日) 17:06:49
>>571
バグに限った事じゃない。
今回も、最適化時のコード品質が低下したってのもあるし。
573デフォルトの名無しさん:2005/11/20(日) 21:51:42
そんなこと言うから気になって見たSerious regressionsのページで、

Status
------
UNCO
UNCO
UNCO
:
:

とか書いてて爆笑したw
574デフォルトの名無しさん:2005/11/20(日) 22:12:50
UNCOってどういう意味? いやマジで
575デフォルトの名無しさん:2005/11/20(日) 22:23:13
>>574
UNCOな奴の中に省略してないのが書いてある。
"UNCONFIRMED"だな。意味は「未確認」か?

とりあえず、「あんこ」って呼ぼうよ。
576デフォルトの名無しさん:2005/11/21(月) 01:01:19
うんこー
577デフォルトの名無しさん:2005/11/21(月) 01:29:43
CVSからSVNに変更になったんだね。GNUのいろんなアプリケーションは
こっちをソース管理ツールとしてどんどん使っていくのかな。
578デフォルトの名無しさん:2005/11/21(月) 04:03:34
>>574
そして、修正を割り当てられたのは「あっし」です。
579デフォルトの名無しさん:2005/11/21(月) 05:35:12
UNCOをウンコと読むやつは、AHOをアホと読みそうだな。
580デフォルトの名無しさん:2005/11/21(月) 08:53:14
>>577
えー、マジで?最悪…。
581デフォルトの名無しさん:2005/11/21(月) 11:39:51
gcc-4.1.0 はまだリリースされてないんだが。
582デフォルトの名無しさん:2005/11/21(月) 12:37:48
>>577
gcc.gnu.orgは独立しとるからのう。

まあ、sourceware.orgに置いてあるのはまとめて移行になるので、
当分CVSじゃないかなあと思うが。

583デフォルトの名無しさん:2005/11/21(月) 12:58:02
>>581
すまん、まだだったね。
久々に gcc.gnu.org いったら、トップに出ていたので、リリースされたと思っちゃったよ。
みんな、ごめん。
584デフォルトの名無しさん:2005/11/21(月) 15:43:26
たしかに
>Current release series: GCC 4.1.0
という表記は誤解を招きますな。

文句言ったところでAnnouncements読めといわれそうですが。
585デフォルトの名無しさん:2005/11/22(火) 21:44:11
4.1.0が来るにしても3.4.5リリースして何週間か立ってからだろうなぁ
586デフォルトの名無しさん:2005/11/23(水) 13:42:08
>>579
> AHOをアホと読みそうだな。
何か問題でも?
Caesarを「シーザー」ではなく「カエサル」と読むのと同じだろ。
587デフォルトの名無しさん:2005/11/23(水) 15:24:43
全然違うわけだが。
588デフォルトの名無しさん:2005/11/24(木) 22:37:02
パーサ(パーサー?)の話とかここでいいのかな?
(他のスレあったら教えてください)
仕事で幾つかのフォーマットを読み下すプログラムを
書いてきたんですが、毎回使い捨てで同じような
のを何度も書いている気がしています。
そこでパーサーと言われるプログラムの基礎を勉強しようかな
と考えています。
情報系とか出てないので理論的な知識が無いんだけど、
基礎から書いてある良い本とか良いサイトないですか。
よろしくお願いします。
589558:2005/11/24(木) 22:39:13
コンパイラ・スクリプトエンジン
というスレがありました。そちらの方が近いようですので
そちらで聞くことにします。
ありがとうございました。
590デフォルトの名無しさん:2005/11/25(金) 20:38:07
591デフォルトの名無しさん:2005/11/25(金) 20:40:35
GCC = God Compiler Collection
592デフォルトの名無しさん:2005/11/25(金) 20:49:10
GCC is not an open-source program by Richard Stallman
http://news.com.com/GCC+is+not+an+open-source+program/2009-1081_3-5634298.html

>but it erred in describing the program as an "open source" programming tool.
>I developed GCC as part of the Free Software Movement--so that people can
>use computers in freedom as part of a community.
593デフォルトの名無しさん:2005/11/25(金) 20:52:10
FreeSoftware >>>> |越えられない壁| >>>> OpenSource >>>> |さらに越えられない壁| >>>> それ以外の物
594デフォルトの名無しさん:2005/11/25(金) 21:45:16
つまりstallmanはフリーウェアは作ってもいいけどソース公開はしたくないよ、
と言っているのです。
595デフォルトの名無しさん:2005/11/25(金) 21:48:24
壁を越えてきて欲しくない物>>>全く特徴のない作文のくせにサイド広告に刻まれた技術用語にあやかり検索上位ヒットするblog
596デフォルトの名無しさん:2005/11/25(金) 21:58:45
>>595
今は検索にヒットさせるのも1つの商売になってるから
597デフォルトの名無しさん:2005/11/25(金) 22:08:17
>>594
そのソース元をフリーにしてください。
598デフォルトの名無しさん:2005/11/25(金) 23:16:04
slashdotでもリリースされたと勘違いされた記事が載っちゃったんか。

599デフォルトの名無しさん:2005/11/25(金) 23:19:22
結局オプソにしても一部の人間がメンテするのは同じ。状況は変わらない。
だったらソース公開せず技術流出を防ぐ方が大事だとストールマンも反省してるだろう。
バグレポだけで十分。
600デフォルトの名無しさん:2005/11/25(金) 23:29:55
>>592
GCCを"open-source software"なんて言ったらrmsが怒るの当たり前じゃん。
GCCは"free software"なんだから。
601デフォルトの名無しさん:2005/11/25(金) 23:36:28
いっそのことシェアウェアにしちゃえよ
602デフォルトの名無しさん:2005/11/26(土) 00:06:21
>>599
>だったらソース公開せず技術流出を防ぐ方が大事だとストールマンも反省してるだろう。
君も適当な事言うね。
ストールマンはOpensourceよりももっとフリー(speech)にしたがってるんだよ。

言っておくけど>>594は大嘘ついてるよ。
603デフォルトの名無しさん:2005/11/26(土) 00:33:40
>>602
大嘘っていうかネタだろう。


・・・ネタだよな? 本気で言ってたりしないよな、このスレ読んでる奴が。
そうだろう? そういってくれ、たq304ty e4gjkhz)'#W+)(YQW#NO CARRIER
604デフォルトの名無しさん:2005/11/26(土) 00:47:59
NO CARRIERとはまた懐かしい。
605デフォルトの名無しさん:2005/11/26(土) 00:57:00
606デフォルトの名無しさん:2005/11/26(土) 01:24:31
>>599
>結局オプソにしても一部の人間がメンテするのは同じ。状況は変わらない。
>だったらソース公開せず技術流出を防ぐ方が大事だとストールマンも反省してるだろう。
>バグレポだけで十分。
バグレポだけ十分だと?
ふざけんな! 俺はメンテしたいんだ! ソースよこせ!
607デフォルトの名無しさん:2005/11/26(土) 03:11:14
メンテする権限欲しかったら金払えよカス
ってことだろ多分。
608デフォルトの名無しさん:2005/11/26(土) 07:16:40
609デフォルトの名無しさん:2005/11/26(土) 07:18:54
権力やライセンス、金絡みの話より>>608のような話のほうが重要なのによく騒ぐなぁ
610デフォルトの名無しさん:2005/11/26(土) 10:13:38
お金は命より重いですよ。
611デフォルトの名無しさん:2005/11/26(土) 17:09:58
>LLVM is distributed under the University of
>Illinois Open Source License, an OSI-approved license.
http://llvm.cs.uiuc.edu/releases/

ライセンスが違うものがGCCに入るの?
あくまでプラグインっていう形に留まるんじゃ。
612デフォルトの名無しさん:2005/11/26(土) 17:58:50
>>611
ライセンス変更とかの話もちらほらあるみたいだけど,英語に堪能でないので
議論の流れがよく分からない。
613デフォルトの名無しさん:2005/11/26(土) 20:45:02
>>610
お前以外の命よりは尊いだろうが、お前の命と金なら、お前の命の方が
尊いだろう。死んだら終わりジャン。分かったような口を聞いてんじゃネーヨ。
614デフォルトの名無しさん:2005/11/26(土) 20:54:18
>>613
人は死んだら終わり。だが金は死なない。だから金は尊い。
615デフォルトの名無しさん:2005/11/26(土) 22:33:30
とりあえず、人類の進化に逆らって物々交換で生活しよう。
616デフォルトの名無しさん:2005/11/26(土) 22:48:19
死人は何も生産せずに
腐乱物体の処理費用を発生するからな
617デフォルトの名無しさん:2005/11/26(土) 22:55:33
人間が自分で「人間の命は尊い」などと言っているようでは救いようがない
618デフォルトの名無しさん:2005/11/26(土) 22:58:07
今までWindowsのVC.NETで開発していたCのソースを
fedora core 3のgccでもコンパイルできるようにしたいのです。
VC.NETは、
#ifdef WIN32
で検出できるのですが、fedora core 3のgccが検出できなくて困っています。
#ifdef ????
の????に何を書けば良いでしょうか?
よろしく。
619デフォルトの名無しさん:2005/11/26(土) 23:06:06
__GNUC__か__linux__だったかな
linuxは_linux_だったかも
620デフォルトの名無しさん:2005/11/26(土) 23:11:43
よくあるのは

MSVCの判定は 

#if defined (_MSC_VER)

gccの判定は

#if defined (__GNUC__)

というのだろうな
621デフォルトの名無しさん:2005/11/26(土) 23:21:19
ありがとうございました。
__GNUC__
ですか。試してみます。 実は、_GNUC_ は試してみたのですが、だめでした。
_linux_も検出できませんでした。
アンダースコアを二つつなげるのがミソなんですね。
ありがとうございました。
622デフォルトの名無しさん:2005/11/27(日) 10:34:02
__hoge は実装用に予約じゃなかったっけ
623デフォルトの名無しさん:2005/11/27(日) 11:25:15
4.1ってどこでダウンロードできるの?
624デフォルトの名無しさん:2005/11/27(日) 11:31:35
いや、だからまだリリースしてへんて。
625デフォルトの名無しさん:2005/11/27(日) 12:08:02
>>622
実装が定義してるマクロの話をしてるんだろ?
626デフォルトの名無しさん:2005/11/27(日) 13:40:00
>>623
このへん
ftp://gcc.gnu.org:/pub/gcc/snapshots
思う存分人柱してくれ。
627デフォルトの名無しさん:2005/11/27(日) 18:07:37
ftp://ftp.iij.ad.jp/pub/gcc/
ミラー使いナヨ
628デフォルトの名無しさん:2005/11/28(月) 12:23:21
いや、snapshotsは新鮮でなければ。

まあリポジトリから直接取ってくりゃいいことですが。

629デフォルトの名無しさん:2005/12/06(火) 15:21:24
GCCでtimeをインクルードさせるときってどんな風にコンパイルすればいいの??
630デフォルトの名無しさん:2005/12/06(火) 16:17:11
>>629
timeってtime.h?
631デフォルトの名無しさん:2005/12/06(火) 18:25:38
そうです、time.hです。言葉足らずで申し訳ない。
632デフォルトの名無しさん:2005/12/06(火) 18:30:22
OS・ディス鳥によって違うので一概に胃炎が

#include <sys\time.h>

とか書いたらまず通らないわなww

ヘッダファイルそのものをファイルシステム内で検索してみたら?
633デフォルトの名無しさん:2005/12/06(火) 19:11:42
やっぱ検索しかないみたいですね。ありがとうございます。試してみます。
634デフォルトの名無しさん:2005/12/06(火) 19:17:47
>>633
time.hのあるディレクトリのパスを-Iで指定
635デフォルトの名無しさん:2005/12/06(火) 22:09:43
>634
ありがとうございます。試してみます!
636デフォルトの名無しさん:2005/12/07(水) 23:22:00
質問です。

gcc4.0.2で、sincosfを使うと

hoge.c:55: 警告: implicit declaration of function 懼sincosf懼
hoge.c:55: 警告: incompatible implicit declaration of built-in function 懼sincosf懼

が出るんですが、この警告を出さないようにするにはどうすればいいんでしょうか?
実行は問題なくできます。

#include <math.h>と、-lmはちゃんとやってます。
637636:2005/12/07(水) 23:24:40
>>636
化けちゃいましたが、察してください。
638デフォルトの名無しさん:2005/12/07(水) 23:52:44
>>636
プラットフォームを書きなされ。
すくなくとも、標準CやPOSIXにはsincosf()なんてないぞ。
639デフォルトの名無しさん:2005/12/08(木) 00:11:23
>>636
math.hインクルードしてる?
640636:2005/12/08(木) 00:32:32
>>638
FC4です。sincosf()はgcc拡張です。

>>639
インクルードしてます。
641デフォルトの名無しさん:2005/12/08(木) 00:49:46
>>640
FedoraCoreならsincosf()はありそうですね。
gcc拡張ではなくてglibc拡張ですよ。

で、gccに-vを付けてどこのmath.hを読んでいるのか確認、そのmath.h
にsincosf()は書かれているのかを確認。
642636:2005/12/08(木) 01:38:59
>>641
/usr/includeでgrep -r sincosf *したら、

bits/mathinline.h:350:__NTH (__sincosf (float __x, float *__sinx, float *__cosx))


という結果だったので、強制的に
#include <bits/mathinline.h>
したんですが、まだ警告がでます。

あと、確かにgcc拡張ではなさそうですね。だから、警告が出るんでしょうか?
うーん、よくわからないです。
643デフォルトの名無しさん:2005/12/08(木) 06:52:01
gcc-3.x使えよ、禿げ。
644デフォルトの名無しさん:2005/12/08(木) 08:06:01
>>643
そんな古いの使ってられっかヴォケが。
645デフォルトの名無しさん:2005/12/08(木) 08:12:33
「や…やめてください…」
「へへへ……ラップはもうビリビリだぜ、あとはフタだけだ」
「いやぁ! だめ、フタを開けないで…!」
「ひゃっはあ! なんて嫌らしいノンフライ面だ!」
「おいおい、スープの素が2袋もあるぜぇ、こいつ誘ってんじゃねえのか?」
「そ、そんなんじゃありません…!」
「『食べる直前に入れてください』だぁ? 待ちきれねえ、今すぐ入れてやるぜ!」
「や、やめてー! ま、まだお湯も沸ききってないのに…!」
「うはぁ、すっげえ、冷えてる油とかやくでグチャグチャだぜ…たまんねえ!」
「そーれ、お次はお湯だ! 中にたっぷり入れてやる!」
「あああ! ぬ、ぬるい…! ……て、れてえ!」
「聞こえねえなあ、はっきりいえよオラッ!」
「せ、線まで! きちんと線まで入れてくださいぃいぃ!!」
「残念だったなあ、俺は1センチ残す派なんだよぉ! ははは!」
646デフォルトの名無しさん:2005/12/08(木) 08:58:03
sincosf()がホットスポットじゃないなら、-fno-builtinとかね。
647デフォルトの名無しさん:2005/12/08(木) 09:11:58
>>644
じゃあてめーで解決しろやヴォケが。
648デフォルトの名無しさん:2005/12/08(木) 09:17:13
>>644
古いって何が古いんです?
649636:2005/12/08(木) 13:39:15
えーと、>>644は別人です。

>>646
それをやっても、

hoge.c:41: 警告: implicit declaration of function 懼sincosf懼

この警告がでちゃいます。
なんでか知らないんですが、FC4のヘッダーには宣言がないっぽいです。

ちなみに、x86のFPUにはsincosの命令があるから使ってみようかな
という理由なんですが。
650646:2005/12/08(木) 14:03:22
アホなの?
inlineしたけりゃ、3.xを使えと書いただろ。

4.x使いたきゃ自分でasm文書け。
mathinline.h見れば簡単に書けるようになる。
651デフォルトの名無しさん:2005/12/08(木) 16:24:05
何この糞コンパイラ
>しかし、gc 4.xでは
>(n*10)/10 != n
>という条件は、どうやら 10/10 を先に計算して最適化して消してしまうらしい。
652デフォルトの名無しさん:2005/12/08(木) 17:02:00
>>651
整数のオーバーフローチェックとか
実数の桁落ちチェックですか。
653デフォルトの名無しさん:2005/12/08(木) 17:29:56
>>651
んなこたぁーない。
何か変な最適化オプション指定してんじゃないの?
654デフォルトの名無しさん:2005/12/08(木) 19:57:09
すごい初歩的な質問でもうしわけありません。
gcc 3.3.2なんですが、最適化フラグに-O4とセットして
コンパイルしたのですが、問題なくコンパイルできました。
でも、最適化フラグはO3までって書いてあります。
O4でなぜ、何もエラーなくコンパイル出来たのでしょうか?
655デフォルトの名無しさん:2005/12/08(木) 19:58:58
-O157だっていけるぞ
656デフォルトの名無しさん:2005/12/08(木) 20:25:59
>>654
gccはお前のことが好きなんだよ。
657デフォルトの名無しさん:2005/12/08(木) 20:41:54
オキソゾン
ドキソゾン
ドキュソゾン ←たぶんこれ
658654 :2005/12/08(木) 21:11:43
>>656
マジですか!
俺、ついにプログラムにまで惚れられるようになったのか。
このまま頑張ればいつか二次元の女の子にも好かれる日がきますかね?
で、O3とO4のバイナリの実行スピードを調べたんですけれど、ほとんど変わらないです。
最適化フラグで間違ってO3以上が指定されると、
エラーも出さず自動的にO3がセットされると考えて良いのでしょうか?
659デフォルトの名無しさん:2005/12/08(木) 21:28:18
>>657
マジですか!
660デフォルトの名無しさん:2005/12/08(木) 22:56:58
>>652
ねたもと ttp://www.rubyist.net/~matz/20051207.html#p01
ということでオーバーフローチェックですな。

>>653
定数式の畳み込みなんてのは基本ですからな、
まあ当然の結果でしょう。

ちょいと試してみたが、-O0でもきれいに消してくれるな。
これはさすがにやりすぎのような…
661デフォルトの名無しさん:2005/12/08(木) 23:24:13
>>660
そこまでひどいと、バグですな。今まで動いていたプログラムが動かなく
なる。
662デフォルトの名無しさん:2005/12/08(木) 23:34:24
printf()をputs()で「最適化」するような処理系だしなあ
663デフォルトの名無しさん:2005/12/08(木) 23:39:13
>>661
いや、意味が変わってしまう時点でどこまで酷かろうがバグなんですが。
664デフォルトの名無しさん:2005/12/08(木) 23:48:46
unsigned intにしてないんじゃないの?
符号付きintだとオーバーフローは未定義だから省かれても文句言えないと思うけど。

#include <stdio.h>

typedef unsigned int aint;
//typedef int aint;

aint aaa(aint n)
{
return (n*10)/10;
}

int main ()
{
aint u;

u = aaa(2000000000);
printf ("%d\n", u);
return 0;
}

3.4しか持ってないから4.0では試してみて。
665デフォルトの名無しさん:2005/12/08(木) 23:53:57
そんなもん、最適化以前にコンパイル時に警告かエラーではじけよ
666636:2005/12/09(金) 00:05:32
>>650
なにか勘違いをされてるようですが、gcc3.2でもちゃんと警告は出ますよ。

hoge.c:41: warning: implicit declaration of function `sincosf'
667デフォルトの名無しさん:2005/12/09(金) 00:08:51
>>665
なにを弾くんだ?
乗算してるところ全部?
668デフォルトの名無しさん:2005/12/09(金) 00:40:49
>>666
sincosfのマニュアルページに、使うためにはどうしたらいいかとか書
いてないかな?

669デフォルトの名無しさん:2005/12/09(金) 01:25:38
g++の話しはどこで聞いたらよいでしょうか?
670デフォルトの名無しさん:2005/12/09(金) 07:09:28
>>669
ここ。
GCC は GNU Compiler Collection の略で、g++ も含まれます。
671デフォルトの名無しさん:2005/12/09(金) 08:48:02
>>666
3.2とは古いね。
672デフォルトの名無しさん:2005/12/09(金) 08:53:20
>>651
>(n*10)/10 != n

正直、こんな糞なオーバーフローチェック書く奴の頭が疑問。
673デフォルトの名無しさん:2005/12/09(金) 13:21:50
アセンブラならキャリーフラグ見るんだろうけど、Cだとどうするんだろう。
674デフォルトの名無しさん:2005/12/09(金) 13:37:53
符号付きでオーバーフローがバグになるなら
n > 2147483648 / 10 こんな感じで割っとけばいいんじゃない
nが負だった場合を考えるともう一個書かなくちゃいけないのかな
675デフォルトの名無しさん:2005/12/09(金) 13:40:28
gcc4が糞バグを修正すればいいだけ
676デフォルトの名無しさん:2005/12/09(金) 13:43:19
gccがどういうconfigureオプションでコンパイルされたかを見る方法ってあります?
677デフォルトの名無しさん:2005/12/09(金) 13:45:57
>>675
Cの規格上このコード(n*10)/10 != nがバグなんだが
678デフォルトの名無しさん:2005/12/09(金) 13:49:16
>>676
gcc -v

>>675
規格的には未定義だから。
679676:2005/12/09(金) 13:55:19
>>678
thx!
680636:2005/12/09(金) 14:06:14
>>668
#include <math.h>
ぐらいしか書いてないです。

>>671
FC4のgcc3環境が3.2なんです。
681デフォルトの名無しさん:2005/12/09(金) 14:15:14
>>672
ポインターのアライメントをチェックするときに、
ポインターを整数に変換して、よくこんなコードを書くよ。

以下は、ポインターを、指定した境界に合わせるコードだけど、
gcc4で問題なく動いてるよ。

static void *get_aligned_address(void *pointer, int boundary)
{
if (((unsigned int)pointer) % boundary) {
return (void *)((((unsigned int)pointer) / boundary) * boundary + boundary);
}

return pointer;
}
682デフォルトの名無しさん:2005/12/09(金) 14:23:21
>if (((unsigned int)pointer) % boundary)
引数とらずに4,8,16,32あたりの個別の専用マクロ作りなよ
683デフォルトの名無しさん:2005/12/09(金) 14:25:41
オーバーフローしないし
684デフォルトの名無しさん:2005/12/09(金) 14:27:09
ふつー & で書かないか?
>>681のがどんなコードに落ちるか試したくなった。

漏れのオススメは (xxx) & -8 とかだが可搬性の罠に陥る罠。
685デフォルトの名無しさん:2005/12/09(金) 14:42:34
>>681
roundingかよ!
686デフォルトの名無しさん:2005/12/09(金) 14:47:10
>>684
>ふつー & で書かないか?
某CPUだと>> <<のが速かったな。
687681:2005/12/09(金) 14:53:30
>>684
それだと、アドレスの小さい方にアライメントされるから
あーやってしてる。
アドレスが小さくなると前の領域を破壊したり、確保されて
ない可能性があるから。

>>682
if文があるんで、マクロにするには気が引ける。
688デフォルトの名無しさん:2005/12/09(金) 14:57:21
>>686
演算即値が指定できないプロセッサ?

x86 m68k mips arm だと即値ANDの方が速いような希ガスのだけど
詳しく教えて呉呉
689デフォルトの名無しさん:2005/12/09(金) 14:59:24
>>687
あんたのコードでも小さい方にアライメントしてからboundaryを足してるじゃんw
690デフォルトの名無しさん:2005/12/09(金) 15:00:20
>>687
実際には (((xxx) + 7) & -8) とかな。

昨今のプロセッサだと条件判断を入れない方がスマートだと思うが如何?

GCCネタから脱線してるが気にするな。
691デフォルトの名無しさん:2005/12/09(金) 15:06:24
>>690
それかっこいい
ところで>>681のは除算を先にやってるから
期待どおりの結果が得られるのは当然な気もするけど
692デフォルトの名無しさん:2005/12/09(金) 15:16:53
>>681は馬鹿なのか全然気づいてなさそう。
693デフォルトの名無しさん:2005/12/09(金) 15:18:56
ifがあるからバグではないけどな
694681:2005/12/09(金) 15:22:09
>>689
えーと、結果的に小さくなる事はないんですが...

if (((unsigned int)pointer) % boundary) {
↑ここで、既にアライメントされている時はなにもしない。
return (void *)((((unsigned int)pointer) / boundary) * boundary + boundary);
↑これは、いったん端数を切り揃えてから、boundaryを足す、
つまり、次の境界に移動する。
}

>>690
それ、いただきます。ヽ(´▽`)ノ
695デフォルトの名無しさん:2005/12/09(金) 16:11:24
>>694
そもそも、あんたが小さい方に云々言い出したのだよ(>687)。
で、あんたのコードも同じことをやっていると指摘したわけだ(>689)。
つまり、あんたの書いた「割ってから掛ける」のも「論理積でマスクする」のもおんなじこと。
だから論理積でマスクした場合も(既にアライメントされているときは条件で除外しているなら)
あんたのコードと同じようにboundaryを足すだけでいい。

まぁ、>690のように条件判断さえ要らないわけだが。
ちなみに、あんた流に割って掛けるならば、
return (((unsigned) pointer + (boundary - 1)) / boundary) * boundary;
でいいのだよ。
696デフォルトの名無しさん:2005/12/09(金) 16:20:38
>>681ってスレ違いの話題で内容もチョイボケ。スルーしなよ。
697681:2005/12/09(金) 16:35:49
>>695
ああ、スマソ...orz
何も考えずにレスしてたよ。
今にして思えば、なんでif使ってたんだろうなと...
自分が馬鹿なことは良くわかりました。ありがとうございました。
もう、スルーしてください。
698デフォルトの名無しさん:2005/12/09(金) 22:00:55
ひょっとして、ゆとり教育世代の人ですか?
699デフォルトの名無しさん:2005/12/15(木) 00:43:46
> ((unsigned int)pointer)
この時点でダメだろ。
ふつー ((uintptr_t)pointer) だ。
700デフォルトの名無しさん:2005/12/15(木) 06:29:01
uintptr_tが使えない環境も考えると、
何か適当な名前にtypedefするのが普通じゃないか。
701デフォルトの名無しさん:2005/12/15(木) 10:14:49
>>700
typedefしても使えないものは使えないだろ。
環境依存なコードはifdefしか選択肢がない。
702デフォルトの名無しさん:2005/12/15(木) 10:17:01
config.hでuintptr_tをtypedefしたりな。
703デフォルトの名無しさん:2005/12/15(木) 10:20:01
uintptr_tはC99。
ないやつのために別の名前にするなんてナンセンス。
704デフォルトの名無しさん:2005/12/15(木) 10:36:35
>>703
>>700は別にナンセンスじゃないだろう。
自前で定義する物に、システム標準と同じ名前を使用するのは
あまりいい事でない気がするが。

まぁ、uintptr_tぐらいならどうでもいい事だが。
705デフォルトの名無しさん:2005/12/15(木) 11:08:44
longでいいだろ。
706デフォルトの名無しさん:2005/12/15(木) 11:35:31
どこに書いたらいいのかわからんのでここで質問させてください。
(該当スレあれば誘導おながいします。)

今Dual構成のマシンを使ってて、あるプログラムを
指定のCPUで動作させたいのですが、Win32で言う
「SetThreadAffinityMask」みたいな関数ってLinuxに
ありますか?

で、恥ずかしながら、gccってLinux(UNIX?)付属の
標準のコンパイラと思っててOK?
Linuxもgccもどっちも初めてなもんで・・・orz。
707デフォルトの名無しさん:2005/12/15(木) 12:14:59
>>706
>(該当スレあれば誘導おながいします。)
鼬害。
犬板へどうぞ。

>で、恥ずかしながら、gccってLinux(UNIX?)付属の標準のコンパイラと思っててOK?
バンドルされていますが、標準ではありません。
708706:2005/12/15(木) 12:53:12
大変失礼しました。

>犬板
どこですか?

>バンドルされていますが、標準ではありません。
どもありがとうございます。m(__)m
709デフォルトの名無しさん:2005/12/15(木) 13:00:24
>>708
ローマ字仮名変換でlinuxと打って味噌。
まぁ、板違いというほどでもないからUnixプログラミングスレで聞いてみたら?
#あ、「Win32で言う……」ではなく具体的に書いたほうがいいと思う。
http://pc8.2ch.net/test/read.cgi/tech/1127373405/
710706:2005/12/15(木) 13:02:57
>>709
ありがとうございます。
711デフォルトの名無しさん:2005/12/15(木) 16:47:05
正確には犬糞板だけどな
712デフォルトの名無しさん:2005/12/17(土) 02:18:15
>>711
ワロス
713デフォルトの名無しさん:2005/12/20(火) 16:34:07
#define ALIGN_ADDR(addr,align) (((unsigned char*)(addr))+align\
-((unsigned int)(addr)%align))
714デフォルトの名無しさん:2006/01/01(日) 00:34:02
A happy new year!! GCC
715デフォルトの名無しさん:2006/01/03(火) 23:43:09
716デフォルトの名無しさん:2006/01/05(木) 03:57:16
なあ、いまさらなこと確認するんだけど、
GCCでビルドした、GPLなライブラリとは一切リンクしていない生成物は、
GPLにする必要ないよな?

GPLなグラフィックツールで作った画像と同じ扱いだよな?
717デフォルトの名無しさん:2006/01/05(木) 04:34:34
>>716
ない。安心すれ。
718デフォルトの名無しさん:2006/01/05(木) 08:36:35
>>716
問題ない具体例: FreeBSDはGPLになっていない。
719デフォルトの名無しさん:2006/01/05(木) 11:47:25
GPLを法的に遵守させた事例とか
そのての判例ってあるんかね?
境界がグレー過ぎるし、GPL規約えげつない。
720デフォルトの名無しさん:2006/01/05(木) 11:55:13
>>719
GPLがえげつないって?
著作権法のほうがえげつないだろ。
何の根拠も無く独占の権利が90年以上続くって、アフォかと。
721デフォルトの名無しさん:2006/01/05(木) 12:17:09
722デフォルトの名無しさん:2006/01/05(木) 13:38:01
>>719
>境界がグレー過ぎるし

Linux のドライバーの件とかね。
723デフォルトの名無しさん:2006/01/05(木) 15:54:12
そのへんは技術の進歩に対応できていないだけでは?
緩やかなライセンスなら解釈で逃げられるんだろうけど。
724デフォルトの名無しさん:2006/01/05(木) 16:30:10
>>686
& で書いてもアセンブラの>>,<<に落ちるときがある
特にソレを直後に配列のindex等に使うとき

725デフォルトの名無しさん:2006/01/05(木) 20:25:51
LinuxはGPL_なんとかっていうマクロで外部に広く公開する関数と
そうでないのを分けてなかった?
726デフォルトの名無しさん:2006/01/05(木) 20:49:52
>>721
> http://leaf.aquaplus.co.jp/xvid.html

少し時間かかったけど公開したんだね。まあいさぎいいといって良いかな。
727デフォルトの名無しさん:2006/01/05(木) 21:24:16
>>723
GPLv3は更に逃がさない方向で改正を考えてる模様。

GPLはcopyleft実現の手段。社会体制自体違うんだから、
無理に回避しようとかしないほうが身のため。
728デフォルトの名無しさん:2006/01/05(木) 21:44:14
つーか、法の趣旨に反する行為を自覚しながら隙を狙うのは
掛け値なし泥棒だろ
729デフォルトの名無しさん:2006/01/05(木) 21:53:53
マジGPL怖いな。
そのうちGNUのmathライブラリ使ってるだけでも
ソースくれくれいわれそうだな
730デフォルトの名無しさん:2006/01/05(木) 21:59:36
インターフェイス継承の趣旨についても怪しいときたか
731デフォルトの名無しさん:2006/01/05(木) 22:23:50
>>729
バイナリをもらった時だけ、ソースくれくれするんだお  ><
732デフォルトの名無しさん:2006/01/05(木) 22:34:31
>>729
最初からGPLでソース公開してれば無問題
それがGPLクオリティ
733デフォルトの名無しさん:2006/01/05(木) 23:01:20
GPLがUNIXをダメにしたと、
俺は思ってるよ
734デフォルトの名無しさん:2006/01/05(木) 23:13:30
大学当局のサブマリンより質の悪い著作権大量強奪事案に対するアンチテーゼがどうかしたのかよ
735デフォルトの名無しさん:2006/01/05(木) 23:20:59
>>725
EXPORT_SYMBOL/EXPORT_SYMBOL_GPLのことか?
GPL付きのは仕様が変わる可能性があるので、
そういう場合に自由に直せるようにソース晒しとけつー事だったような。
736デフォルトの名無しさん:2006/01/06(金) 00:01:55
GPL違反が恐いならさ、ソース公開しちゃえばいいじゃん。
超〜簡単じゃん。
737デフォルトの名無しさん:2006/01/06(金) 00:25:53
MicrosoftがXPのソースを公開しないのはなんでだと思う?
738デフォルトの名無しさん:2006/01/06(金) 00:35:26
GPL違反が恐く無いんだよ。きっと。
739デフォルトの名無しさん:2006/01/06(金) 00:36:23
ソースが汚すぎるから。
740デフォルトの名無しさん:2006/01/06(金) 01:01:29
コメントとか変数名が卑猥すぎて公開できないから
741デフォルトの名無しさん:2006/01/06(金) 01:20:51
そもそもソースが無い
742デフォルトの名無しさん:2006/01/06(金) 01:24:19
GPL違反がばれるから。
743デフォルトの名無しさん:2006/01/06(金) 01:25:48
軍との癒着がバレる
744デフォルトの名無しさん:2006/01/06(金) 01:33:42
ソースファイルを記述した言語を公表できない
745デフォルトの名無しさん:2006/01/06(金) 01:37:06
ソースコードがAAになっている。
746デフォルトの名無しさん:2006/01/06(金) 02:42:46
「ひまわり」で書かれてるから
747デフォルトの名無しさん:2006/01/06(金) 03:44:59
ちょっとだけ改良したものをGPLライセンスとされてしまう。
748名無し募集中。。。:2006/01/06(金) 04:11:05
マジレスすると仕事でソフトを組むときはかなり気をつける
749デフォルトの名無しさん:2006/01/06(金) 07:28:45
>>748
それが普通。

GPL を批判してる奴らは頭おかしいよ。ソースを公開したくなければ
GPL ライセンスのソフトを使わなければいい。嫌なら使わないなんて
小学生でも考えれば分かることだ。
750デフォルトの名無しさん:2006/01/06(金) 07:34:24
使いたいのに使えないから GPL を批判してる奴なんかいてもごく少数だろ。
むしろ GPL の在り方に対する批判が殆どだと思うが。
751デフォルトの名無しさん:2006/01/06(金) 08:19:18
自分の関知しないところでGPLライセンスのものが紛れ込んでしまう事が恐ろしい
752デフォルトの名無しさん:2006/01/06(金) 08:42:58
睡眠プログラムかよ
753デフォルトの名無しさん:2006/01/06(金) 09:24:18
サブマリンコードだな
754デフォルトの名無しさん:2006/01/06(金) 10:33:39
IA32 (x86) でインラインアセンブラを使っているのですが、
gcc の asm においてイミディエイトは $12345 見たいに書きますよね?

asm ("mov $123, %%eax");
asm ("mov 123, %%eax");

この両者は何が違うのでしょうか??
755デフォルトの名無しさん:2006/01/06(金) 11:44:25
サブマリン特許のほうを何とかしてくれよ
後出しで訴えられたら回避不能
ライセンス調べればわかるGPLなんぞよりもはるかに悪質だ
756デフォルトの名無しさん:2006/01/06(金) 11:50:09
GPLなんて最悪、コードをオープンにするだけのことだしなあ。
757デフォルトの名無しさん:2006/01/06(金) 13:37:25
しかし自分の成果物の改良版をGPLで公開されると、そこから先の成果は
Non-GPLなライセンスでは公開できなくなるわけで。
商用利用してもらうことは難しくなるし、そもそもどうしてもBSDLで公開したいという
原著作者の意向は果たせない。「自由」では無くなるわけだ。


まあ、同じことはGPLな人が言う、フリーソフトがプロプライエタリなソフトウェアに使われた場合にも
起こるわけだけど。
758デフォルトの名無しさん:2006/01/06(金) 13:40:43
エロゲのGPL違反は、画像やバイナリも再配布可能になってるん?
759デフォルトの名無しさん:2006/01/06(金) 13:54:09
貴様らまとめてGPLのスレへ池。
あと、GCCに付属のスタートアップはGPLの例外条項の範疇だから安心汁。
詳しくは「GPL "例外条項"」ググれ。
760デフォルトの名無しさん:2006/01/06(金) 14:06:24
>>757
その手の揉め事がトラウマになって生まれたらしいからね。

|StallmanがEmacsのオリジナルバージョンを書いたのは1975年のことだが、
|1982年、James Gosling(そう、後にSunでJavaを設計したあのGoslingだ)が
|Emacsを全面的に書き直した(Gosling Emacs)。当初Goslingは、Stallmanや
|他の人々がGosling Emacsのソースを自由に利用することを認めており、
|また、Gosling自身も他の人々からのフィードバックの恩恵を十分に
|享受していたようだ。バザール・モデルの先駆けとでも言えようか。

|今となっては信じがたい話だが、この時点ではStallman自身、ソースが
|無料で手に入れば、細かいことはどうでもいいと思っていたふしがある。
|そんなわけで、StallmanはGosling Emacsに改良を加えるとともに、
|喜んでGNU EmacsにGoslingのコードを取り込んだ(1985年にリリースされた
|Emacs 15.34) のだが、その後Goslingがとある企業にGosling Emacsの権利を
|売ってしまい、しかもその企業がGoslingのソースの自由な利用を拒否して
|きたため、 Stallmanは問題の部分を一から書き直す羽目になった。
|この苦い経験から、口約束ではないきちんとした契約で、ソースが未来永劫
|誰でも自由に利用できるということを保証するという発想が生まれてきた。
761デフォルトの名無しさん:2006/01/06(金) 14:10:11
むしろこのスレに妥当である >>754 が無視されてる件について
762デフォルトの名無しさん:2006/01/06(金) 14:24:46
>>761
gccじゃなくてx86アセンブラの質問ですからなあ。

>>754
mov imm,reg
mov mem,reg
763デフォルトの名無しさん:2006/01/06(金) 18:12:34
>>762 ということは、
asm ("mov 123, %%eax");
って書くと123番地を読みに行ってたのか!
どおりでぶっ飛ぶわけだよ orz

いままで masm と Visual C++ のインラインアセンブラ
ばかり使ってきたから、オペランドの順序とか
clobber を明示的に指定しないとダメだったりとか、
もんげ〜苦労してる。
764デフォルトの名無しさん:2006/01/06(金) 18:13:33
ワロタ
765デフォルトの名無しさん:2006/01/06(金) 18:26:43
>>763
gasのinfo嫁
766デフォルトの名無しさん:2006/01/06(金) 20:19:12
これお勧め

http://www.cqpub.co.jp/interface/default.asp

2006年2月号
767デフォルトの名無しさん:2006/01/06(金) 23:53:32
GCCで作った(Win32 Mingw)プログラムはGPL感染するんですか?
768デフォルトの名無しさん:2006/01/07(土) 00:02:06
誰かワクチン作ってくれ
769デフォルトの名無しさん:2006/01/07(土) 00:28:33
OpenBSDがgccを捨てる可能性ってある?
770デフォルトの名無しさん:2006/01/07(土) 00:52:13
>>767
ライブラリによる。
つーか上でGPLの話が色々出てるけど、
GCCでコンパイルする事によってGPLが感染するとかは一切無いぞ。
GPLに限らずだけど、出来るバイナリにとってのソースが問題なわけで、
GCC自体はライセンス問題とはあんま関係無い。
プロプライエタリなソフトをGCCでコンパイルしててもそれ自体は何の問題もない。

includeはちゃんと確認しておこうな
771デフォルトの名無しさん:2006/01/07(土) 01:01:39
libstdc++をリンクしたら?
772デフォルトの名無しさん:2006/01/07(土) 02:12:46
例外事項ついてるだろ。ドキュメント読めよ。
773デフォルトの名無しさん:2006/01/07(土) 12:07:52
llvmって結局どうなったの?
774デフォルトの名無しさん:2006/01/08(日) 10:32:46
プロプライエタリを日本語訳してくれ
775デフォルトの名無しさん:2006/01/08(日) 10:44:09
>>774
独占的じゃだめなの?
776デフォルトの名無しさん:2006/01/08(日) 11:15:01
どうも。あえて日本語にしない理由でもあるの?
777デフォルトの名無しさん:2006/01/08(日) 11:16:37
「プロプライエタリなソフト」ってよく使うからじゃ?
カタカナ語は何でも許さない派?
778デフォルトの名無しさん:2006/01/08(日) 16:12:27
議論が止まってるように見える>LLVM
英語がよく理解できないので、何がネックになってるのか読み取れなかったけど。
779デフォルトの名無しさん:2006/01/10(火) 07:48:38
他にも類似は色々あるのに何でわざわざGPLでないものをって事が大きいわな。
780デフォルトの名無しさん:2006/01/10(火) 11:59:38
C++なのも問題だったりする?
781デフォルトの名無しさん:2006/01/14(土) 20:46:24
>>779
類似のものって?
782デフォルトの名無しさん:2006/02/01(水) 20:37:43
またまたGPLがらみだが、

gccの最適化で組み込み関数のインライン展開ってあるよな?
その展開されるコードはやっぱGPLなんかな?

だとするとライブラリだけじゃなくて最適化オプションにも
気を使う必要がでてくることに。。。

まぁ、strcpyだとかmemcmpだとかの短いコードだと
誰が書いても同じ様なコードに落ち着くから
権利主張される事はないと思うが。
783デフォルトの名無しさん:2006/02/01(水) 20:42:44
>>782 ばかすぎ
784デフォルトの名無しさん:2006/02/01(水) 20:47:40
>>782
> Microsoft Visual C++(あるいはVisual Basic)を使ったWindowsアプリケーションを書いているのですが、
> これをGPLの下で公開する予定です。
> GPLは、私のプログラムをVisual C++(あるいはVisual Basic)のランタイムライブラリと
> ダイナミックリンクするのを許可していますか?

> はい、なぜならランタイムライブラリは通常あなたがお使いのコンパイラあるいはインタープリタに付随するからです。

の逆パターンだな。問題無いよ。
785デフォルトの名無しさん:2006/02/01(水) 22:11:50
GPL恐怖症な奴がここに来てるって聞いたのですっとんできますた。
786デフォルトの名無しさん:2006/02/01(水) 22:12:18
787デフォルトの名無しさん:2006/02/01(水) 23:05:26
GPLに関する話は専用のスレでやってくれよ。また荒れる。
788デフォルトの名無しさん:2006/02/11(土) 11:11:46
#pragma once って gcc では使えないんでしたっけ?
バージョンによっては使える?
789デフォルトの名無しさん:2006/02/12(日) 10:10:52
いや、pragmaは普通「コンパイラ毎の拡張」だから、ANSIにはプリプロセッサにpragmaの
キーワードを定義しているだけで、その文法や効果に定義はない。
gccでは、VCのpragmaは使えない。っていうか、Intel C++のpramgaも使えないし、
Sun Workshop C++のpragmaも使えない。逆に、gccのpragmaが向こうでは使えない。

また、たまたまpragmaが他のコンパイラで別の意味を持つこともある。移植の際に
コンパイラを変えるなら注意が必要となる。
gccでpragmaを用いるなら

#ifdef __GNUC__
#pragma foo
#endif /* __GNUC__ */

と記述した方が良い。VCでも同様にVCの固有ディレクティブを用る場合、他のコンパイラ
では評価されないよう保護すべきだろう。
(上記は、本当ならバージョンも絞った方が良い。なんせ、ローカルビルドやバージョンでも
機能が異なることがある)

# 余談だけど#pragma onceの実装は、#inportの実装と並んで、一度rmsとNext陣営で
# 揉めた事があったはずで、その後、Obj-Cとかでは両方実装されてたと思ったんだけど、
# C++では結局実装しなかったんだっけ?使って無いから良くわかんないんだけど。

個人的には#pragma onceは2行のコードと重複した宣言子の可能性を排除するが、コンパイラ
固有のコードになるという危険をはらむので、外の環境にコードを持ち出さない、社内開発の
ような場所でのみ使うべきだと思う。しかも、再利用しないコードという、限定された状況で。
あと、個人開発とかかな。
790デフォルトの名無しさん:2006/02/12(日) 10:24:22
ヘッダファイルの非標準な解釈を標準に合わせるために非標準の #pragma を使う滑稽な図式
791デフォルトの名無しさん:2006/02/12(日) 10:59:25
>>788
あるけど、これから書くヘッダには使うな。

#ifndef _XXX_H
#define _XXX_H
ヘッダ本体
#endif

と書けばいいだけ。

>>789
長いよ。
792デフォルトの名無しさん:2006/02/12(日) 11:08:33
>>790
??
#pragma onceは非標準な解釈を標準に合わせる為にあるんじゃなく、
同じヘッダファイルの2度読みを避ける為の物だよ。

#ifndef __FOO
#define __FOO
ここにヘッダ本体
#endif // __FOO

の代わりだよ。で、>>788はgccで使えなかったっけ?って聞いてて、>>789
知らんって答えてるだけなんだけど。(pragmaはコンパイラ毎に変わって当たり前
だろ、とも読める)
793デフォルトの名無しさん:2006/02/12(日) 11:14:29
> ヘッダファイルの非標準な解釈を標準に合わせるために非標準の #pragma を使う滑稽な図式

> > #ifdef __GNUC__
> > #pragma foo
> > #endif /* __GNUC__ */
> >
> > と記述した方が良い。

に対してだと思われ。
794789:2006/02/12(日) 11:29:09
>>791
> 長いよ。

ごめん。GPLの話題がちょっとつまんなくって、良い話題転換かな〜って思ったから。
795789:2006/02/12(日) 11:39:29
>>793 = >>790?
すいません。言葉足らずだったかな。

> > #ifdef __GNUC__
> > #pragma foo
> > #endif /* __GNUC__ */

は、「gccなら#pragma fooを評価して、それ以外の場合は評価しない」って意味です。
ので、非標準な解釈(#pragma)をさせない為に、標準な#ifdefを用いてます。

「gccと、他のコンパイラで#pragma fooが存在し、しかもコンパイラによって解釈が異なる場合」
を想定しています。

ご理解頂けたでしょうか?
796デフォルトの名無しさん:2006/02/12(日) 11:47:40
>>795
いや、解説されなくても>>795の内容は理解はできるんですけどね。

言葉足らずだったかな。たぶん >>790
> 、非標準な解釈(#pragma)をさせない為に、標準な#ifdefを用いてます。
って書きたかったのを間違ったんじゃないかなと思います。

十分滑稽だし。
797デフォルトの名無しさん:2006/02/12(日) 12:01:02
>>796
それを滑稽と思うのなら何故そう思うのか解説よろしく。
#私にゃ何故滑稽なのか判らんのでな。
798デフォルトの名無しさん:2006/02/12(日) 12:09:50
pragma once に関しては >>791 って書けば良いと思うから。

わざわざ pragma全般まで話を拡大したあげく、
pragma (この文脈では pragma once)を ifdef で括るのを滑稽だと思わない?
799デフォルトの名無しさん:2006/02/12(日) 12:19:34
#ifndef _XXX_Hってデファクトスタンダードだけど、
ISO Cの規格には書いてないよね。
800デフォルトの名無しさん:2006/02/12(日) 12:57:42
_で始めるシンボルってユーザが使っていいんだっけ?
801789:2006/02/12(日) 13:21:19
>>796 = >>798?
なるほど。そういう事ですか。まあ、自分の解説もどきも滑稽ですが、
他人が書いた全く逆の意味のtypoを理解出来るなんて、すごいデスね・・・。

説明が長いのは、#pragma onceがC++共通の機能みたいに考えてるっぽかったので、
#pragmaの意味を>>788が知らないのかな〜と思った為です。
#pragma once自体がgccで機能するかどうかは、試せば一発ですし。
802デフォルトの名無しさん:2006/02/12(日) 13:32:07
gccはこんなことも知っている。
> foo.c:1:9: 警告: #pragma once がメインファイルにあります
do_pragma_once()が処理する。
803デフォルトの名無しさん:2006/02/12(日) 14:12:07
>>796
>たぶん >>790 は (中略) を間違ったんじゃないかなと思います。

ちげーよ
間違ったんじゃなく、ある仮定を1つ言ってないだけさ
804デフォルトの名無しさん:2006/02/12(日) 15:06:06
ある仮定ってなんだよ。また、テレパシー系かよ。

>>800
たしかANSIでは、
1.2重のアンダースコアを含む大文字の名前
2.アンダースコアで始まる名前
は、(コンパイラの)実装に予約されてる。
805デフォルトの名無しさん:2006/02/12(日) 15:33:52
国際規格ではなくアメリカ国内規格を引用している誰かさんも
手元にない規格票をテレパシーで読んでるのと違うのか?
806デフォルトの名無しさん:2006/02/12(日) 23:20:17
>>805
手元に無いよ。テレパシーは無いけど、記憶を辿った。以前の仕事で、コーディング規約に
あったし、Mozillaの移植性ガイドにもある。おまけに、ANSIやらISO関連はググれば出てくるし。

17.4.3.1.2 のGlobal names。ISOも同じ項目番号みたい。

で?ある仮定ってなに?テレパシー無いんで、分からんのよ。
# ここでいってる「テレパシー」ってのは、テレパシー持ってないと分からないような
# 「足りない」レスの事。初心者質問スレで良く見かけるアレ。
807デフォルトの名無しさん:2006/02/12(日) 23:30:25
おまえさんの国ではコーディング基準を ANSI というのかい?
半日近くググったばかりで悪いがもうちっとがんばれな >ある仮定
808デフォルトの名無しさん:2006/02/13(月) 00:15:20
仄めかし気違いは無視するに限ります。
809デフォルトの名無しさん:2006/02/13(月) 00:23:07
>>807
うん。ニホンでは、良く「ANSI準拠」と「ISO準拠」って言うよ。C++は普通にANSI/ISOで
標準化されてるしね。Cの時もまずANSIで標準化されたし。
あと、さすがに休日に2chの為に半日もググったり張り付いたりしねって(w
普通出かけるだろ。飯も食うし。
「ある仮定」は、もうどうでもいいや。ただの負け惜しみっぽいし。

>>808
了解。(・∀・)
810デフォルトの名無しさん:2006/02/13(月) 00:26:05
>>809
m9(^Д^)プギャー!!
811デフォルトの名無しさん:2006/02/13(月) 00:51:47
>>810
同じく
812デフォルトの名無しさん:2006/02/13(月) 01:04:56
CはANSI規格がそのままISO規格になった最初の言語規格じゃない?
813デフォルトの名無しさん:2006/02/13(月) 01:36:01
コーディング規約にはなってないけどね
814デフォルトの名無しさん:2006/02/13(月) 01:47:14
粘着うざ(w
815デフォルトの名無しさん:2006/02/13(月) 02:59:23
>>813
君のところではねw
816デフォルトの名無しさん:2006/02/13(月) 06:28:48
>>813
コーディング規約なんて、会社毎、プロジェクト毎に異なる可能性のあるもんじゃねーの。
817デフォルトの名無しさん:2006/02/13(月) 08:43:47
一人だけageてるから、分かりやすいな・・・。
818デフォルトの名無しさん:2006/02/13(月) 11:15:23
age
819デフォルトの名無しさん:2006/02/13(月) 11:57:24
,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;;    コーディング規約さえ守ってれば見やすくなる
  ヾ;;;ハ    ノ       .::!lリ;;r゙   
   `Z;i   〈.,_..,.      ノ;;;;;;;;>  
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f     そんなふうに考えていた時期が
   〜''戈ヽ   `二´    r'´:::. `!     俺にもありました
820デフォルトの名無しさん:2006/02/18(土) 04:04:52
でも、コーディング規約にのっとって無いソースは大抵汚いよな
821デフォルトの名無しさん:2006/02/18(土) 04:07:27
>>820
最低インデントをハードタブにするかソフトタブにするかだけはそろえて欲しい。 ごちゃまぜに
すると開けるエディタ環境によってインデントが全然ちがう。
822デフォルトの名無しさん:2006/02/18(土) 07:31:02
そういやJava API のソースは4タブで開くとボロカスだな。
8タブにして表示すると見た目が4タブという、なんてあほなことするんだSunは。
823デフォルトの名無しさん:2006/02/18(土) 11:27:02
>>822
お前ほどアホではないと思うよ。
824デフォルトの名無しさん:2006/02/18(土) 13:10:47
>>823
ちげーよ
ある仮定を1つ言ってないだけさ
825デフォルトの名無しさん:2006/02/18(土) 15:09:33
ワロスwww
826デフォルトの名無しさん:2006/02/18(土) 20:44:48
>>790,803 に良く似た奴が最近 C++ 相談室で暴れてた。
827デフォルトの名無しさん:2006/02/19(日) 14:42:52
OpenMPをgccにで使うためにインストールしたいのですがgoogleよyahooでぐぐって見たもののよくわかりません。
どなたか教えていただけないでしょうか?解説してあるサイトでもかまいません。
828デフォルトの名無しさん:2006/02/20(月) 11:43:13
829デフォルトの名無しさん:2006/03/01(水) 22:25:33
GCC 4.1.0
830デフォルトの名無しさん:2006/03/02(木) 09:14:32
今度こそリリースなんだね?
831デフォルトの名無しさん:2006/03/02(木) 09:22:47
自己レス。

GCC 4.1.0 Released
ttp://gcc.gnu.org/ml/gcc/2006-03/msg00045.html
832デフォルトの名無しさん:2006/03/02(木) 10:42:23
独自拡張で構わないのですが、gccでプロパティは実現できますか?
833デフォルトの名無しさん:2006/03/02(木) 12:43:07
プロパティって何?
834デフォルトの名無しさん:2006/03/02(木) 13:07:46
4.1は最適化が気合い入ってるぽいね
835デフォルトの名無しさん:2006/03/02(木) 15:55:15
>>831
gcc4のSRPM作ったので、物好きな方はどうぞ!
ftp://sea-mew.jp/srpms/
/usr/bin/gcc4 や /usr/bin/g++4 とかいう名前で入りますので、gcc(3.x.x)と共存できます。たぶん。

>>832
昔、BorlandのC++で見たけど、クラスのメンバ変数への読み込みや書き込みを、メンバ関数でトラップできる機構じゃなかったっけ?
変数の値域を厳密に決めたりできて便利だった。

836デフォルトの名無しさん:2006/03/02(木) 18:33:09
Javaみたいにgetter/setterを書く慣習を適用するべきなんじゃないの。
837デフォルトの名無しさん:2006/03/02(木) 20:41:38
>>836
却下

データメンバの数に比例する単純作業はお世辞にも見習うべきものじゃない
かつてオブジェクトの数に比例していた単純作業のように選択的な自動化があるべき
838デフォルトの名無しさん:2006/03/02(木) 21:22:13
>>837
単純に自動化なら、フィールドに対するGet/Setを挿入する
スクリプトやツールを使うって手もあるけど。
839デフォルトの名無しさん:2006/03/02(木) 21:28:17
>>838
MFC のメッセージマップみたいにか? やめてくれー
840デフォルトの名無しさん:2006/03/02(木) 22:33:50
Perl でコンバータでも作ったら?
841デフォルトの名無しさん:2006/03/02(木) 22:53:21
>>837
その意見は一般論としては正しいが、
オブジェクト指向風味でもつきつめると所詮は高級アセンブラなC++では
最終的な実装はユーザに見えるレベルに持ってこざるを得ないから、
836みたいにならざるを得ない。
その意見を通すためには、プログラマが生のC++より一段高いレベルを
触るようにしないと。

842デフォルトの名無しさん:2006/03/02(木) 23:02:02
>>841
まあな
ただでさえ「隠れたコード」が気持ち悪〜い「C の拡張」にこれ以上なにかをってのには確かに抵抗はある

そこをガラス張りな雰囲気を壊さずに選択的な自動化をうまく導入して貰いたいわけだが
あのツルピカにそれができそうかどうか、楽観的にも悲観的にも考えられる
843ヽ(´ー`)ノ ◆.ogCuANUcE :2006/03/02(木) 23:10:58
C++ なら getter/setter だなぁ。

>>837 の言うことはもっともだけど IDE やエディタで自動挿入すればいいわけだし、
機能提供のためならともかく、開発者側の都合で独自仕様を使うのは、かなり抵抗がある。
844デフォルトの名無しさん:2006/03/02(木) 23:29:05
独自拡張しろとか言ってる奴ら!禿の努力を無駄にする気か!
845デフォルトの名無しさん:2006/03/02(木) 23:43:57
別に便利なら禿の事なんか気にしないびょ〜ん
もっと出来のいい拡張があるならすぐにでも乗り換えるびょ〜ん
846デフォルトの名無しさん:2006/03/03(金) 12:32:28
Propertyは便利だけど、C++の設計思想には全然合わないな。
templateとmember pointerで頑張れば、作れるかな?

一応C++0xに ICF, implicitly-callable function ってのが提案されてはいるのだが。
847デフォルトの名無しさん:2006/03/03(金) 14:26:31
848デフォルトの名無しさん:2006/03/03(金) 15:37:13
いいね
...Dなんて使う気にはなれんが
849デフォルトの名無しさん:2006/03/03(金) 17:01:12
むしろ__finallyが欲しい
850デフォルトの名無しさん:2006/03/03(金) 22:41:33
>>849
禿からの伝言です。

つ[デストラクタ]
851デフォルトの名無しさん:2006/03/03(金) 22:54:16
あんま禿、禿、言ってると消されるぞ。
852デフォルトの名無しさん:2006/03/03(金) 22:57:53
auto_ptr(>>851)
853デフォルトの名無しさん:2006/03/04(土) 17:57:59
x86でC・C++から呼ばれる関数を自分でアセンブラで書きたいのですが、
レジスタは全て使っていいんでしょうか?
これのレジスタはこの値を保持するのに使われるから勝手に破壊しちゃ
いけないとかありますか?
とりあえずセグメントレジスタはまずそうですが。
OSはWindowsとLinuxを考えていますが、OSによっても変わるんでしょうか。
854デフォルトの名無しさん:2006/03/04(土) 18:02:38
>>853
スタックに積んどきゃいいんじゃね?
855デフォルトの名無しさん:2006/03/04(土) 18:23:37
>>853
Linux Assembly HOWTO
http://www.linux.org/docs/ldp/howto/Assembly-HOWTO/index.html

gccのinfoもね。
856デフォルトの名無しさん:2006/03/05(日) 12:33:04
今度こそ、GCC 4.1正式リリース
http://slashdot.jp/article.pl?sid=06/03/05/0253210&from=rss
857デフォルトの名無しさん:2006/03/05(日) 16:51:22
以前のバージョンとの性能比較が見てみたい。
858デフォルトの名無しさん:2006/03/05(日) 17:42:37
どのようなものをコンパイルしてどのようにテストすればいいか教えてください。
例えば、でいいので。どんなものがテストによく使われますか?
859デフォルトの名無しさん:2006/03/05(日) 18:02:56
860デフォルトの名無しさん:2006/03/06(月) 01:20:49
ubuntuのカーネルgcc4.1でコンパイルしようにもエラーが
もっさもっさわっさわっさもじゃもじゃ沸いて出てくるよw

うーん、簡単なプログラムでしか試してないが最適化
いいんだがオブジェクトでけぇようなきがしてならない
861デフォルトの名無しさん:2006/03/06(月) 22:02:08
>>858
ちげーよ
ある仮定を1つ言ってないだけさ
862デフォルトの名無しさん:2006/03/06(月) 22:09:56
べっちょ偉そうな教えてクン再臨のようだな >よほど不服だったらしいぜw
863さくら:2006/03/07(火) 00:58:17
メル友募集中だぉ
[email protected]
864デフォルトの名無しさん:2006/03/07(火) 20:48:15
ある仮定ってなに?
865デフォルトの名無しさん:2006/03/08(水) 08:56:08
バカの一つ覚えだから気にするな
866デフォルトの名無しさん:2006/03/09(木) 10:47:19
gcc/g++ で、ヘッダにて inline で定義されている関数を、
inline ではなく関数呼び出し「させる」ように強制する
ことってできますか?

でもそうすると、当該 inline 関数を含むヘッダファイルを
インクルードしているすべてのオブジェクトで
重複してしまうから、リンカが泣く?
867デフォルトの名無しさん:2006/03/09(木) 11:56:21
-finline-limit=0
とか?
868デフォルトの名無しさん:2006/03/09(木) 11:58:35
>>866
後半はNO
869デフォルトの名無しさん:2006/03/09(木) 12:48:05
>>866
-fnoinline
870デフォルトの名無しさん:2006/03/09(木) 13:07:33
ヘッダーファイルで
#define inline static
として、コンパイルオプションで
-fno-inline
871デフォルトの名無しさん:2006/03/09(木) 21:34:22
-Dinline
でよくね?
872デフォルトの名無しさん:2006/03/09(木) 21:59:11
リンクでコケね?
873デフォルトの名無しさん:2006/03/09(木) 23:03:28
リンクでこけないためにも>>870じゃね?
874866:2006/03/09(木) 23:12:20
みなさん、どうもありがとうございます。
875デフォルトの名無しさん:2006/03/10(金) 03:37:28
static inlineと宣言されてたら#define inline staticだと
static staticにならね?
876デフォルトの名無しさん:2006/03/10(金) 09:11:13
なるねえ
あーゆー邪道なやり方じゃなくちゃんとした正攻法があるのにどうかしてるよ
877デフォルトの名無しさん:2006/03/10(金) 10:12:14
お前らにちょっとお伺いします。
g++ に食わせるソースコードの文字コード
(コメント、および文字列リテラル)って、なんでしょうか?

今までは ASCII オンリーで書いてきたんですが、
人からもらったソースに大量の日本語コメントと
大量の日本語文字列リテラルが含まれています。
Windows で動いていたソフトウェアのコードらしくシフトJISです。
シフトJISのまま g++ に食べさせてみましたら、次の箇所で
コンパイルエラーが発生しました。

  【ソースコード】
  ///仮想関数なので子クラスで置き換え可能
  virtual double foo(const Phase phase) {

  【エラー】error: `phase' was not declared in this scope

原因が分からなかったんでコメントの後に改行を
入れてみましたらコンパイルが通りました。

  【ソースコード】
  ///仮想関数なので子クラスで置き換え可能
                     ←改行してみた
  virtual double foo(const Phase phase) {

  【エラー】なし

「能」という文字がやばいのか。全部コメントを英語に直すのは
面倒だし、コメントを削ってしまうのもいやなので、
とりあえず nkf に通そうと思っているんですが、
変換後の文字コードは何にすべきでしょうか?
878デフォルトの名無しさん:2006/03/10(金) 10:18:46
localeをSJISにして食わせれば受け付けないか?
879デフォルトの名無しさん:2006/03/10(金) 10:21:40
>>878 あり、そうだったんですか。
横着して、というかさっきソース渡されて、
その場にUNIX機がなかったんで、
cygwin の g++ で試してみたら上記のエラーが。
cygwin でのロケールの扱いなんてさっぱり知らないんで、
まじめにUNIX機でロケールいじりつつ試してみます。
880879:2006/03/10(金) 10:33:04
Shift JIS 能 = 0x945c

どうみても 0x5c = '\' です。
本当にありがとうございました。
881デフォルトの名無しさん:2006/03/10(金) 10:57:22
痛いソースが回ってきたわけか・・・ ご愁傷様
882デフォルトの名無しさん:2006/03/10(金) 11:06:48
昔は日本語のみの独自拡張mbchar.[ch]があったんですが、
今はiconvを使うようになっているので、

-finput-charset=CHARSET してください。

-fexec-charset=CHARSET
-fwide-exec-charset=CHARSET

もあります。(ただしiconvなしでcompileされると無効になっています)

今時Shift_JISだからどうとか言っている人の方が痛い。
883デフォルトの名無しさん:2006/03/10(金) 11:19:45
charset が何であろうと根底に流れる痛さは変わらない
884デフォルトの名無しさん:2006/03/10(金) 11:36:16
>>879
つ[sed -e 's-\(//.*\)$-\1.-']
885879:2006/03/10(金) 12:46:31
>>882 THX
駄菓子可視、-finput-charset=cp932 すると
Boost で使えないヘッダ続出。
Boost はコメントに非ASCII使いまくり orz
886879:2006/03/10(金) 12:51:14
GCC + BoostでSJISを使うと不具合?
http://takagi.in/modules/wordpress/index.php?p=28

同じ症状発見。もう、面倒なのでいっそのこと全部
UTF-8 にコンバートすることにしました。
887デフォルトの名無しさん:2006/03/10(金) 19:48:55
ファイル単位でなく翻訳ごとにしか文字コードを指定できないGCCも
悪いんだけどね。
888デフォルトの名無しさん:2006/03/10(金) 19:57:54
そういう物のソース中にlatin書いてる奴の責任は?
889879:2006/03/10(金) 20:18:06
彼らにとってはヨーロッパがすべてだから
890デフォルトの名無しさん:2006/03/10(金) 20:19:34
LGPLってGNUの理念に反しているように思えるので
ライブラリも含めてすべてGPLにすべきだと思うんですがいかがでしょうか?
891デフォルトの名無しさん:2006/03/10(金) 21:22:03
GNUの理念を信奉するならそうすればいいんでは。
別にGNUマンセーでなく、LGPLの条件がまあまあ具合がいいやという
感じで選んでいる人も沢山いるでしょうよ。
892デフォルトの名無しさん:2006/03/10(金) 21:30:37
>>890
そんなことしたらGPLが自滅しちゃうじゃん。
893デフォルトの名無しさん:2006/03/10(金) 21:59:16
GPL議論スレへどうぞ。
894デフォルトの名無しさん:2006/03/10(金) 22:23:04
自治スレへどうぞ。
895デフォルトの名無しさん:2006/03/11(土) 10:14:54
GPLってグラップラーバキの略だよな?
896デフォルトの名無しさん:2006/03/11(土) 18:33:50
GPLはグレートパートナーリナクスの略だよ。
LGPLはリトルグレートパートナーリナクス。
897デフォルトの名無しさん:2006/03/12(日) 07:51:20
GPL は グレート パクリ ライオンキングの略。
898デフォルトの名無しさん:2006/03/13(月) 00:43:24
Gcc Cannot Compile
899デフォルトの名無しさん:2006/03/13(月) 01:12:33
GCC=ぐっしっし
900デフォルトの名無しさん:2006/03/13(月) 08:46:45
4.0.3が出てた
901デフォルトの名無しさん:2006/03/13(月) 13:08:00
3.4.6も出てたよ
902デフォルトの名無しさん:2006/03/13(月) 14:00:41
どっちかひとつにしなさい!
903デフォルトの名無しさん:2006/03/13(月) 14:19:21
2.95と3系が並存してるように、3系と4系が並存していくのかな。
めんどくさいね。
904デフォルトの名無しさん:2006/03/13(月) 14:26:17
2はもう終わりだと思う
905デフォルトの名無しさん:2006/03/13(月) 14:29:14
linuxのkernelも2.95捨てたからね
906デフォルトの名無しさん:2006/03/14(火) 06:33:39
カーネルのビルドの時だけ 2.7.2.3 使ってた昔なつかし
907デフォルトの名無しさん:2006/03/14(火) 13:08:59
ver.4以降って新しいtemplate構文に対応してますか?
908デフォルトの名無しさん:2006/03/14(火) 13:31:04
>>907
新しいtemplate構文?なにそれ?
909デフォルトの名無しさん:2006/03/14(火) 19:20:15
>>908
#include <stdio.h>
class Test
{
public:
template < int _Size >void func( void ) { printf( "default %d\n", _Size ); }
template < > void func < 4 > ( void ) { printf( "%d\n", 4 ); }
};

main( void )
{
Test t;
t.func< 6 >( );
t.func< 4 >( );
}

こんな感じの構文です
910ヽ(´ー`)ノ ◆.ogCuANUcE :2006/03/14(火) 19:35:53
>>909
部分特殊化ね。4.0 どころか 3.3 でも使えるけど。
911ヽ(´ー`)ノ ◆.ogCuANUcE :2006/03/14(火) 19:37:28
間違えた。explicit specialization だから、明示的な特殊化だった。
912デフォルトの名無しさん:2006/03/14(火) 19:53:38
>>909
#include <stdio.h>
class Test
{
public:
template < int _Size >void func( void );
};

template < int _Size >void Test::func( void ) { printf( "default %d\n", _Size ); }
template < > void Test::func < 4 > ( void ) { printf( "%d\n", 4 ); }

int main( void )
{
Test t;
t.func< 6 >( );
t.func< 4 >( );

return 0;
}
913デフォルトの名無しさん:2006/03/14(火) 21:22:05
直すんだったら、ついでにヘッダも iostream か cstdio にしてあげなよ
914デフォルトの名無しさん:2006/03/14(火) 22:03:10
アッと驚く糞レスだな
915デフォルトの名無しさん:2006/03/14(火) 22:21:18
>>912
ありがとうございます

>>908の方法でも可能なコンパイラがあったもので
916デフォルトの名無しさん:2006/03/14(火) 23:18:42
こういう文法です。

translation-unit
 declaration-seq
  declaration+
   block-declaration
   function-definition
   template-declaration
   explicit-instantiation
   explicit-specialization ←これ
   linkage-specification
   namespace-definition

そしてexplicit-specializationはここにしか出てきません。
そのコンパイラは勇み足。
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
918デフォルトの名無しさん:2006/03/18(土) 20:47:32
>>917
マルチ + スレ違い乙
919デフォルトの名無しさん:2006/03/19(日) 08:52:45
>>918
ちげーよ
ある仮定を1つ言ってないだけさ
920デフォルトの名無しさん:2006/03/19(日) 11:45:17
>>917
gccで作れ。
921デフォルトの名無しさん:2006/03/22(水) 13:55:48
Linux (Fedora Core 4) で gcc 4.0.2 を使っているが、なんで getpgid() の
プロトタイプ宣言がないんだ? __getpgid() ならあるんだが。(ヘッダの中での
#define忘れ?)。しかも man では unistd.h だけの include だけでよさそうに
書いてあるが実際には pid_t を使うので sys/types.h も include する必要が
ある。
922921:2006/03/22(水) 13:59:47
すまん。謎は解けないけど一応自己解決。man の下の方よく読んだら
_XOPEN_SOURCE と _XOPEN_SOURCE_EXTENDED を両方 define すれば
いいと書いてあった。(なんでまたこんなことを…)
923デフォルトの名無しさん:2006/03/22(水) 14:22:56
過去の遺物。
どうでもいいことかもしれんがgccは関係ないぞ。
924デフォルトの名無しさん:2006/03/23(木) 19:52:35
gcc で DLL の遅延ロードについてお尋ねしたいのですが、
VC では delayimp.lib と /DELAYLOAD が利用できますが、
gcc にも同様のオプションはあるのでしょううか。
環境は MinGW + gcc 3.4.2 です。
925デフォルトの名無しさん:2006/03/24(金) 00:26:11
>>924
つ [LoadLibrary]
つ [GetProcAddress]
926デフォルトの名無しさん:2006/04/08(土) 20:46:47
基礎的なところでつまってしまいました。

c言語の範囲内でとあるプログラムhoge.cを書きました。ただし、ライブラリ(libhoge.a)にリンクしています。
gcc hoge.c -lhoge
みたいな感じで問題なくコンパイルできました。

ところが、C++で書き換えようとして、中身を変えず、hoge,cをhoge,cppとリネームして、
g++ hoge.cpp -lhoge
としたとたん、コンパイルは出来ますがリンカエラーがでました。
libhoge.aに入っている関数がリンク出来ないといわれてしまいます。

原因は何なのでしょうか?どうしたらいいのでしょうか。何も変わってないはずなのに・・・
927デフォルトの名無しさん:2006/04/08(土) 20:52:55
>>926
つ結合指定
928デフォルトの名無しさん:2006/04/08(土) 20:56:36
単に名前の変換が C と C++ で違うからじゃないのかな。
libhoge.a も g++ でリビルドすればリンクできる。
929デフォルトの名無しさん:2006/04/08(土) 20:56:58
>>926
C++では同じ名前でも引き数が違うだけの関数が存在し得る。
このため、実際のコードモジュールでは型を加味した名前で関数を参照することになる。
処がlibhoge.aは今まで通りCの名前で作られているのでリンクできないことになる。
こんなときは、
(hoge.hにlibhoge.a内のエントリ関数の宣言があると仮定して)
extern "C" {
#include "hoge.h"
}
とすればいい。
930デフォルトの名無しさん:2006/04/08(土) 21:00:50
gcc でビルドした libhoge.a と
g++ でビルドした libhoge.a を
nm libhoge.a して見比べればなんで怒られるか分かると思う
931デフォルトの名無しさん:2006/04/08(土) 21:01:40
>>927-930

ありがとうございました。名前の変換がCとC++で違うということがあること事態に気づかなかったですよ。3時間も無駄にしてしまった・・・

結局、
extern "C" {
#include "hoge.h"
}
の方法で解決しました。
932デフォルトの名無しさん:2006/04/08(土) 23:25:43
GCCを使うにはCygwinというのをいれないといけないのですか?

私としては、コンパイラのみほしくて、できればGCCで
時にDOS用EXEを作ったり
時にSHというCPU用のバイナリを作ったりしたいのです。

現状はBCC5.5やSHCというコンパイラを使ってますが、GCCのみでできますか?
933デフォルトの名無しさん:2006/04/09(日) 00:59:19
934デフォルトの名無しさん:2006/04/09(日) 02:18:49
>>933
それは違うと思うが

>>932
Windowsでやるならやっぱりcygwinがあったほうが良いかと
んで、crosstoolを使えばSH用のgccは簡単に作れる
今のgccがMS-DOS用のバイナリが吐けるのかは知らん
935デフォルトの名無しさん:2006/04/09(日) 04:07:20
gccだと、雑誌やwebのサンプルからしてLinux系の環境前提に
解説することが多いから、特に理由がなければCygwinごと
導入したほうが、いろいろ幸せなことが多いとおもわれ。

DOSのバイナリをgccで作れるって話は漏れも聞いたことない。
libbdfがOMFのサポートするとかしないとかでもめてた記憶があるから
現状は無理なんじゃないかなー。

SH用のgccはルネサスあたりが出してたりしないのかな? よく知らんけど。
936デフォルトの名無しさん:2006/04/09(日) 04:54:34
まあBCC5.5もDOS用のEXEは作れないんだけどな。
たぶん>>932がわかってないだけだろうけど。
937デフォルトの名無しさん:2006/04/09(日) 06:30:35
cygwin + mingwn + gcc 相談室 Part2
http://pc8.2ch.net/test/read.cgi/tech/1126103347/
938デフォルトの名無しさん:2006/04/09(日) 08:36:08
Cygwin導入の際にデフォルトでインストールしてる?それともフルインストール?
フルだと1GB超えてるんだよね・・・USBに入れるのがちとつらい
939デフォルトの名無しさん:2006/04/09(日) 08:58:04
必要な物だけチョイスして入れるという発想はないの?
俺はとりあえずデフォルトでインストール。
その後必ず追加するものは
X, openssh, gcc, boost, vi
あとは好みで。
940デフォルトの名無しさん:2006/04/09(日) 09:51:33
ttp://www.skyfree.org/jpn/unixuser/
COMファイルは一応作れるっぽい。
EXEはどうだろう。
941デフォルトの名無しさん:2006/04/09(日) 10:13:21
dosエスクテンダ前提になるけど、djgppは今でもアップデートされているらしい。
942デフォルトの名無しさん:2006/04/09(日) 10:40:33
GCCのC++静的ライブラリの話です。
ライブラリのインターフェースはABIで規定されているので、
バージョンが異なるコンパイラで作成された静的ライブラリを
リンクすることもできると思います。
(ただし、ABI自体が仕様変更された場合は除く。3.2->3.4移行時が該当?)
できるはずですが・・・原因不明でうまくリンクできなかった or
リンク後の動作がおかしくなった経験ってありますか?
参考までに聞かせてください。
943デフォルトの名無しさん:2006/04/09(日) 10:53:22
どううまく行かなかったか書け
944デフォルトの名無しさん:2006/04/09(日) 11:07:24
>>939
それにあと、more, fetchmail, rsync, doxygen, cvs辺りお勧め。
#つーか、事実上自分が入れているのを書いただけだな。
945デフォルトの名無しさん:2006/04/09(日) 11:07:27
>>943
これからはじめるところです。
自分でライブラリをユーザーに配布するのですが、それに
先立って、注意点を調べたかったのです。
946デフォルトの名無しさん:2006/04/09(日) 11:10:00
>>941 すごいよな、あの熱意。

>>944 まぁ漏れはメインで使うと言うよりは
Visual Studio から make 呼び出して
コンパイルしてるだけだからなぁ。
VC++ べったりだとポータビリティのない
コード書いちゃうことが多いから、
とりあえず g++ -Wall してみてる。
947デフォルトの名無しさん:2006/04/09(日) 11:26:47
そういう目的で使うなら GCC より Borland のが「うるささ」で勝っているな
俺も結局、OR 条件を意図して持ってるコンパイラ全部使うけど
948デフォルトの名無しさん:2006/04/09(日) 11:28:06
>>942
> できるはずですが・・・原因不明でうまくリンクできなかった or
>>945
> これからはじめるところです。

(゚Д゚)ハァ?
949デフォルトの名無しさん:2006/04/09(日) 11:40:02
>>947 そうか、 bcc のほうが「うるさい」か。
bcc は昔つかってたんだけど、テンプレートの挙動で
不審な点があったので(当時の俺のテンプレートに対する
理解不足から来た勘違いかもしれんが)、使わなくなっちゃった。

あと、俺にとっての最低限のポータビリティは
Linux でコンパイルできるってことなので、
g++ でいいや、って感じで使ってる。

まぁ boost が使えない環境ってのは組み込みでもない限り
考えづらいので、boost にはべったり依存しちゃってるけど。
950デフォルトの名無しさん:2006/04/09(日) 12:03:00
>>948
× リンクできなかった orz
○ リンクできなかった ot
951デフォルトの名無しさん:2006/04/09(日) 16:14:47
そういや、BCCはタイプリストすら作れなかったな。勿論他の処理系ではコンパイル可能なコードで。
952デフォルトの名無しさん:2006/04/10(月) 05:42:08
-lpthreadをつけてコンパイルされているかどうかで、コンパイルするコードをifdefか何かで切り替えたいのですが
-lpthreadをつけてコンパイルされているかどうかを判別するにはどうしたらよいのでしょうか?
953デフォルトの名無しさん:2006/04/10(月) 05:52:38
リンカに渡すオプションをソース上で判定できるコンパイラなんて無いだろ
954デフォルトの名無しさん:2006/04/10(月) 07:00:17
>>952
-v -pthreadしてcc1の引数で何が#defineされているか調べてみろ。
955デフォルトの名無しさん:2006/04/10(月) 07:16:28
>>952
ソースファイルに

#ifdef HOGE
 (オプションに-DHOGEがあるときにプリプロセスさせる処理)
#endif /* ifdef HOGE */

#ifndef HOGE
 (オプションに-DHOGEがないときにプリプロセスさせる処理)
#endif /* ifndef HOGE */

とか書いてMakefileで

gcc ソースファイル -DHOGE -lpthread
gcc ソースファイル

とかで分けるのはダメでしょうか。
956デフォルトの名無しさん:2006/04/13(木) 10:27:40
specに-mpthreadとかをねじ込む
957デフォルトの名無しさん:2006/04/13(木) 10:40:10
そういや spec っていじったことないなぁ。
spec いじると、エラーメッセージのフォーマット変えることってできます?
958デフォルトの名無しさん:2006/04/13(木) 19:16:59
>>957
specs? のことなら、できない。そもそもspecsは
optionの暗黙的ルールの追加や、排他チェック等を行ってるだけ。
959デフォルトの名無しさん:2006/04/13(木) 23:56:00
specsの書式ってものすごい奇抜に見えるけど
誰が見ても構文がわかるよね、ドキュメント無しでいける
あれは不思議だ、可読性とはなんなのかわからなくなる
960デフォルトの名無しさん:2006/04/14(金) 03:16:48
>>958 あ〜そう、specs のこと。
エラーメッセージとかまでいじれるようなものじゃないのか。
あきらめて sed でフィルタ書くわ。
961デフォルトの名無しさん:2006/04/16(日) 00:38:30
http://www.hangame.co.jp/gamenc/flash_game.asp?gameid=fstlovest
ゲームはZOOKEEPERのパクリ

アレンジは悪くないが、声優が全然ダメ
962デフォルトの名無しさん:2006/04/18(火) 17:59:33
963デフォルトの名無しさん:2006/04/18(火) 20:07:31
964デフォルトの名無しさん:2006/05/05(金) 08:38:07
そいうえば、あの凶悪な型チェックを搭載したGCC4はもうバージョン上がったのか?
965デフォルトの名無しさん:2006/05/05(金) 14:45:23
966デフォルトの名無しさん:2006/05/09(火) 14:49:03
4.1.1マダー?
967デフォルトの名無しさん:2006/05/09(火) 15:04:42
968デフォルトの名無しさん:2006/05/16(火) 11:21:04
ここ、梅は要らないの?

次スレ GCCについて part7
http://pc8.2ch.net/test/read.cgi/tech/1145357824/
969デフォルトの名無しさん:2006/05/16(火) 12:03:51
埋めなくても落ちるからほっとけ
970デフォルトの名無しさん:2006/05/16(火) 13:04:29
埋めたら見られなくなる人もいるし放置でいいんじゃねーの
971デフォルトの名無しさん:2006/05/16(火) 14:34:58

埋めずに落ちると過去ログに残らない
972デフォルトの名無しさん:2006/05/16(火) 15:22:26
         _.,., --''." ̄゛゛゛- 、
       , -'´           ゙ー- 、
   ,,//// /,//        ゙ヽ
  ,イ ///// /ソソ// ィ/ ゙|,,,,..,、  ノ゙、
 イノ从/,/ / イ//リ// //゛゛゛'ヾ.,lii トヽy'从゙、
 !ハ从! l! i! i! il i li il! / リ     l l 从ヾil lk i
  iハi l! il! lilハl>k从 イ, _,,..ィチ 从i li il! ll!リ
     ゙ミ il!从(( ::: )ハl <( ::: ) Yイ l / i! il リ
    ,,,彡爪ハ ミ -'" _____  `"-イノ /リ////リ
  ////从从ミ  [  ̄カ  彡ノノ/イ///
./////////ハ从ヽ、`ー-'_,,彡彳/リ///リ
: ' //イ iハリ´リ   ___゛77' "/////ソリ
  lリ lソリ   _∠派、  / ///ィ"/从
 ハノ リ   ,/  ヽトミ、__lミイ // /ソ< ̄ト,  ┏  __上_  / 、、
      /_____ l,ゝ<゛<イノハノ リ  ゛i l l.   ┃口 | 七 ' 7二  ヽヽ/   | | |     .|\
     /,.==、>" ゝ /" /-- 、   ノ/ l     ノヽ||/ / 、_   ./   。 。 。  ┃ |/
     k"ァ-y".:  /l /ァ==ミヽ / /  l       ̄ ̄                 ┛
     lイ 〔ミ::" ,,ノ |(/⌒ヾ、ミV" ト-"
     |  ヾミ彡"//    ! /  !
     i   Y゛"-.y"   /i/ i_/
     !   ト-t-y"   /彡"ノ/
      l   .| l./   / ヽヾ、
      |   l l/   イ ゙', ',  ',,、
     !   ! レ'   / i ', ', ',',
     l  l"/   /、  ! ', ', .',',
     l  iノ   イ ゙i   ! ', ',  ',',
     / ./     ! l   i  ', ',  ',',
    i  i      |、 l  !  ',. ',  ',',  
    ヽ. キ     '丿!  i  ',. ',  ',',  
    | l゙ヘ、__>-t"  '!  i   ',. ',  ',',
973デフォルトの名無しさん:2006/05/16(火) 15:53:42
とりあえず980までいっとくか
974デフォルトの名無しさん:2006/05/16(火) 23:46:53
ksk
975デフォルトの名無しさん:2006/05/17(水) 03:12:05
>>971
どこからそんなデマを仕入れてきたんだい?
976デフォルトの名無しさん:2006/05/17(水) 08:39:06
>>971 マジだったら泣く。
977デフォルトの名無しさん:2006/05/17(水) 09:17:42
でもこの板、過去ログになるのが遅いんだよな…
978デフォルトの名無しさん:2006/05/17(水) 09:24:46
●買うしかないか。
しかし●とモリタポってなんで統合されないのかね。
公式 p2.2ch.net のためにモリタポ買って、
DAT落ちスレのために●買って、なんてやってられん。
979デフォルトの名無しさん:2006/05/17(水) 10:49:07
980デフォルトの名無しさん:2006/05/17(水) 17:49:53
-Wbug
981デフォルトの名無しさん:2006/05/17(水) 23:03:46
-Wdeathmarch
982デフォルトの名無しさん:2006/05/17(水) 23:09:20
>>981
そのオプションつけたら、嵌まっているプロジェクトがうまく逝きました。
本当にありがとう! > GCC
983デフォルトの名無しさん:2006/05/17(水) 23:15:51
>>980
そのオプションつけたら、見つけられないBugをうまく探せました。
本当にありがとう! > GCC
984デフォルトの名無しさん:2006/05/17(水) 23:49:14
-W2ch.net
985デフォルトの名無しさん:2006/05/17(水) 23:56:51
>>984
そのオプションつけて仕事してたら、会社を首になりました。
本当にありがとう! > GCC
986デフォルトの名無しさん:2006/05/18(木) 03:28:37
-Worz
987デフォルトの名無しさん:2006/05/18(木) 12:21:26
>>986
そのオプションつけて仕事してたら、後輩がバグを量産してくれました。
本当にありがとう! > GCC
988デフォルトの名無しさん:2006/05/18(木) 12:59:05
-Wktk
989デフォルトの名無しさん:2006/05/18(木) 22:07:19
>>988
そのオプションつけて仕事してたら、コンパイルが終わりません。
本当にありがとう! > GCC
990デフォルトの名無しさん:2006/05/18(木) 22:14:46
-ωおいなりさんだ
991デフォルトの名無しさん:2006/05/18(木) 22:26:45
うめ
992デフォルトの名無しさん:2006/05/18(木) 22:37:27
うめさせるわけにはゆかぬ!
993デフォルトの名無しさん:2006/05/18(木) 22:41:38
なんだと!!
994デフォルトの名無しさん:2006/05/18(木) 23:10:59
おまえら馴れ合ってんじゃねーよ
995デフォルトの名無しさん:2006/05/18(木) 23:30:38
996デフォルトの名無しさん:2006/05/18(木) 23:45:40
うめ
997デフォルトの名無しさん:2006/05/18(木) 23:56:57
997
998デフォルトの名無しさん:2006/05/18(木) 23:57:10
たけ
999デフォルトの名無しさん:2006/05/18(木) 23:58:47
まつ

>>995
1000デフォルトの名無しさん:2006/05/18(木) 23:58:58
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。