GCCについて part6
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2005/07/12(火) 14:38:43GNU本家の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
0002デフォルトの名無しさん
2005/07/12(火) 14:47:470003デフォルトの名無しさん
2005/07/12(火) 15:16:13GCCについて 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/
0004デフォルトの名無しさん
2005/07/12(火) 15:18:16|_|. __ .__| |__ .| |
| ̄| | ̄!'´. `ヽ |__ __| | |
| | |. .r"⌒ヽ .| | |. ___ | |
| | | | | | | | ,r''" .`ヽ | |
| | | | | | | !__i'. ,r"⌒ヽ i| |
|_| |_| |_| !、___ _ ̄ ̄ __.,|
! !、 ̄ ̄,―,
ゝ、_  ̄ _ノ
 ̄ ̄
∩∩ High performance and low price ∩
(7ヌ) (/ /
/ / ∧_∧ ||
/ / ∧_∧ ∧_∧ _(´∀` ) ∧_∧ ||
\ \( ´∀`)―--( ´∀` ) ̄ ⌒ヽ(´∀` ) //
\ /⌒ ⌒ ̄ヽ、Itanium/~⌒ ⌒ /
| |ー、 / ̄| //`i Xeon /
|Celeron| |Pentium/ (ミ ミ) | |
| | | | / \ | |
| | ) / /\ \| ヽ
/ ノ | / ヽ ヽ、_/) (\ ) ゝ |
| | | / /| / レ \`ー ' | | /
0005デフォルトの名無しさん
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\
0006デフォルトの名無しさん
2005/07/12(火) 19:52:410007デフォルトの名無しさん
2005/07/12(火) 19:54:53淫厨ですか?
0008デフォルトの名無しさん
2005/07/13(水) 12:48:060009デフォルトの名無しさん
2005/07/13(水) 13:09:470010デフォルトの名無しさん
2005/07/14(木) 16:58:290011デフォルトの名無しさん
2005/07/15(金) 02:12:43>史上最強かもしれないツール、GCC(GNU Compiler Collection)について語るスレ。
あ、前スレに俺が書いたテンプレのメッセージ変えやがった。
人類史上最強のツール、それが GCC。
0012デフォルトの名無しさん
2005/07/15(金) 02:14:48おまいら、もちつけよ。
ってことで燃料投下
ttp://www.nminoru.jp/~nminoru/diary/2005/07.html#2005-07-14
0013デフォルトの名無しさん
2005/07/15(金) 02:24:050014デフォルトの名無しさん
2005/07/15(金) 07:48:15>ttp://www.nminoru.jp/~nminoru/diary/2005/07.html#2005-07-14
Intelも必死だな
0015デフォルトの名無しさん
2005/07/16(土) 17:15:500016デフォルトの名無しさん
2005/07/16(土) 22:19:02次はAlpha
0017デフォルトの名無しさん
2005/07/16(土) 23:02:31>>12のサイトではSPARCは最悪の命令セットなんて言われとりますな。
0018デフォルトの名無しさん
2005/07/16(土) 23:02:54other architecture's patch are welcome.
0019デフォルトの名無しさん
2005/07/16(土) 23:15:310020デフォルトの名無しさん
2005/07/17(日) 00:11:45自作アセンブラまでしか進めません。
GCCの移植を行う前にシンプルなCコンパイラが必要になってくるんでしょうか。
どういう道のりになるかわからないんだけど何かアドバイスもらえたら幸いです。
0021デフォルトの名無しさん
2005/07/17(日) 00:32:291. 既存のプラットフォームで動く、キミの仮想マシンをターゲットに
したgccを作る
2. 既存のプラットフォームで、1を使って仮想マシンで動く仮想マシン
をターゲットにしたgccを作る
0022デフォルトの名無しさん
2005/07/17(日) 01:19:20しかし、うちの Athlon64 3000+だと、3.4.3のほうが速いバイナリをはくんだけど、4.0の最適化を実感できた人、います?
0023デフォルトの名無しさん
2005/07/17(日) 01:41:330024デフォルトの名無しさん
2005/07/17(日) 04:04:27alpha, 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
0025デフォルトの名無しさん
2005/07/17(日) 07:29:4616bitはGCC自体が動く環境ではない、とは言っても
クロスコンパイラなら作れそうな気もするけど。
0026デフォルトの名無しさん
2005/07/17(日) 09:30:05SPARCの魅力は、変態メモリアクセスモードにあります。
RMOはSPARCv9からだけど。PSOは前からあるし。
0027デフォルトの名無しさん
2005/07/17(日) 14:17:150028デフォルトの名無しさん
2005/07/17(日) 14:24:41パッチの作成は↓にまかせた。
0029デフォルトの名無しさん
2005/07/17(日) 14:49:33bit数よりも汎用レジスタがどんだけあるかのほうが重要かも。
avrはレジスタたくさんあるみたいだけど、ほとんど専用レジスタ
しかないZ80用のmd書くのはとても辛そうだ。
0030デフォルトの名無しさん
2005/07/17(日) 18:19:34いまどき珍しいcwebで書かれたらしいプログラム(元ソースはなし)のコンパイルが
うまくいかないので調べているんだが、これのせいでどこでエラーになっているのか
さっぱりわからん。
0031デフォルトの名無しさん
2005/07/17(日) 18:25:510032デフォルトの名無しさん
2005/07/17(日) 20:45:09あのさ、 man も info も --help も source も見ないようでは GNU な世界で生きていけんぞ。
-P Do not generate #line directives
003332
2005/07/17(日) 20:51:14げ、よく読んだらソースがねーのかよw。てゆーか、その文章意味わからんぞ。
プリプロセスしてるんでなくて、Cコンパイルしてるって事か?
なら >>31 だな。
0034デフォルトの名無しさん
2005/07/17(日) 20:51:25それじゃあ、質問の答えになってないべ
003630
2005/07/17(日) 22:43:45ああスマソ。cwebからプリコンパイルしたらしいCソースがあるけど、このコンパイルが
通らないということです。
#lineディレクティブを解釈して__LINE__をいじるのはプリプロセッサじゃなくて
コンパイラの方なんですね。考えてみればそうか。
どちらにしてもgccにはそういうスイッチはないということで。
yaccで生成されたらしいソースが配布されているのはよく見るけど、それで
同じように困ったことがある人はいないんでしょうかねぇ。
0037デフォルトの名無しさん
2005/07/18(月) 02:57:13webなんて知らない若造には意味がわからんわな。
0038デフォルトの名無しさん
2005/07/18(月) 07:24:54>>31を読んでも意味が分からない人?
0039デフォルトの名無しさん
2005/07/20(水) 00:32:28printf("hello");
puts("hello");
とか書いた時。
0040デフォルトの名無しさん
2005/07/20(水) 01:02:260041デフォルトの名無しさん
2005/07/20(水) 01:40:21ただし "hello" と "llo" みたいな部分一致はまとめてくれないようだ→xstr使おう
0042デフォルトの名無しさん
2005/07/20(水) 06:21:010043デフォルトの名無しさん
2005/07/20(水) 11:55:12知らんかった。
0044デフォルトの名無しさん
2005/07/20(水) 23:16:530045デフォルトの名無しさん
2005/07/20(水) 23:35:18面倒なことを無責任に増やしまくる方向に走ったからなあ。
0046デフォルトの名無しさん
2005/07/21(木) 00:49:470047デフォルトの名無しさん
2005/07/21(木) 13:32:560048デフォルトの名無しさん
2005/07/22(金) 17:02:440049デフォルトの名無しさん
2005/07/22(金) 17:48:170050デフォルトの名無しさん
2005/07/22(金) 19:57:550051デフォルトの名無しさん
2005/07/22(金) 20:31:390052デフォルトの名無しさん
2005/07/22(金) 21:21:540053デフォルトの名無しさん
2005/07/22(金) 22:02:000054デフォルトの名無しさん
2005/07/23(土) 06:33:270055デフォルトの名無しさん
2005/07/23(土) 15:23:140056デフォルトの名無しさん
2005/07/25(月) 14:02:134.0.0の時は問題ありませんでした。何が問題なのでしょう?
0057デフォルトの名無しさん
2005/07/25(月) 14:09:560058デフォルトの名無しさん
2005/07/25(月) 15:46:56ありがとうございます。4.0.1からなにか変更になったのですか?リリースノートを見てもわからなかったのですが。
0059デフォルトの名無しさん
2005/07/25(月) 15:58:330060デフォルトの名無しさん
2005/07/26(火) 01:06:180061デフォルトの名無しさん
2005/07/27(水) 16:09:30root権限がないので、実行後優先度を上げられません。nohupを使用時に、優先度を0で実行できないものでしょうか?
0062デフォルトの名無しさん
2005/07/27(水) 16:50:07できない
0063デフォルトの名無しさん
2005/07/27(水) 17:32:150064デフォルトの名無しさん
2005/07/27(水) 22:16:59いくらなんでも、gcc と無関係だろ。それ。
0065デフォルトの名無しさん
2005/07/27(水) 22:55:110066デフォルトの名無しさん
2005/07/27(水) 23:04:350067デフォルトの名無しさん
2005/07/29(金) 14:40:53a〜bまでの乱数を作りたいです
0068デフォルトの名無しさん
2005/07/29(金) 17:02:32return random(b - a) + a;
}
0069デフォルトの名無しさん
2005/07/29(金) 17:10:10srand(time(0));
return random(b - a + 1) + a;
}
では?
0070デフォルトの名無しさん
2005/07/29(金) 17:11:26GJ!
0071デフォルトの名無しさん
2005/07/29(金) 17:19:59毎回系列を更新すると、乱数の質が果てしなく悪くなる。
つーか、1秒以内に一回しか呼べない関数かよ。
0072デフォルトの名無しさん
2005/07/30(土) 07:31:560073デフォルトの名無しさん
2005/07/30(土) 21:31:44自演?
0074デフォルトの名無しさん
2005/07/31(日) 18:57:20詳細な解説してるところが見つからない。
本家じゃ--languageオプションつかっても日本語は通らないの?
0075デフォルトの名無しさん
2005/08/01(月) 16:05:04というか *.rc に utf8 で直接書けば日本語使えたような。
0076デフォルトの名無しさん
2005/08/01(月) 18:09:31Windowsインストールしたときの言語指定と同じ。
表示メッセージの切り替えなどに使う。
0077デフォルトの名無しさん
2005/08/03(水) 08:06:450078デフォルトの名無しさん
2005/08/03(水) 15:14:250079デフォルトの名無しさん
2005/08/06(土) 11:13:04typedef 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;
};
関数に引数渡すときに一文がやたら長くなるので
こんなふうにはしたくないんですが・・・
008079
2005/08/06(土) 11:42:14途中で構造体って事を示すm_ってのを[argfoo]の前に追加してたんだけど
ソースコード全てを変更していなかったみたい
そこの部分でエラーになってた
心配してくれたプログラマの皆さんご迷惑をおかけしました。
0081デフォルトの名無しさん
2005/08/06(土) 12:20:070082デフォルトの名無しさん
2005/08/06(土) 15:04:54struct argfoo {
int m_data;
struct argfoo * m_next;
};
にするのが一般的だな。
0083デフォルトの名無しさん
2005/08/06(土) 15:14:23それに、クラスメンバでも _ を最後につけるタイプの人もそれなりにいる。
0084デフォルトの名無しさん
2005/08/06(土) 16:42:55m_ の使い方の話をしてるんであって、メンバの変数名の話をしてるんじゃない。
よく文盲って言われない?
008581
2005/08/06(土) 17:35:41同類だと思うが。
自分の想定外の話の仕方が嫌ならブログでも書いとれ。
0086デフォルトの名無しさん
2005/08/06(土) 19:34:500087デフォルトの名無しさん
2005/08/06(土) 21:05:460088デフォルトの名無しさん
2005/08/06(土) 21:14:030089デフォルトの名無しさん
2005/08/06(土) 21:16:54お前は俺か。
0090デフォルトの名無しさん
2005/08/06(土) 21:19:51お前は俺だ。
0091デフォルトの名無しさん
2005/08/06(土) 21:46:270092デフォルトの名無しさん
2005/08/06(土) 22:08:590093デフォルトの名無しさん
2005/08/06(土) 23:19:11俺もお前だ
0094デフォルトの名無しさん
2005/08/07(日) 00:56:140095デフォルトの名無しさん
2005/08/07(日) 03:31:420096デフォルトの名無しさん
2005/08/07(日) 03:42:44ぶっちゃけそんな塵くらいなんとかなりそうな気がする
0097デフォルトの名無しさん
2005/08/07(日) 10:05:00氷河期を起こして恐竜を絶滅させたってのの再現を狙ったわけだな。
核は関係ないと思うけど。
0098デフォルトの名無しさん
2005/08/07(日) 13:10:11スレ違いな上にその話題もつまらん。
0099デフォルトの名無しさん
2005/08/07(日) 21:16:31その掃除機を制御するプログラムをGCC内の言語で書くならどれがいいですか?
C? C++? ObjectiveC?
0100デフォルトの名無しさん
2005/08/07(日) 21:26:03Javaじゃないか?
掃除機だけにな! ウェーハッハッハ
0101デフォルトの名無しさん
2005/08/07(日) 21:30:360102デフォルトの名無しさん
2005/08/07(日) 21:32:460103デフォルトの名無しさん
2005/08/07(日) 21:37:00意味がわからん。
誰か解説きぼん。
0104デフォルトの名無しさん
2005/08/07(日) 21:38:290105デフォルトの名無しさん
2005/08/07(日) 21:38:480106デフォルトの名無しさん
2005/08/07(日) 22:09:090107デフォルトの名無しさん
2005/08/08(月) 00:04:48GCC=Gundam Cosmo Cleaner
要はガンダム+ヤマト
0108デフォルトの名無しさん
2005/08/08(月) 04:43:15ガンダムが使う掃除機の制御プログラムだろ?
何でもいいんじゃないか。
ガンダムの方の制御なら今のGCCにはない言語がそのころのGCCには入っているに
違いない。
0109デフォルトの名無しさん
2005/08/09(火) 11:12:320110デフォルトの名無しさん
2005/08/09(火) 11:36:19gccだとコンパイルできない
0111デフォルトの名無しさん
2005/08/09(火) 12:17:24制御プログラムはその先の問題だろ。
0112デフォルトの名無しさん
2005/08/09(火) 15:57:220113デフォルトの名無しさん
2005/08/09(火) 16:02:180114デフォルトの名無しさん
2005/08/09(火) 21:25:32GNUが誤解されるからそういう思想は捨ててください。
お願いします。
0115デフォルトの名無しさん
2005/08/09(火) 21:31:120116デフォルトの名無しさん
2005/08/09(火) 22:04:36最近妙につまんない話題多いから、そう思うのもむりはない。
0117デフォルトの名無しさん
2005/08/10(水) 14:58:550118デフォルトの名無しさん
2005/08/10(水) 15:35:53Makefileに書きなさい。
0119デフォルトの名無しさん
2005/08/10(水) 21:23:120120デフォルトの名無しさん
2005/08/11(木) 23:21:38もし決まってるのならそれってどこかに書いてありますか?
0121デフォルトの名無しさん
2005/08/11(木) 23:35:200122デフォルトの名無しさん
2005/08/11(木) 23:38:43他のは検索してみて
0123デフォルトの名無しさん
2005/08/11(木) 23:44:40隊長!!それってメンテナじゃなくて、貢献者のリストだと思います!
0124デフォルトの名無しさん
2005/08/12(金) 00:01:17http://savannah.gnu.org/cgi-bin/viewcvs/gcc/gcc/gcc/config/arm/arm.md
0125デフォルトの名無しさん
2005/08/12(金) 03:28:190126デフォルトの名無しさん
2005/08/12(金) 03:36:07patchを作って呪詛とともにメンテナに送りつける。
0127デフォルトの名無しさん
2005/08/12(金) 04:18:13彼らはきっと脳内コンパイルしかしてないと思いますっっ!!
実機でコンパイルしてないと思いますっっっ!!!
0128デフォルトの名無しさん
2005/08/12(金) 09:27:200129デフォルトの名無しさん
2005/08/12(金) 16:29:33該当アーキテクチャのマシンを買ってビールとともにメンテナに送りつける。
0130デフォルトの名無しさん
2005/08/12(金) 17:22:48でかいプログラムをひとつ用意して、いじめまくるとか。
自力でgcc動かせないようなターゲットだと、でかいコードなんてまず取り扱わないから、
いろいろ出てきて楽しいぞ。
0131デフォルトの名無しさん
2005/08/12(金) 17:32:27あぱっちでいいじゃん
0132デフォルトの名無しさん
2005/08/12(金) 21:16:450133デフォルトの名無しさん
2005/08/12(金) 21:48:22クロスコンパイル環境を構築すればgcc Level 10ぐらいになれる。
0134デフォルトの名無しさん
2005/08/12(金) 21:49:34ガセ。
0135デフォルトの名無しさん
2005/08/12(金) 22:14:20そういや、昔ビールウェアなんてのがあったな
0136デフォルトの名無しさん
2005/08/12(金) 22:19:450137デフォルトの名無しさん
2005/08/12(金) 22:28:170138デフォルトの名無しさん
2005/08/14(日) 10:12:40コンパイルオプションは何を指定したらいい?
0139デフォルトの名無しさん
2005/08/14(日) 12:32:53お前がアホ。
0140デフォルトの名無しさん
2005/08/14(日) 12:34:180141デフォルトの名無しさん
2005/08/14(日) 14:25:17C と違って C++ ではインクルードガードは本来必要ないはずだよ
0142デフォルトの名無しさん
2005/08/14(日) 14:30:36コンパイル時間が長くなるからやだ
0143デフォルトの名無しさん
2005/08/14(日) 14:35:170144デフォルトの名無しさん
2005/08/14(日) 14:43:58俗語なので正式な定義はない
1つの翻訳単位の中で同一のファイルを2回以上引用したときに生じる重複宣言を回避する記述で
典型的な事例では #if 指令もしくは #ifdef 指令が使われる
例を挙げる
// hoge.h
#ifndef hoge_h_INCLUDED
#define hoge_h_INCLUDED
class hoge { };
#endif
0145デフォルトの名無しさん
2005/08/14(日) 14:52:120146デフォルトの名無しさん
2005/08/14(日) 15:39:01じゃあ気にしないで、インクルードガードしなければいいじゃん。必要ないんだろ?
0147デフォルトの名無しさん
2005/08/14(日) 16:02:21たいした問題じゃないよな
0148デフォルトの名無しさん
2005/08/14(日) 18:16:00# 以上、ギブアンドテイクの精神で釣り合うだけの内容の報告でした :-)
0149デフォルトの名無しさん
2005/08/14(日) 18:40:42解決策書いてけよ
0150デフォルトの名無しさん
2005/08/14(日) 19:33:310151デフォルトの名無しさん
2005/08/14(日) 19:53:21おまい、頭いいな!!!
0152デフォルトの名無しさん
2005/08/14(日) 21:43:430153デフォルトの名無しさん
2005/08/15(月) 14:44:18ロマンシングガイルまでたどり着いたのだが
リンク先がなくなってる!
0154デフォルトの名無しさん
2005/08/15(月) 18:33:06>>145
0155デフォルトの名無しさん
2005/08/15(月) 22:57:58リンク先が無いんだよ!
0156デフォルトの名無しさん
2005/08/15(月) 23:03:31変数の初期化がいるのに未設定のまま関数の引数に使ったりしたとき
gcc -Wall でWarning出てたと思ったんだけど、今やったら出なくなってる
なんていうオプションを使うんだっけ?
0157デフォルトの名無しさん
2005/08/15(月) 23:23:40-Wallで警告が出るはず。ただし、-O以上の最適化オプションが必須。
と、gcc-3.4.4のinfoに書いてある。
0158デフォルトの名無しさん
2005/08/15(月) 23:26:36能無しでスマソ。
0159デフォルトの名無しさん
2005/08/15(月) 23:27:29ありがとう! お礼にタメ解除してあげる
0160デフォルトの名無しさん
2005/08/15(月) 23:27:340161デフォルトの名無しさん
2005/08/16(火) 10:07:03質問する場合は、gccのバージョンも書く事。
0162デフォルトの名無しさん
2005/08/16(火) 22:00:110163デフォルトの名無しさん
2005/08/17(水) 21:24:330164デフォルトの名無しさん
2005/08/17(水) 21:33:26gmumake
これで検索してみ
0165デフォルトの名無しさん
2005/08/17(水) 21:46:260166デフォルトの名無しさん
2005/08/18(木) 22:08:490167デフォルトの名無しさん
2005/08/19(金) 11:09:30Σ(゜Д゜;) マジ!
C Magazineって以前は読んでいたがあったが、コンパイラ関連の記事だと
IntelコンパイラやVisial Studioの話ばっかりだったので近頃全然読まなくなった。
0168デフォルトの名無しさん
2005/08/19(金) 13:09:32・tree-ssaとかの話
・ベンチマーク
てなところですか。
買ってまで読むほどの内容じゃないな。
0169167
2005/08/19(金) 19:38:08げっ!もう買っちゃったぞ。
全160ページ中のたった8ページのGCC記事だけの為に。
けど、GCCの内部(しくみ)まで書いてる記事はあまり無いんで、別にいいやと思ってる。
0170デフォルトの名無しさん
2005/08/19(金) 19:44:27そういえば、書籍じゃないからちょっと違うんだけど
この前gccのソースを読んだんだけど
内部の仕組みまでみっちりと書いてあったよ。
あれはひさびさにためになったなぁ
0171デフォルトの名無しさん
2005/08/19(金) 20:19:510172167
2005/08/19(金) 21:49:55GCCの使いかた or オプションの紹介 or クロスコンパイル方法とかなら
雑誌や書籍やウェブサイトにあるけど、
GCCの内部動作を解説してるのは見た事ないような...
オライリーとかから、「詳細GCCインターナル」とか出れば買うかも。(w
0173デフォルトの名無しさん
2005/08/19(金) 22:15:23さわりの書いてある本も昔あったような気がするが。
0174デフォルトの名無しさん
2005/08/19(金) 23:29:32変更点は以下の通り
・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).
0175デフォルトの名無しさん
2005/08/19(金) 23:38:473.0.4?
0176デフォルトの名無しさん
2005/08/19(金) 23:50:223年半ほど前にリリースされてますが。
0177167
2005/08/19(金) 23:57:55これらの事かな?
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.
なんて事を言われてるけど.....
0178デフォルトの名無しさん
2005/08/30(火) 14:40:34GCC4.0だと-O最適化だけでGCC3.4の-O3に匹敵する速度向上が得られるような事が書いてあったが・・・あれホントなのかな。
0179デフォルトの名無しさん
2005/08/30(火) 19:28:16特定条件下に限っては事実でしょ。
全般的にはいまいち感が漂うけど、土台を切り替えた直後でこれだけ速ければ上等だと思うけど。
それよりも strict-aliasing で死屍累々なことが大問題(^^;
0180デフォルトの名無しさん
2005/08/30(火) 21:50:01ダンプでこける。
もちろん、-mtune付けなければ問題ないけど。emacsが対応してないだけだろうな。
0181デフォルトの名無しさん
2005/08/30(火) 22:51:04-mtune ではなくて -march ではどうか?
てゆーかさ、今どきの流行は -mtune でなくて -march でそ。
0182デフォルトの名無しさん
2005/08/30(火) 23:05:09目的違うやん
0183デフォルトの名無しさん
2005/08/30(火) 23:18:49ttp://gcc.gnu.org/onlinedocs/gcc-4.0.1/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options
4.0.1でも発生するのか?
0186デフォルトの名無しさん
2005/08/31(水) 00:25:100187デフォルトの名無しさん
2005/08/31(水) 00:25:120188デフォルトの名無しさん
2005/08/31(水) 01:17:42> どうやら同じ意味みたいだね。-mtune、-march
ちゃうやろ、よく読めや。
0189デフォルトの名無しさん
2005/08/31(水) 01:35:440190デフォルトの名無しさん
2005/08/31(水) 03:06:30gcc 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 *) {
// 無視
}
0191デフォルトの名無しさん
2005/09/02(金) 12:39:050192デフォルトの名無しさん
2005/09/02(金) 13:26:54どっちやねん
0193デフォルトの名無しさん
2005/09/02(金) 16:13:22mtune: スケジューリングに最適化するが、他のCPUでも動作を保証する。
0194デフォルトの名無しさん
2005/09/03(土) 03:00:53それとも皆さん、英語でコメントを打っておられるのでしょうか
0195デフォルトの名無しさん
2005/09/03(土) 04:01:050196デフォルトの名無しさん
2005/09/03(土) 05:02:47コメントは英語に決まっとろうが
世界屈指の難解語でコメント書いた気になってるヴォケは逝ってよし
0197デフォルトの名無しさん
2005/09/03(土) 05:32:42それが金に結びつくのなら、なんだか金を稼げる匂いがするので英語で書いておきます
0198デフォルトの名無しさん
2005/09/03(土) 09:54:22コメント?
フォーマット文字列に漢字を使えないかって言いたいわけ?
0199デフォルトの名無しさん
2005/09/03(土) 10:40:03何が聞きたいのか正しく意図が伝わってこないが、たぶんできる。信じてやってみろ。
0200デフォルトの名無しさん
2005/09/03(土) 11:21:14duron なんかは周波数でコアが違ってて -march も違った気がする。
0201デフォルトの名無しさん
2005/09/03(土) 16:08:21eucなら大丈夫。sjisは\(バックスラッシュ)の問題があるのでやめといたほうが吉。
>>196
何かイヤな事でもあったんだろうか。
0202デフォルトの名無しさん
2005/09/03(土) 16:14:13ぐらいだと思うんだけど、他に何かあるのかな?
0203デフォルトの名無しさん
2005/09/03(土) 16:15:41韓国語でコメント書かれて切れたと想像してみる。
インドだと英語だから無問題。
0204デフォルトの名無しさん
2005/09/03(土) 20:45:290205デフォルトの名無しさん
2005/09/03(土) 21:07:39最近のgccならオプションで文字コードを指定できるので全然問題ない。
eucでソースを書き、オブジェクトファイルに持たせるリテラルデータはsjisなんてこともできる。
0206デフォルトの名無しさん
2005/09/07(水) 01:40:06gcc on x86-64 の C では long = 64bit, int = 32bit だから、
なんかちょっと嵌まっちゃったYO!!
ありがとう stallman!(涙)
0207デフォルトの名無しさん
2005/09/07(水) 02:30:44なんかGCC関連の書籍が出るみたいですよ
実例で学ぶGCCの本格的活用法
岸 哲夫 著 B5判 288ページ 定価2,310円(税込)
2005年9月24日発売予定
ttp://www.cqpub.co.jp/hanbai/books/MIF/MIFZ200511.htm
0208デフォルトの名無しさん
2005/09/07(水) 03:54:04だったら参考書として手元に置いときたいんでホスィ
0209デフォルトの名無しさん
2005/09/07(水) 23:52:10俺はかなりストレスたまってダメだったんだけど
>170さん
コメントみっちりどこにのってたの?
これは返答にかなりの工数が必要ですね、ってんで覚えてたら是非
0210デフォルトの名無しさん
2005/09/08(木) 11:42:25いや、コメントなんて不確かなものではなくて
コードがみっちりと書いてあった
0211デフォルトの名無しさん
2005/09/08(木) 12:02:50flow.c, gcse.c辺りの最適化の部分はコメントが結構多いよ。
けど、コードがすっきりしてないので解読しずらい。
学生の頃かなりコードは読んだけれど、解読が一番疲れたね。
gccより一時期最適化が優れていたコンパイラとか、
8bit時代に隆盛を誇ったコンパイラのソースを見る機会があったけれど、
ずっとすっきりしていたね。(どちらもproprietaryなコンパイラ)
0212デフォルトの名無しさん
2005/09/08(木) 16:31:468bit 時代のコードなんと比べてもなぁ。
まぁ、gcc のコードがあまり綺麗ではないのは事実だけど。
4.x はフルスクラッチだっけ?それなら多少マシになってるんじゃないか。
0213デフォルトの名無しさん
2005/09/08(木) 17:07:19一部の最適化のためにニモニックの方に工夫を施してあったりもした。
お蔭で調べる範囲がプロセスを跨る罠。
0214デフォルトの名無しさん
2005/09/08(木) 17:26:08> 8bit 時代のコードなんと比べてもなぁ。
いや、凶悪な最適化をするので有名なコンパイラで、おもちゃコンパイラじゃないよ。
0215デフォルトの名無しさん
2005/09/08(木) 17:48:390216デフォルトの名無しさん
2005/09/08(木) 19:38:178bit 時代の最適化と 32bit/64bit の最適化、どっちが複雑か考えるまでもない。
比較の対象外。
0217デフォルトの名無しさん
2005/09/08(木) 19:52:41アラインメントなんか気にしなくていいし、パイプライン気にしなくていいからジャンプし放題。
レジスタでもメモリでも速度余り違わないからレジスタ割付なんて考えなくていいし、ペアリングもない。
0218デフォルトの名無しさん
2005/09/08(木) 19:55:550219デフォルトの名無しさん
2005/09/08(木) 20:56:200220デフォルトの名無しさん
2005/09/08(木) 22:02:11void wait(void)
{
volatile char *tmp = p;
while(p != tmp) ;
}
↑
こんなんで volatile を無視しやがった〜とか騒ぎ出すアフォが絡んでるケースが大半を占める
0221デフォルトの名無しさん
2005/09/08(木) 23:45:508bitCPUの典型的な最適化は、自己書き換えだね。
#ROM化が大変なんだけど。
0222デフォルトの名無しさん
2005/09/09(金) 00:15:50命令書き換えなんてどーせアセンブラで書いてるだろ
それとも動作保証のない禁止パターンでも使ってたのか
俺の知る限り 8bit には diagnose の類はなかったぜ
0223デフォルトの名無しさん
2005/09/09(金) 00:17:24だからROM化が大変という話でしょ
RAMの上で動くなら問題ないけどさ
0224デフォルトの名無しさん
2005/09/09(金) 00:23:520225デフォルトの名無しさん
2005/09/09(金) 01:46:01「ペアリング」っていう言葉が出てくるあたり、知識がPentiumで止まってるっぽい。
0226デフォルトの名無しさん
2005/09/09(金) 03:20:520227デフォルトの名無しさん
2005/09/09(金) 04:55:350228デフォルトの名無しさん
2005/09/09(金) 14:10:51ROMからRAMに転送させるのが大変、とか。
その方法探す(マニュアル読む)のが大変、とか。
>>227
実際やってみてその無意味さに気が付くのもまた勉強。
普通なら脳内でやってすぐ気づくだろとか言わない。
最適化というよりは難読化になるけど、
複数バイトの命令の真ん中にジャンプして以降闇の中
なんてコードがあったなあ。
0229デフォルトの名無しさん
2005/09/09(金) 15:21:160230デフォルトの名無しさん
2005/09/09(金) 16:22:26闇の中どころか、3バイト命令の2-3バイト目はオペランドだからそこに2バイト命令を
置いておくのはよくある手法。
0231デフォルトの名無しさん
2005/09/10(土) 01:33:37if (eval) {
...;
}
を
if (eval)
...;
と書くのは何故?最適化とか何か特別な意味があるの?
gnuがらみ嫌がらで外して書いてのかって思う
ブロック書いてくれるだけでだいぶ読みやすくなる。俺が変なの?
0232デフォルトの名無しさん
2005/09/10(土) 04:13:06一行だったら時と場合によるんじゃ。
それともif 〜 else には必ずブロックつけろって言うこと?
0233デフォルトの名無しさん
2005/09/10(土) 04:27:20その辺は宗教でしょ。プロジェクト内で統一されていれば問題ない。
GNU コーディング規約に従っているので、俺は別に構わないと思う。
0234デフォルトの名無しさん
2005/09/10(土) 04:39:21>gnuがらみ(は)嫌がら(せ)で外して書いて(いる)のかって思う
これは嫌がらで外して書いてのか?
0235デフォルトの名無しさん
2005/09/10(土) 04:46:230236デフォルトの名無しさん
2005/09/10(土) 05:54:27if (eval) {
} else { if (eval) {
} }
と書かなきゃ片手落ちだよな。
0237デフォルトの名無しさん
2005/09/10(土) 06:03:040238デフォルトの名無しさん
2005/09/10(土) 06:41:48まったくない
elsifなのかelseifなのかelifなのか
つーか氏ねよそんなこと思うお前
0239デフォルトの名無しさん
2005/09/10(土) 06:52:02そんなのマクロでどうにでもなるじゃないか。
0240231
2005/09/10(土) 09:10:59そうなの?コンパイルすれば一緒になんの?
>234
恐縮です
if ()
..;
else
for ()
if ()
break;
これも入れないでいけちゃの?タフだね
それより寝坊ねまずいね、急いで風邪ひかねーとまずい
0241デフォルトの名無しさん
2005/09/10(土) 09:32:33for (...; ...; ...) {
;
}
って感じで。
逆に言うと、ブロック化しないなら1行野郎で。
for (...; ...; ...) ;
あと、これはいやだ。
if (...) {
...;
...;
} else
...;
もちろん、これもいや。
if (...)
...;
else {
...;
...;
}
最近目にした公開ソフトのコーディングがこれでね……
0242デフォルトの名無しさん
2005/09/10(土) 09:33:21いやとか言う奴は死ね
0243デフォルトの名無しさん
2005/09/10(土) 09:39:23いやだから、修正する前に全部ブロック化しましたが何か。
0244デフォルトの名無しさん
2005/09/10(土) 09:52:400245デフォルトの名無しさん
2005/09/10(土) 10:04:100246デフォルトの名無しさん
2005/09/10(土) 13:11:23どっちでもいいんだけどさ、統一しよう!
独裁的にしちゃってくれてかまわんさ
熱くなっちまった、今手元にあるの非じゃないよ
( .. ? :
( ? : (..))
((.) ? : ))
見てこれ!マジ冗談抜き!!犯人でてこいやこれえ!!
ブロックを書かない派はそれのほうが見やすいって事なんだよね
これも速読できちゃうの?助けてくれない?
0247デフォルトの名無しさん
2005/09/10(土) 13:23:540248デフォルトの名無しさん
2005/09/10(土) 14:47:01一緒になる。無知を晒すなよ…。
何度も言うけど、どれが読みやすいかなんて主観の問題。人によって違う。
だからプロジェクト間で統一が取れていればそれで良いと思う。
0249デフォルトの名無しさん
2005/09/10(土) 15:38:18こんな感じで実行ファイルを作ってたんですが、
g++ A.a B.a foo.o -o exec
と、リンクする.aファイルを2個にしたら上手く行かなくなりました。
こういった場合はどうしたら良いのでしょうか?
0250デフォルトの名無しさん
2005/09/10(土) 15:43:590251デフォルトの名無しさん
2005/09/10(土) 15:46:02みたいに作ったものです。B.aも同じ感じです。
0252デフォルトの名無しさん
2005/09/10(土) 15:48:38g++ -o exec foo.o B.a A.a
B.aがA.aに依存していたらB.aを前にしてみるとか
俺にはこれ以上はわからない スマン
0253デフォルトの名無しさん
2005/09/10(土) 15:54:05その並びに変えたら行けました。でもってB.aはA.aに依存してました。
ありがとうございました。
0254デフォルトの名無しさん
2005/09/10(土) 16:53:31#しないケースもあるから大笑い。
0255名無しさん@そうだ選挙に行こう
2005/09/10(土) 17:34:580256名無しさん@そうだ選挙に行こう
2005/09/10(土) 22:15:16嘔吐make
0257名無しさん@そうだ選挙に行こう
2005/09/10(土) 23:32:530258名無しさん@そうだ選挙に行こう
2005/09/10(土) 23:43:160259名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:37:48Delphiぐらい速くならんの?
0260名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:39:23でもGCCてガマンできないほど遅くはないと思うがのう?
0261名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:44:09馬鹿がいるスレはここですか?
0262名無しさん@そうだ選挙に行こう
2005/09/11(日) 01:04:11Pascal がお行儀の良い言語仕様だから
0263名無しさん@そうだ選挙に行こう
2005/09/11(日) 01:26:15Ada@gccはC++と速度大差無いぞ…
Delphiのコンパイラはx86に最適化されてる気がする。
gccはクロスが売りだし…
0264名無しさん@そうだ選挙に行こう
2005/09/11(日) 01:45:39しかし、TurboPascalにはお世話になったよ。
統合環境といい、爆速コンパイルといい、文字出力が言語仕様に
組込まれているし、エラーメッセージが日本語で表示されて、
なおかつ1つしか表示されないし、教育用途には最適だったな。
エラーメッセージが最初の1つしかでないなんてコンパイラとしては
最低だが、初心者にとっては非常に重要。
画面がエラーメッセージで埋まろうもんならやる気なくすしね。
スレ違いか、スマソ...
0265名無しさん@そうだ選挙に行こう
2005/09/11(日) 02:07:40>クロスが売り
・ ・ ・
そのおかげで苦労するんだけどな
なんつったりしてなハッハッハ
0266名無しさん@そうだ選挙に行こう
2005/09/11(日) 02:23:42.dcuなんてプリコンパイルヘッダ+.objでしかもユニット単位だからC++のようにひとつのクラスのメソッドが別.objに格納されるケースなんて考えなくていいし。
実際C++Builderのコンパイルはそんなに早く無い。
gccはクロスだけじゃなくミックスランゲージコンパイラでもあるからな…(C++のプリコンパイルヘッダやAdaの.ali等はあるけど)
0267名無しさん@そうだ選挙に行こう
2005/09/11(日) 03:26:26GCC でコンパイルするとき -S って付けると、アセンブラのソースが出力されますが、
C++のソースをコメントとして一緒に出力することはできないでしょうか?
C++で書いたものがどういう機械語になるのか調べたいのですが・・・
0268名無しさん@そうだ選挙に行こう
2005/09/11(日) 03:42:47失敗ってことはないよ。作りかけではあるけど。
・・・というか、たいていのソフトウエアは、常に作りかけなんだけどね。
0269名無しさん@そうだ選挙に行こう
2005/09/11(日) 03:52:54C++のソースを一緒に吐けるのかは知らないけど、
ソースレベルデバッガを使うってのはどうでしょうか。
0270名無しさん@そうだ選挙に行こう
2005/09/11(日) 05:11:15c++ -g -c foo.c して
objdump -S foo.o すれば同じようなことはできるかな。
gccにそういうオプションあってもいいのにな
0271名無しさん@そうだ選挙に行こう
2005/09/11(日) 07:32:00コンパイル時間が余分にかかるくせにバイナリでけえんだよな
0272名無しさん@そうだ選挙に行こう
2005/09/11(日) 07:34:460273名無しさん@そうだ選挙に行こう
2005/09/11(日) 07:38:470274名無しさん@そうだ選挙に行こう
2005/09/11(日) 07:47:06extern void hoge();
main()
{
asm("; --------------------");
hoge();
asm("; --------------------");
}
0275名無しさん@そうだ選挙に行こう
2005/09/11(日) 09:37:49最後までそうだったかは知らない。Delphiは1パスコンパイルできる仕様なんだろうか?
0276名無しさん@そうだ選挙に行こう
2005/09/11(日) 09:40:03そうしないと代入でえらい非効率になる。
0277名無しさん@そうだ選挙に行こう
2005/09/11(日) 09:50:100278名無しさん@そうだ選挙に行こう
2005/09/11(日) 10:03:480279名無しさん@そうだ選挙に行こう
2005/09/11(日) 10:06:270280名無しさん@そうだ選挙に行こう
2005/09/11(日) 15:38:40GNUという組織はない。
0281名無しさん@そうだ選挙に行こう
2005/09/11(日) 16:23:310282名無しさん@そうだ選挙に行こう
2005/09/11(日) 16:30:170283名無しさん@そうだ選挙に行こう
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)
############################################################
0284283
2005/09/11(日) 16:56:05言い直します
>下のmakefile でメイクはうまくいくんですが
です。
コンパイルだけじゃなくリンクもできてます。
0285名無しさん@そうだ選挙に行こう
2005/09/11(日) 17:37:20LDFLAGS = -L$(BOOSTDIR)/include/boost-1_33/lib
LIBS = -lboost_filesystem-gcc
g++ -o$@ $(LDFLAGS) $(OBJS) $(LIBS)
じゃないのか?
0286名無しさん@そうだ選挙に行こう
2005/09/11(日) 17:59:57できました。
-l オプションの後には、ファイル名をフルネームで書くわけではないんですね。
でも、boost のライブラリ名が boost_filesystem や、 boost_filesystem-gcc-1_33 ではなく
boost_filesystem-gcc だというのは、どこからわかるのでしょうか?
何か命名規則があるのでしょうか? それともライブラリごとに任意で、boostのドキュメント
のどこかに書かれているでしょうか?
0287名無しさん@そうだ選挙に行こう
2005/09/11(日) 18:09:25boostライブラリが何者かは知らんが、まともならドキュメントに書いてある。
0288名無しさん@そうだ選挙に行こう
2005/09/11(日) 18:13:04了解しました。ありがとうございます。
ちなみに boost は、 C++ の準標準といわれるテンプレート拡張ライブラリです。
0289285
2005/09/11(日) 18:23:30cygwinはよく知らないのだが、UNIXの場合は、
libname.X.Y.soというファイル名で、(前のlibはお約束)
-lnameとやるからその類推で-lboost_filesystem-gccだろうと思った。
cygwin + mingwn + gcc 相談室 Part2
http://pc8.2ch.net/test/read.cgi/tech/1126103347/
で聞いてみてはどうか?
0290デフォルトの名無しさん
2005/09/16(金) 00:34:04.soしかないものはダイナミックリンクする、てのはどうやったら出来るでしょうか?
0291デフォルトの名無しさん
2005/09/16(金) 04:15:110292デフォルトの名無しさん
2005/09/16(金) 09:46:07普通と逆でしょ?
>>290
lib*.aを探して、あれば引数にフルパスを渡せば?
0294デフォルトの名無しさん
2005/09/19(月) 00:34:01テメエのバグのせいでどれだけ時間をつぶしたことか。。
0295デフォルトの名無しさん
2005/09/19(月) 01:13:120296デフォルトの名無しさん
2005/09/19(月) 01:31:31頼ってもいいが、信じるな
それがgccだ
0297デフォルトの名無しさん
2005/09/19(月) 12:22:03gthr-posix.h:43: pthread.h: No such file or directory
gthr-posix.h:44: unistd.h: No such file or directory
てエラーが出るんですが、どうしたらちゃんと見付けてくれるんでしょうか?
/usr/includeにはちゃんとあるんですが。
0298デフォルトの名無しさん
2005/09/19(月) 13:11:450299デフォルトの名無しさん
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はちょっと覚悟がいるかもしれない。
0300デフォルトの名無しさん
2005/09/19(月) 23:19:58・実はマルチバイト文字
・「ちゃんとある」のはpthread.hやunistd.hではなくgthr-posix.hだけだった
0301デフォルトの名無しさん
2005/09/22(木) 09:08:040302デフォルトの名無しさん
2005/09/22(木) 09:53:23あるよ
ttp://www.reactsoft.com/ (Javaなし)
Javaも欲しいなら、ちょっと古いけど
ttp://www.thisiscool.com/gcc_mingw.htm
0303デフォルトの名無しさん
2005/09/22(木) 20:05:12AdaとFortranとObjective-Cは眼中にすら無いですかそうですか。
0304デフォルトの名無しさん
2005/09/22(木) 23:48:200305デフォルトの名無しさん
2005/09/22(木) 23:56:40今Ada@gccが熱い。
新規格Ada2005がほぼ固まりつつある最終段階にあり、月に何度か一気に大量のパッチが適用されて、どんどん言語が変わってる。
バージョンの下一桁が上がるごとに追加される構文、ライブラリ、直されるバグ。
新規格そのものも、米国防総省の言語のはずなのに、互換性どこ吹く風でinterfaceやdownward closureをはじめ言語の使い方を一変させる新機能の嵐。
これを追いかけなくてどうするっ。
0306デフォルトの名無しさん
2005/09/23(金) 00:07:370307デフォルトの名無しさん
2005/09/23(金) 00:21:26http://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。
0308デフォルトの名無しさん
2005/09/23(金) 01:39:44軍関係。今はDoDも必須じゃないけれど。
0309デフォルトの名無しさん
2005/09/23(金) 01:48:53次期WinAVRは Adaサポート予定。
マイコンのプログラムをAdaでするのってどう?
ttp://sourceforge.net/projects/avr-ada
0310デフォルトの名無しさん
2005/09/23(金) 02:35:560311デフォルトの名無しさん
2005/09/23(金) 12:50:02http://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
0312デフォルトの名無しさん
2005/09/23(金) 12:52:16D Digital Mars 36.53
C gcc 28.71
Ada 95 GNAT 27.43
Pascal Free Pascal 20.21
C++ g++ 18.05
0313デフォルトの名無しさん
2005/09/23(金) 13:00:34ひでえなそこのページ。言語毎にアルゴリズム変えてやがる。
特定の言語をひいきするようなベンチマークは信用できない。
↓ここでも見ろ。
http://dada.perl.it/shootout/
0314デフォルトの名無しさん
2005/09/23(金) 14:35:45関係ないが、ベンチマークやるなら、各言語の特長を活かしライブラリを活用して奇麗に書く部門と、小手先の最適化駆使の速度追求部門が必要に思えた。
0315デフォルトの名無しさん
2005/09/23(金) 14:42:260316デフォルトの名無しさん
2005/09/23(金) 14:49:120317デフォルトの名無しさん
2005/09/25(日) 01:52:56なんだよ。そこのページWindosじゃねーかよ。
萎え
0318デフォルトの名無しさん
2005/09/25(日) 02:56:240319デフォルトの名無しさん
2005/09/25(日) 02:57:55ttp://www.pldos.pl/windos/screen.htm
0320デフォルトの名無しさん
2005/09/27(火) 12:37:33とりあえずベンチマーク鵜呑み、ヨロシク!
0321名無しさん@しぃあぃ
2005/09/29(木) 19:10:10http://gcc.gnu.org
0322デフォルトの名無しさん
2005/09/29(木) 20:50:380323デフォルトの名無しさん
2005/09/29(木) 20:52:02Cygwin
0324デフォルトの名無しさん
2005/09/29(木) 22:03:00IDEとは何か調べてから出直す必要はない。もう来るな
0325デフォルトの名無しさん
2005/09/29(木) 22:06:36Windows 使いの人なら、sambaで共有しつつビルドコマンドにはrshなど使って
Visual Studio で作業するという方法も検討してみて。結構いける。
0326デフォルトの名無しさん
2005/09/30(金) 00:31:59MinGW+テキストエディタ。これ最強。
0327デフォルトの名無しさん
2005/09/30(金) 00:44:450328デフォルトの名無しさん
2005/09/30(金) 02:04:01プッ
0329デフォルトの名無しさん
2005/09/30(金) 12:22:26ほほぅ
0330デフォルトの名無しさん
2005/09/30(金) 12:36:53パッケージマネージャが激しく使いにくいけど。
0331デフォルトの名無しさん
2005/09/30(金) 23:31:40こんな記事もでてるよ。
ttp://www-6.ibm.com/jp/developerworks/opensource/030620/j_os-ecc.html
0332デフォルトの名無しさん
2005/09/30(金) 23:54:530333デフォルトの名無しさん
2005/10/01(土) 00:43:400334デフォルトの名無しさん
2005/10/01(土) 01:39:420335デフォルトの名無しさん
2005/10/01(土) 01:56:360336デフォルトの名無しさん
2005/10/01(土) 08:01:34あっそうなの?
これから試してみる
0337デフォルトの名無しさん
2005/10/01(土) 10:23:54managedって方が自動生成、standardが生成されない方
managedは、プロジェクト名に相当する実行形式をつくるmakefileを生成する
0338デフォルトの名無しさん
2005/10/01(土) 19:55:050339デフォルトの名無しさん
2005/10/01(土) 20:05:280340デフォルトの名無しさん
2005/10/01(土) 20:17:220341デフォルトの名無しさん
2005/10/01(土) 20:33:250342デフォルトの名無しさん
2005/10/02(日) 16:40:35gcc 3.2.2 で生成した C オブジェクトを
gcc 3.4.3 でリンクできるのでしょうか?
ちなみにソースは C++ です。
今度 3.4.3 環境で作る事になりそうでして。
以前、マイナーバージョンアップでも上位互換無いような事を
聞いたもので、心配してます。
宜しくお願いします。
0343デフォルトの名無しさん
2005/10/02(日) 19:35:04http://lists.debian.org/debian-release/2005/04/msg00153.html
http://www.codesourcery.com/cxx-abi/
3.3リリース後にC++のABIを変えたから。
だから>>342のケースはダメ。
0344デフォルトの名無しさん
2005/10/02(日) 19:54:31しんどい部分頑張ってるっぽいけど、時期尚早でした
>343
3.3にすれば全盛期のgccにあえる?
0345デフォルトの名無しさん
2005/10/02(日) 20:02:45>GNUが低品質なのはconfigureと無関係ではないだろう。
>GNUが低品質なのはconfigureと無関係ではないだろう。
>GNUが低品質なのはconfigureと無関係ではないだろう。
http://pc8.2ch.net/test/read.cgi/tech/1114223450/
0346デフォルトの名無しさん
2005/10/02(日) 20:08:24バージョン番号の法則からは逃れられないということでしょう。
0347デフォルトの名無しさん
2005/10/02(日) 20:32:073.4でいいと思うけど。
いずれにせよ、自分のLinux boxには、2.95, 3.3, 3.4, 4.0がインストールされてます。
古いABIのままのlibraryがあるし、4.0は未だ不安なので。
0348デフォルトの名無しさん
2005/10/03(月) 00:45:02早速の回答、ありがとうございます。
やはりそうなんですね。
gcc、遊びで使った事はあるのですが、
今度仕事で使う事になりまして。
色々調べていたのですが、
本格的に使おうとすると結構敷居高いですね。
どうもでした_(._.)_
0349デフォルトの名無しさん
2005/10/03(月) 00:49:10いや、ABIの変更なんて当分ないから。
0350デフォルトの名無しさん
2005/10/03(月) 01:19:58そもそも「以前」の対義語は「以後」で…。
0351デフォルトの名無しさん
2005/10/03(月) 02:15:59そんな些細なこと気にすんなって。気楽に行こう。
行こうと以降をかけています。
0352デフォルトの名無しさん
2005/10/03(月) 02:20:50より後、以降、以後もあいまいだわ・・・。
0353デフォルトの名無しさん
2005/10/03(月) 02:33:50あやふやったって、基準点を含むか含まないか程度のあいまいさだろ。
以前と言って未来を指す訳でもないんだからよ。
0354デフォルトの名無しさん
2005/10/03(月) 02:39:45xxxより前(xxxを含まない)のバージョンでは
xxx以前(xxxを含む)バージョンでは
と括弧書きが必要になるんがツライかなぁ。
0355デフォルトの名無しさん
2005/10/06(木) 06:07:52g++ から 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
長くなってすいません。
0356デフォルトの名無しさん
2005/10/06(木) 07:00:57はい次。
0357デフォルトの名無しさん
2005/10/06(木) 09:12:30$(project_name).exe: $(objects)
echo g++ -mconsole -mwindows -o $@ $(objects) $(libraries) >355
echo collect2: ld returned 1 exit status
一字一句正確に、コピ禁、手打ち
0358デフォルトの名無しさん
2005/10/06(木) 16:00:31素早いお返事ありがとうございます。
うまく動かすことが出来ました。
g++ からの場合は .lib ではなくて .a のライブラリを読むんですね。
普段は Visual Studio を使っていたので全然無知でした……。
また初歩的な質問をしてしまうかもしれませんが、これからもよろしくお願いします。
妙な挨拶みたいになりましたが……。
0359デフォルトの名無しさん
2005/10/06(木) 17:20:01互換性は無いんでしょうか?
0360デフォルトの名無しさん
2005/10/06(木) 18:20:020361デフォルトの名無しさん
2005/10/06(木) 19:44:08なるほど、わかりました。ありがとうございます。
0362デフォルトの名無しさん
2005/10/06(木) 22:49:01リンケージの違い、ABIの違いが少々存在するので
一筋縄ではいかない(ことが、ある)。
0363デフォルトの名無しさん
2005/10/06(木) 23:21:230364デフォルトの名無しさん
2005/10/06(木) 23:30:31つまり、喰うだけだったらCygwinでも他ホスト上のクロス環境でも喰える。
0365デフォルトの名無しさん
2005/10/06(木) 23:31:340366デフォルトの名無しさん
2005/10/07(金) 00:30:210367デフォルトの名無しさん
2005/10/07(金) 03:16:420368デフォルトの名無しさん
2005/10/07(金) 05:26:080369デフォルトの名無しさん
2005/10/07(金) 20:19:320370デフォルトの名無しさん
2005/10/07(金) 20:35:540371デフォルトの名無しさん
2005/10/07(金) 20:50:460372デフォルトの名無しさん
2005/10/08(土) 01:50:380373デフォルトの名無しさん
2005/10/08(土) 21:50:130374デフォルトの名無しさん
2005/10/09(日) 05:15:390375デフォルトの名無しさん
2005/10/09(日) 07:49:100376デフォルトの名無しさん
2005/10/09(日) 08:20:390377デフォルトの名無しさん
2005/10/09(日) 08:56:240378デフォルトの名無しさん
2005/10/09(日) 14:20:47ゲロで体調がわかる。
0379デフォルトの名無しさん
2005/10/09(日) 17:00:380380デフォルトの名無しさん
2005/10/13(木) 08:11:180381デフォルトの名無しさん
2005/10/13(木) 08:20:36// コンパイル不可能
0382デフォルトの名無しさん
2005/10/13(木) 10:09:59http://www.google.co.jp/search?hl=ja&q=gcc+0x5C+%E8%A1%A8+%E8%83%BD&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0383デフォルトの名無しさん
2005/10/13(木) 10:10:19を入れたらコンパイル可能
(gccが対応している時)
0384デフォルトの名無しさん
2005/10/13(木) 22:27:24/* これでくくれってことっすね?*/
0385デフォルトの名無しさん
2005/10/13(木) 22:47:26ってことあったっけ?
gccにはあった気がする
0386デフォルトの名無しさん
2005/10/13(木) 23:07:29後ろの*/の手前に空白を入れるべし
0387デフォルトの名無しさん
2005/10/14(金) 00:26:02はスルーですか
そうですか
ひとり言
gccの3.4.x以降で configureに --enable-c-mbchar を指定してgccを作成すると
上記オプションが有効になるみたい
mingwではOKだった
ついでにAVR用のgccも作成してみたがこれも無問題でした
まあ対応していないコンパイラのことを考えると結局
/* これが正解ですね */
0388デフォルトの名無しさん
2005/10/14(金) 00:34:47printf("表示テスト") は
printf("表\示テスト") としなければいけないので・・・
0389デフォルトの名無しさん
2005/10/14(金) 10:05:53'\' '―' '・' 'ソ' 'Ы' '・' '・' '�\'
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
'' '' '�\' '�\' '・'
0390デフォルトの名無しさん
2005/10/14(金) 10:39:46てな表\記を貼\ってみた
0391デフォルトの名無しさん
2005/10/14(金) 11:03:02とか、初心者が書きそう
0392デフォルトの名無しさん
2005/10/14(金) 11:38:00やっばいねこれ無駄に熱くなるね
0393デフォルトの名無しさん
2005/10/14(金) 11:38:59文字列の判定が適当だったので、たまに全然関係ない所まで書き換えられて
謎なエラーに悩まされたものじゃ。
0394デフォルトの名無しさん
2005/10/14(金) 11:49:20最後が「義」だから問題ないでしょ。
// 〜 \
となるのが継続コメント行で問題なんだから。
0395デフォルトの名無しさん
2005/10/14(金) 11:52:06ある。当時はなかなか役に立った。
しかもnkfをちょちょいと変更するだけだから簡単クッキング。
0396デフォルトの名無しさん
2005/10/14(金) 12:02:11HAVE_LOCALEとHAVE_ICONVでコンパイルされていれば。
0397デフォルトの名無しさん
2005/10/14(金) 16:58:350398デフォルトの名無しさん
2005/10/14(金) 17:22:03http://ja.wikipedia.org/wiki/Ada
0399デフォルトの名無しさん
2005/10/14(金) 19:48:10ttp://en.wikibooks.org/wiki/Ada_Programming
0400デフォルトの名無しさん
2005/10/15(土) 01:07:08ってそーすをコンパイルして、gcc sore.c -Wl,--section-start -Wl,xxx=0x300
とかしたら、dataが0x300に配置されるのかな?と思ったけど、うまくいかなかった。
ハードウェアのメモリにちゃんとアクセスできてるかを、PCでシミュレーションしたかったんだけど、
うまい方法ないっすかね?
0401デフォルトの名無しさん
2005/10/15(土) 01:14:580402400
2005/10/15(土) 01:22:11ushort* p = (ushort*)0x300;
*p = 35;
とかってソースかいて特定のアドレスに書き込むんだけど、
これ、PCでやったらエラーでちゃうんですよ。
そこで、配列用意して、それのアドレスが0x300に配置されてたら、
PCでもエラーにならないとおもったんだけど。
こういうコードがいろいろ散らばってるんで、PCで走らせて、
意図した値が書き込めてるかテストしてみたいんです。
他にも、--check-memory-usageも考えてみたんだけど、いまいちで。
0403デフォルトの名無しさん
2005/10/15(土) 01:22:14じゃ駄目なのかな
0404デフォルトの名無しさん
2005/10/15(土) 01:31:45PC上で動くエミュレーターですよね?
0x300なんて下位過ぎるアドレス、OSが保護してると思うんだ…。
0405400
2005/10/15(土) 01:36:20エミュレータがないんで...
0406デフォルトの名無しさん
2005/10/15(土) 01:40:32PCで動作確認するときはグローバル変数なりにしときゃいいだけじゃないのか
0407400
2005/10/15(土) 01:42:26たしかに、それもいいとは思うんだけど、
ソースがそれを意識して書かれてないと、ダメだよね。
0408デフォルトの名無しさん
2005/10/15(土) 01:42:37なんていってるようじゃ、どうしようもないと思うけどね。
DOSでも使ったら。
0409デフォルトの名無しさん
2005/10/15(土) 01:43:28OSによって大体のアドレスの使われ方は決まってしまうわけで…。
0x300なんて端っこは、恐らくというかほぼ確実にというか、まず空いて無いと思われます。
0410400
2005/10/15(土) 01:46:01妙な質問のお相手していただいて感謝です。
0411デフォルトの名無しさん
2005/10/15(土) 01:47:27論理アドレスと物理アドレスのことを分かって書いてる?
どちらにしろPC上で意味もなく固定アドレスに書き込もうとしているのは間違い
0412デフォルトの名無しさん
2005/10/15(土) 01:48:51いや…この上VirtualAllocの説明までしたくなかったし…。
0413400
2005/10/15(土) 01:54:15もしかして、任意のアドレスを確保できる?
0414デフォルトの名無しさん
2005/10/15(土) 01:54:38そうではなくて
AとBのプロセスを同時に走らせているとして
Aの0x300とBの0x300番地は物理アドレスではまったく別の場所を指しているのだけど
通常のプログラムで0x300番地をアクセスしたら自分の論理番地0x300をアクセスすることになる
またOSにより論理アドレス0x300に対する物理アドレスは変更されることもある
0415デフォルトの名無しさん
2005/10/15(土) 01:55:201ページ以内だな。UNIX系だと0番地にmmap()できるのはあった気がする。
0416デフォルトの名無しさん
2005/10/15(土) 01:56:51そんなだから、こういう腐った質問や腐ったやり方を考えようとするんだろうな。
0417デフォルトの名無しさん
2005/10/15(土) 02:01:140418デフォルトの名無しさん
2005/10/15(土) 02:01:30それはそうだが、そこまで説明いらんっしょ…。
理解して無かったら、「起動した.exeそのものは0x00400000から〜」なんて決め打った数字書かないよ。
>>413
要求は出来るが必ずしも要求が通るとは限らないです。
確かに、同じアドレス空間を確保することで、ポインタ込みの永続化を実現するライブラリなんてのもあることはあるけどさ(ボソ
0419デフォルトの名無しさん
2005/10/15(土) 02:02:35いやメモリのアドレスの即値だと思うんだが
0420デフォルトの名無しさん
2005/10/15(土) 02:04:520421デフォルトの名無しさん
2005/10/15(土) 02:07:43x86だとI/Oマップドとメモリマップドの両方出来るから
0422416
2005/10/15(土) 02:10:25うん、まあ、メモリマップドI/Oのつもりで書いた。
8086の割り込みベクタとかならともかく、
メモリの即値が必要なのって、そういうケースしか思いつかなかったから。
0423デフォルトの名無しさん
2005/10/15(土) 02:16:138086だと0x300ってベクタ領域だ
0424デフォルトの名無しさん
2005/10/15(土) 02:18:210425デフォルトの名無しさん
2005/10/15(土) 02:20:020426デフォルトの名無しさん
2005/10/15(土) 02:20:10GPL3で拡大しようという動きはあるけどさ、とりあえず今のところは。
0427デフォルトの名無しさん
2005/10/15(土) 02:23:15そうでなければ公開の必要はなし
この話しはGPLスレだな
0428デフォルトの名無しさん
2005/10/15(土) 02:32:50MS-DOSも0x300は駄目(w
0429デフォルトの名無しさん
2005/10/15(土) 02:35:56この男は何を言い出すんだ(w
とんちんかんキングだな。
0430デフォルトの名無しさん
2005/10/15(土) 02:48:09この男もトンチンカン2
0431デフォルトの名無しさん
2005/10/15(土) 02:50:55429は多分MMUのことを知らないんだよ
0432デフォルトの名無しさん
2005/10/15(土) 03:42:440433デフォルトの名無しさん
2005/10/15(土) 09:27:020434デフォルトの名無しさん
2005/10/15(土) 09:29:310435デフォルトの名無しさん
2005/10/15(土) 09:39:020436デフォルトの名無しさん
2005/10/15(土) 09:44:260437デフォルトの名無しさん
2005/10/15(土) 10:45:290438デフォルトの名無しさん
2005/10/15(土) 11:25:16そういう問題じゃなくて?
4byteCPUだと4の倍数byteのアドレス指定しないと読み込めないとか。
0439デフォルトの名無しさん
2005/10/15(土) 11:30:400440デフォルトの名無しさん
2005/10/15(土) 11:54:130441デフォルトの名無しさん
2005/10/15(土) 12:18:270442400
2005/10/15(土) 12:42:02実際には、たしか0xA000以降にアクセスできればよかったので、これでいけるかも。
うちのknoppixでは0x1000以降なら配置できるようでした。
しかし、セクションの割り当てでうまくいかないのはどうしてだろう?
いろんなアドレスでやってみたけどうまくいかなかったから、
attribute文法とか-Wl,--section-start -Wl,secname=addrの使いかた間違ってます?
0443デフォルトの名無しさん
2005/10/15(土) 13:24:55/usr/bin/ld: a.out: Not enough room for program headers (allocated 7, need 8)
0444400
2005/10/15(土) 13:44:16そのメッセージでないのですが、store.cの中身みせてもらえます?
0445デフォルトの名無しさん
2005/10/15(土) 13:51:50int 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
0446400
2005/10/15(土) 14:01:04そのソースだと以下のようになりません?
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)
0448デフォルトの名無しさん
2005/10/15(土) 14:05:20つまり、mainとリンクすればうまくいくってことですか?
0449デフォルトの名無しさん
2005/10/15(土) 14:05:31"xxx" section用のELFヘッダ領域がないからでしょう。 > Not enough
$ ld -v
GNU ld version 2.16.1 Debian GNU/Linux
です。
0450400
2005/10/15(土) 14:14:47knoppix@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
0451400
2005/10/15(土) 14:16:06knoppix@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
0452デフォルトの名無しさん
2005/10/15(土) 16:50:56機種依存の端の話だし。
0453デフォルトの名無しさん
2005/10/16(日) 18:18:37knoppixスレもスレ違いだろ。linker && loader スレかな。人いないけど。
0454デフォルトの名無しさん
2005/10/16(日) 19:17:320x300みたいな低いアドレスは、>>415の言う通り
仮想メモリ持ってるOSだと大抵はぬるぽ検出用にプロテクトされるから、
OSのローダーが親切にアドレスずらしてるんじゃないかねえ。
手元のFreeBSDで試してみたが、>>400とほぼ同じ結果だった。
cygwinで試したら「有効なWin32アプリケーションではない」と言われたから、
多分OSというかローダー依存と思われる。
移るならL&Lスレだろうが・・・わかる奴いるんかなあ。
0455デフォルトの名無しさん
2005/10/16(日) 19:20:230456デフォルトの名無しさん
2005/10/16(日) 21:29:47これはどんな原因かズバリ教えてください。
ズバリヒントください。どうか
0457デフォルトの名無しさん
2005/10/16(日) 21:44:42Cygwin/Mingwのスレに行った方がいいよ。
0458マウスのクルクル部分で入力欄クリックしたら送信された。
2005/10/16(日) 21:47:03Info: 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に数がかわるだけで、ずっとこんなんです。
0459デフォルトの名無しさん
2005/10/16(日) 21:51:57かしこまりました。
3連投失礼しました。
0460デフォルトの名無しさん
2005/10/21(金) 13:45:08O'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の方に参照がついてるし。
何とかならないかな?
0461デフォルトの名無しさん
2005/10/21(金) 14:17:21-Quaternion::Quaternion(float n, Vector &v);
+Quaternion::Quaternion(float n, const Vector &v);
0462デフォルトの名無しさん
2005/10/22(土) 09:33:29遅レススマソ。
よくなりますた。
一時変数はリテラルと同じで変更を許さないって方針なのかな。
0463デフォルトの名無しさん
2005/10/22(土) 10:17:290464デフォルトの名無しさん
2005/10/22(土) 16:02:30その通り
VC++はレベル4では警告を出す
GCCが文法としては正しい
これはすごく難しい問題をC++言語に提起しているので
たぶん将来改定される
0465デフォルトの名無しさん
2005/10/22(土) 16:24:22しかし・・・参照にするとちょっと複雑な式が動かなくなるってのは結構不便だ・・・
コンパイルオプションで何とかならないのかなぁっつーのはconstを省く怠け者の戯言か。
TECH IのGCC本が出たけどC++については何も載ってなくて残念。
買ったけど。
0466デフォルトの名無しさん
2005/10/22(土) 16:33:52文法(syntax)じゃなくて意味(論; semantics)な
0467デフォルトの名無しさん
2005/10/22(土) 18:16:18意味的なことをよく考えてみれって
非const参照(書き込み可)で渡すってことは
その関数が書き込んだ値を後で使うからすぐには消さないってことだろ
そういうときは変数作るやん
関数内で書き込むけどそのとき限りで関数から抜けたらあぼーんは参照じゃなく値だよな
0468デフォルトの名無しさん
2005/10/22(土) 18:28:47const は「省く」なんて言えるもんじゃないぞ。
有るべきところに無いのは「間違い」だ。
0469デフォルトの名無しさん
2005/10/22(土) 18:36:15つーても operator = の返却値だとか = 0 で mutable が必要になったりとか
判断が難しいのは普通にあるね
0470デフォルトの名無しさん
2005/10/28(金) 17:16:02__try {
}
__finally {
}
ってのがあったんですが、Borland?VC?だかの拡張だそうなんですけど
gccで置換えるものってあります?ここだけgcj使うとか無茶は通るわけないよね
0471デフォルトの名無しさん
2005/10/28(金) 19:17:32あたりでぐぐるとヒントが見つかろう。
Win32アプリケーションはともかくDDKあたりでは避けて通れない。
mingw とかでどう置き換えていいものやら折れも知りたい。
0472デフォルトの名無しさん
2005/10/28(金) 20:14:36bool f;
try{
f = 1;
f = 0;
throw gomi;
}catch(...){
if(f) throw;
}
とかでいいんでは。
0473デフォルトの名無しさん
2005/10/28(金) 23:50:180474デフォルトの名無しさん
2005/10/29(土) 00:27:340475デフォルトの名無しさん
2005/10/29(土) 02:59:43マクロかなんかで、例えば UNKO というdefineを使うと
if(a==UNKO) と if(!a) が等価になるような、そんな
プリプリプロセッセを作りたいニャ
0476デフォルトの名無しさん
2005/10/29(土) 03:18:14http://reactos.csh-consult.dk/install-mingw-seh.txt
何か面白そうだねえ。
SEHがもう少しうまくC++ exceptionに融合しているといいけれど、
ctorの最中に例外による大域脱出が起きると困るしなあ。
ctorのコード生成ロジックが異常に複雑になっちゃう。
0477デフォルトの名無しさん
2005/10/29(土) 03:25:15こっちがGCC SEHトップページか。
0478デフォルトの名無しさん
2005/10/29(土) 03:32:16ポインタ貼ったり数をカウントしたりは ctor のコンテキストからは呼び出さない関数で行う
0479デフォルトの名無しさん
2005/10/29(土) 04:18:11VCの素のSEHはebp縛りのハンドラ呼び出しとか小汚い実装なんだよな。
一度_exceptで例外受けると同じ例外の再throwはもちろんできないので
C++の様にはいかない。
またCで書く以上、コードスタイル的に__finallyは別になくても良いし。
移植性を考えると結局はハードウェア例外を捕捉する用途以外は積極的に使えない。
Windowsと心中するつもりの奴向けだな。
0480デフォルトの名無しさん
2005/10/29(土) 21:41:47て言うか、a の真偽を判定するのに if(a==TRUE) なん
て書く奴は、アフォだと思う。
0481デフォルトの名無しさん
2005/10/30(日) 13:48:53ホームページを教えれ
0482デフォルトの名無しさん
2005/10/30(日) 14:42:39リンカ スクリプトぐらいでぐぐればいいと思うが…
おまえが言っている「詳細」がどのレベルかよくわか
らんけど、とりあえず…
http://www.sra.co.jp/wingnut/ld/ld-ja_3.html#SEC6
0483デフォルトの名無しさん
2005/10/30(日) 14:55:320484デフォルトの名無しさん
2005/10/30(日) 15:07:32って言われたら、おまいどうするつもりだ?
0485デフォルトの名無しさん
2005/10/30(日) 15:09:32>1 にも GNU Compiler Collection って書いてるじゃないか。
0486デフォルトの名無しさん
2005/10/30(日) 15:13:100487デフォルトの名無しさん
2005/10/30(日) 15:15:59g++の後継コンパイラがGCCとは別になるって本当ですか?
今までgccと統合してきたことによる様々な弊害を解消するのが目的だそうです。
GNUとしても今後はGCCよりg++の後継コンパイラに力を注ぐそうです。
あともう一点、LinuxがC++でスクラッチから書き直されているそうです。
リーナスの手によって。
0488デフォルトの名無しさん
2005/10/30(日) 16:48:06↓こういうGCCのforked projectはある。
http://open64.sourceforge.net/documentation.html
0489デフォルトの名無しさん
2005/10/30(日) 17:42:52>リーナスの手によって。
テラワロスww
わざわざC++にするなんて無駄だろ
0490デフォルトの名無しさん
2005/10/30(日) 17:48:20話の真偽は知らんけど、デバドラなんかは C よりも
すっきり書けると思うよ。
そういう意味じゃ、MINIX なんかの方が C++ で書
く意味があるかもね。
0491デフォルトの名無しさん
2005/10/30(日) 17:52:55なんて名前がいいかな
0492デフォルトの名無しさん
2005/10/30(日) 17:59:48>リーナスの手によって。
ポインタきぼんぬ。
ABIに起因する多くの欠点 >>> 自然にOOが出来る利点
なので、C++でカーネル書くのは、到底おいしいとは思えないのだが。
0493デフォルトの名無しさん
2005/10/30(日) 18:01:21レスありがとうございます。
笑ってもらえて光栄です。
0494デフォルトの名無しさん
2005/10/30(日) 18:02:35おいしくないはずがないですよ。
C++はオブジェクト指向なんですから。
分業の時代ですよ?
0495デフォルトの名無しさん
2005/10/30(日) 18:08:40詳しい説明求む。
0496デフォルトの名無しさん
2005/10/30(日) 18:08:48C++-new
0497デフォルトの名無しさん
2005/10/30(日) 18:10:18OldC++
0498デフォルトの名無しさん
2005/10/30(日) 18:20:08C++
使うかどうかは言語の種類にあらず
0499デフォルトの名無しさん
2005/10/30(日) 18:26:17壊れやすいベース・クラス問題
http://www.st.rim.or.jp/~osada/translation/developers/BNL_articles/Issue79-insights-j.html
0500デフォルトの名無しさん
2005/10/30(日) 18:26:53>>498
C++の一部だけを使って高機能なCとして使うのを
ベターCとか言ったりするでしょ。あんな感じ。
0501デフォルトの名無しさん
2005/10/30(日) 18:26:56どうせなら、OSはC++じゃなくて、Objective Cで書いて欲しい。
0502デフォルトの名無しさん
2005/10/30(日) 18:57:47DarwinのデバドラIOKitが制限付きC++。
デバイスの種別階層をクラス階層にマッピング。
http://developer.apple.com/devicedrivers/
0503デフォルトの名無しさん
2005/10/30(日) 19:16:50思ってる奴…。
0504デフォルトの名無しさん
2005/10/30(日) 19:23:530505デフォルトの名無しさん
2005/10/30(日) 19:29:060506デフォルトの名無しさん
2005/10/30(日) 20:33:550507デフォルトの名無しさん
2005/10/30(日) 20:53:47C++ is a better C と同様に
C++ is a 何と言いたいんだ?
ちなみに new を使わない分野は実在するが
厳密に定義されたコーディング基準あるいは制限にいちいちコードネームはあんまり付けない
0508デフォルトの名無しさん
2005/10/30(日) 21:47:200509デフォルトの名無しさん
2005/10/30(日) 22:06:35>あともう一点、LinuxがC++でスクラッチから書き直されているそうです。
>リーナスの手によって。
何この壮大な釣りww
(・∀・) 巣にカエレ
0510デフォルトの名無しさん
2005/10/30(日) 22:15:01URL ありがと。
ただ、これってインターフェースの問題で、既存の言語でもそれなりに発生す
るよね。まあ、OS の API がころころ変わるのはあまりないけど、ライブラリ
がバージョンアップした時によく聞く話だよね。
でも、(>>487 が正しいとして) Linus 氏が API まで変更するとはあまり思え
ない。
純然に、OS の内部を C++ だけで書いてるだけじゃないかな?
まあ、C++ のオブジェクトベースで資源が使える OS と言うのも面白そうだが、
バージョンアップにそれなりに耐えうるためには、何らかの動的な解決策が必
要だと思うので、C++ ではちょっと難しい感じがする。
>>507
コーディング規約とかじゃなくて、C++ のサブセット版みたいな感じだと思う
けど。イメージとしては、MemorySafe C++ みたいな。
> 厳密に定義されたコーディング基準あるいは制限にいちいちコードネームは
> あんまり付けない
MISRA とかは無視なの?
0511デフォルトの名無しさん
2005/10/30(日) 22:26:25あれのどこが厳密なんだよ
0512デフォルトの名無しさん
2005/10/30(日) 22:30:34気持ちの問題だよ
コードネームついてた方がかっこいいじゃん
それだけ
0513デフォルトの名無しさん
2005/10/30(日) 22:34:100514デフォルトの名無しさん
2005/10/30(日) 22:43:14これからLINUXをC++で書き直すんですか?
0515デフォルトの名無しさん
2005/10/30(日) 22:54:07これからのLinuxは全コンパイルがデフォですか?!
0516デフォルトの名無しさん
2005/10/30(日) 22:58:16インターフェース(だけ)の問題じゃないぞ。
(ライブラリで定義されているような)ベースクラス実装が変って、
ベースクラスのサイズが変ると問題が起きる。
だから実装だけ別オブジェクトする事が良く行われる。
Pimplイデオム
http://boost.cppll.jp/HEAD/libs/smart_ptr/sp_techniques.html#pimpl
もうね、>>499なんて常識ですよ。
常識だからどうやればいいかも(ちょっと面倒だけど)はっきりしている。
0517デフォルトの名無しさん
2005/10/31(月) 01:25:25謝れ!!!
0518デフォルトの名無しさん
2005/10/31(月) 01:30:28まったく同じ指向のものってわけじゃないだろうからどっちか一方イラネってことじゃないけどね。
0519デフォルトの名無しさん
2005/10/31(月) 02:37:39しかもC++でって、Cからの移行メリットがほとんどない。
ライナスがそこまでアホだとは思えないんだが。
Perl6を見ろ。
0520デフォルトの名無しさん
2005/10/31(月) 02:42:09BeOS知らないやつらにまでばらすな!!!
嘘だと言え!!!
0521デフォルトの名無しさん
2005/10/31(月) 02:45:290522デフォルトの名無しさん
2005/10/31(月) 02:47:28違う。
「LinuxにおいてCからC++への移行メリットは全く無い。」
0523デフォルトの名無しさん
2005/10/31(月) 03:32:04ちょっと違うと思うがね。
0524デフォルトの名無しさん
2005/10/31(月) 14:10:39Kernelだってloadable moduleの互換性なくなるし。
0525デフォルトの名無しさん
2005/10/31(月) 14:11:29全然違うから(w
>>449のページを良く読むように。
0526デフォルトの名無しさん
2005/10/31(月) 18:32:33拡張が容易。
0527デフォルトの名無しさん
2005/10/31(月) 20:48:32Lisp にしておけばいいのに。
拡張が容易。
0528デフォルトの名無しさん
2005/10/31(月) 21:41:08工数の都合上、お客様のご要望にはお応えできまsn
0529デフォルトの名無しさん
2005/10/31(月) 23:21:00読める人間がいないので、セキュリティも万全。
0530デフォルトの名無しさん
2005/11/01(火) 07:24:36LISPマシン!
0531デフォルトの名無しさん
2005/11/01(火) 17:47:07日本人開発者が増える。
0532デフォルトの名無しさん
2005/11/04(金) 18:59:23>日本人開発者が増える。
それは無さそうだよ
0533デフォルトの名無しさん
2005/11/04(金) 19:21:460534デフォルトの名無しさん
2005/11/04(金) 22:59:57あなたがGCC開発プロジェクトに参加したその瞬間に、道は開けます。
用意はいいですね?それでは、始めましょうか。
0535デフォルトの名無しさん
2005/11/05(土) 00:03:560536デフォルトの名無しさん
2005/11/05(土) 00:06:320537デフォルトの名無しさん
2005/11/05(土) 00:15:170538デフォルトの名無しさん
2005/11/05(土) 00:16:320539デフォルトの名無しさん
2005/11/05(土) 00:16:560540デフォルトの名無しさん
2005/11/05(土) 00:32:060541デフォルトの名無しさん
2005/11/05(土) 00:41:390542535
2005/11/05(土) 00:48:400543デフォルトの名無しさん
2005/11/06(日) 17:38:04-mfpmath=sseで精度落ちちゃうのが嫌なんですが。
0544デフォルトの名無しさん
2005/11/06(日) 19:42:23sse2が使えるなら使うよ。
0545デフォルトの名無しさん
2005/11/06(日) 20:44:153.3.1だとerror: bad value (sse2) for -mfpmath= switchと言われます。
それとも、mfpmath=sseは-msseと同じ意味ってことですか?
0546デフォルトの名無しさん
2005/11/06(日) 22:24:07For i387 you need to use -march=cpu-type, -msse or -msse2 switches to enable SSE extensions and make this option effective.
を訳して欲しいです
0547デフォルトの名無しさん
2005/11/06(日) 22:31:56544じゃないが、違う。
-msseをすると、sse命令が使えるようになる。
-mfpmath=sseは、従来のFPU命令を出力する所をsseの
スカラー演算命令に置き換える。
余談だが、Pentium3では-mfpmath=sseは逆に遅くなる。
Pentium4では知らん。でも、劇的に早くなるとは思えん。
遅くなる理由は、単純にgccのsseスカラー命令のスケジューリング
がこなれてないせいだろうな。インテルコンパイラーの
出力と比べるとなんとなくそう感じる。
0548デフォルトの名無しさん
2005/11/06(日) 22:32:04「i387のためにSSE拡張を可能にし、このオプションを効果的にするために
-march=CPUタイプ、-msee、または-msse2スイッチを使う必要があります。」
TECH I Vol.29 実例で学ぶGCCの本格的活用法 p.270
~~~~~~
直訳載っけておしまいはひどいよCQ出版さん・・・
こんくらいman読んだだけでわかるって・・・
0549デフォルトの名無しさん
2005/11/07(月) 00:06:390550デフォルトの名無しさん
2005/11/07(月) 00:48:33和文になってるだけでも価値を認める人はいるし。
0551デフォルトの名無しさん
2005/11/07(月) 00:55:05JM Project知らないの?
多少古いけどほとんど載ってるよ。
0552デフォルトの名無しさん
2005/11/07(月) 06:42:37floating-point code, see `-mfpmath=sse'.
0553デフォルトの名無しさん
2005/11/08(火) 02:59:00下手すぎじゃね?
0554デフォルトの名無しさん
2005/11/09(水) 00:08:100555デフォルトの名無しさん
2005/11/09(水) 00:37:13C++であれば、リンク時に libstdc++ が自動的に入るかどうか。
0556デフォルトの名無しさん
2005/11/09(水) 01:01:09デフォルト検索パスが違う。
0557デフォルトの名無しさん
2005/11/09(水) 01:03:04なんかかっこいい。
0558デフォルトの名無しさん
2005/11/09(水) 05:28:080559デフォルトの名無しさん
2005/11/18(金) 20:24:340560デフォルトの名無しさん
2005/11/20(日) 01:07:54この本アマゾンで検索してもでてきませんね。ネットでは買えないのか?
それにしても、オプションの解説ばかり載っている本ですね。
0561デフォルトの名無しさん
2005/11/20(日) 08:40:27それはそれでいいんだけど、
・Webで公開されている連載と変わらない
・実例がないのでman異常の価値を感じない
ので買うほどの意欲が沸かなかった……。
発売前は期待していたのになぁ。
0562デフォルトの名無しさん
2005/11/20(日) 09:11:484.1.0が出た
0563デフォルトの名無しさん
2005/11/20(日) 09:32:38いやスレ違いじゃないですよ。
0564デフォルトの名無しさん
2005/11/20(日) 10:20:38ソースとアセンブリが載ってるけど、あれって実例とは言わないよな。
買って損したと言い切ることは出来ないんだけども、
買わなくても問題はなかったと思ってしまう本だった。
0565デフォルトの名無しさん
2005/11/20(日) 13:15:38http://gcc.gnu.org/ の Serious regressions のリンク先によると、
いくつかの「うんこ」な問題が復活してるみたいだね。
open for regression and documentation fixes only
らしいし、4.1.1を待つか。
0566デフォルトの名無しさん
2005/11/20(日) 14:43:38回帰とか退化とか辞書にはのってますけど。
0567デフォルトの名無しさん
2005/11/20(日) 15:00:32前のバージョンに比べて、機能が低下したってことじゃない?
0568デフォルトの名無しさん
2005/11/20(日) 15:05:47>>566-567
0569デフォルトの名無しさん
2005/11/20(日) 15:24:47最適化だったら今までできてたのが、できなくなったとかことなのかな
って書こうとしてたら、間に気持ち悪いレスがついた。
違うのかな?
0571デフォルトの名無しさん
2005/11/20(日) 16:43:23http://mozillazine.jp/?m=200510&paged=2
regression (他のバグを修正したときに発生したバグ)
0573デフォルトの名無しさん
2005/11/20(日) 21:51:42Status
------
UNCO
UNCO
UNCO
:
:
とか書いてて爆笑したw
0574デフォルトの名無しさん
2005/11/20(日) 22:12:500575デフォルトの名無しさん
2005/11/20(日) 22:23:13UNCOな奴の中に省略してないのが書いてある。
"UNCONFIRMED"だな。意味は「未確認」か?
とりあえず、「あんこ」って呼ぼうよ。
0576デフォルトの名無しさん
2005/11/21(月) 01:01:190577デフォルトの名無しさん
2005/11/21(月) 01:29:43こっちをソース管理ツールとしてどんどん使っていくのかな。
0578デフォルトの名無しさん
2005/11/21(月) 04:03:34そして、修正を割り当てられたのは「あっし」です。
0579デフォルトの名無しさん
2005/11/21(月) 05:35:120580デフォルトの名無しさん
2005/11/21(月) 08:53:14えー、マジで?最悪…。
0581デフォルトの名無しさん
2005/11/21(月) 11:39:510582デフォルトの名無しさん
2005/11/21(月) 12:37:48gcc.gnu.orgは独立しとるからのう。
まあ、sourceware.orgに置いてあるのはまとめて移行になるので、
当分CVSじゃないかなあと思うが。
0583デフォルトの名無しさん
2005/11/21(月) 12:58:02すまん、まだだったね。
久々に gcc.gnu.org いったら、トップに出ていたので、リリースされたと思っちゃったよ。
みんな、ごめん。
0584デフォルトの名無しさん
2005/11/21(月) 15:43:26>Current release series: GCC 4.1.0
という表記は誤解を招きますな。
文句言ったところでAnnouncements読めといわれそうですが。
0585デフォルトの名無しさん
2005/11/22(火) 21:44:110586デフォルトの名無しさん
2005/11/23(水) 13:42:08> AHOをアホと読みそうだな。
何か問題でも?
Caesarを「シーザー」ではなく「カエサル」と読むのと同じだろ。
0587デフォルトの名無しさん
2005/11/23(水) 15:24:430588デフォルトの名無しさん
2005/11/24(木) 22:37:02(他のスレあったら教えてください)
仕事で幾つかのフォーマットを読み下すプログラムを
書いてきたんですが、毎回使い捨てで同じような
のを何度も書いている気がしています。
そこでパーサーと言われるプログラムの基礎を勉強しようかな
と考えています。
情報系とか出てないので理論的な知識が無いんだけど、
基礎から書いてある良い本とか良いサイトないですか。
よろしくお願いします。
0589558
2005/11/24(木) 22:39:13というスレがありました。そちらの方が近いようですので
そちらで聞くことにします。
ありがとうございました。
0590デフォルトの名無しさん
2005/11/25(金) 20:38:07http://developers.slashdot.org/developers/05/11/24/2249233.shtml?tid=117&tid=162&tid=164&tid=8
http://developers.slashdot.org/comments.pl?sid=169296&threshold=1&commentsort=0&tid=117&tid=162&tid=164&tid=8&mode=thread&pid=14110686#14110891
GCC is bigger than Jesus!
0591デフォルトの名無しさん
2005/11/25(金) 20:40:350592デフォルトの名無しさん
2005/11/25(金) 20:49:10http://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.
0593デフォルトの名無しさん
2005/11/25(金) 20:52:100594デフォルトの名無しさん
2005/11/25(金) 21:45:16と言っているのです。
0595デフォルトの名無しさん
2005/11/25(金) 21:48:240596デフォルトの名無しさん
2005/11/25(金) 21:58:45今は検索にヒットさせるのも1つの商売になってるから
0597デフォルトの名無しさん
2005/11/25(金) 22:08:17そのソース元をフリーにしてください。
0598デフォルトの名無しさん
2005/11/25(金) 23:16:040599デフォルトの名無しさん
2005/11/25(金) 23:19:22だったらソース公開せず技術流出を防ぐ方が大事だとストールマンも反省してるだろう。
バグレポだけで十分。
0600デフォルトの名無しさん
2005/11/25(金) 23:29:55GCCを"open-source software"なんて言ったらrmsが怒るの当たり前じゃん。
GCCは"free software"なんだから。
0601デフォルトの名無しさん
2005/11/25(金) 23:36:280602デフォルトの名無しさん
2005/11/26(土) 00:06:21>だったらソース公開せず技術流出を防ぐ方が大事だとストールマンも反省してるだろう。
君も適当な事言うね。
ストールマンはOpensourceよりももっとフリー(speech)にしたがってるんだよ。
言っておくけど>>594は大嘘ついてるよ。
0603デフォルトの名無しさん
2005/11/26(土) 00:33:40大嘘っていうかネタだろう。
・・・ネタだよな? 本気で言ってたりしないよな、このスレ読んでる奴が。
そうだろう? そういってくれ、たq304ty e4gjkhz)'#W+)(YQW#NO CARRIER
0604デフォルトの名無しさん
2005/11/26(土) 00:47:590605デフォルトの名無しさん
2005/11/26(土) 00:57:000606デフォルトの名無しさん
2005/11/26(土) 01:24:31>結局オプソにしても一部の人間がメンテするのは同じ。状況は変わらない。
>だったらソース公開せず技術流出を防ぐ方が大事だとストールマンも反省してるだろう。
>バグレポだけで十分。
バグレポだけ十分だと?
ふざけんな! 俺はメンテしたいんだ! ソースよこせ!
0607デフォルトの名無しさん
2005/11/26(土) 03:11:14ってことだろ多分。
0608デフォルトの名無しさん
2005/11/26(土) 07:16:400609デフォルトの名無しさん
2005/11/26(土) 07:18:540610デフォルトの名無しさん
2005/11/26(土) 10:13:380611デフォルトの名無しさん
2005/11/26(土) 17:09:58>Illinois Open Source License, an OSI-approved license.
http://llvm.cs.uiuc.edu/releases/
ライセンスが違うものがGCCに入るの?
あくまでプラグインっていう形に留まるんじゃ。
0612デフォルトの名無しさん
2005/11/26(土) 17:58:50ライセンス変更とかの話もちらほらあるみたいだけど,英語に堪能でないので
議論の流れがよく分からない。
0613デフォルトの名無しさん
2005/11/26(土) 20:45:02お前以外の命よりは尊いだろうが、お前の命と金なら、お前の命の方が
尊いだろう。死んだら終わりジャン。分かったような口を聞いてんじゃネーヨ。
0614デフォルトの名無しさん
2005/11/26(土) 20:54:18人は死んだら終わり。だが金は死なない。だから金は尊い。
0615デフォルトの名無しさん
2005/11/26(土) 22:33:300616デフォルトの名無しさん
2005/11/26(土) 22:48:19腐乱物体の処理費用を発生するからな
0617デフォルトの名無しさん
2005/11/26(土) 22:55:330618デフォルトの名無しさん
2005/11/26(土) 22:58:07fedora core 3のgccでもコンパイルできるようにしたいのです。
VC.NETは、
#ifdef WIN32
で検出できるのですが、fedora core 3のgccが検出できなくて困っています。
#ifdef ????
の????に何を書けば良いでしょうか?
よろしく。
0619デフォルトの名無しさん
2005/11/26(土) 23:06:06linuxは_linux_だったかも
0620デフォルトの名無しさん
2005/11/26(土) 23:11:43MSVCの判定は
#if defined (_MSC_VER)
gccの判定は
#if defined (__GNUC__)
というのだろうな
0621デフォルトの名無しさん
2005/11/26(土) 23:21:19__GNUC__
ですか。試してみます。 実は、_GNUC_ は試してみたのですが、だめでした。
_linux_も検出できませんでした。
アンダースコアを二つつなげるのがミソなんですね。
ありがとうございました。
0622デフォルトの名無しさん
2005/11/27(日) 10:34:020623デフォルトの名無しさん
2005/11/27(日) 11:25:150624デフォルトの名無しさん
2005/11/27(日) 11:31:350625デフォルトの名無しさん
2005/11/27(日) 12:08:02実装が定義してるマクロの話をしてるんだろ?
0626デフォルトの名無しさん
2005/11/27(日) 13:40:00このへん
ftp://gcc.gnu.org:/pub/gcc/snapshots
思う存分人柱してくれ。
0627デフォルトの名無しさん
2005/11/27(日) 18:07:37ミラー使いナヨ
0628デフォルトの名無しさん
2005/11/28(月) 12:23:21まあリポジトリから直接取ってくりゃいいことですが。
0629デフォルトの名無しさん
2005/12/06(火) 15:21:240630デフォルトの名無しさん
2005/12/06(火) 16:17:11timeってtime.h?
0631デフォルトの名無しさん
2005/12/06(火) 18:25:380632デフォルトの名無しさん
2005/12/06(火) 18:30:22#include <sys\time.h>
とか書いたらまず通らないわなww
ヘッダファイルそのものをファイルシステム内で検索してみたら?
0633デフォルトの名無しさん
2005/12/06(火) 19:11:420634デフォルトの名無しさん
2005/12/06(火) 19:17:47time.hのあるディレクトリのパスを-Iで指定
0635デフォルトの名無しさん
2005/12/06(火) 22:09:43ありがとうございます。試してみます!
0636デフォルトの名無しさん
2005/12/07(水) 23:22:00gcc4.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はちゃんとやってます。
0638デフォルトの名無しさん
2005/12/07(水) 23:52:44プラットフォームを書きなされ。
すくなくとも、標準CやPOSIXにはsincosf()なんてないぞ。
0639デフォルトの名無しさん
2005/12/08(木) 00:11:23math.hインクルードしてる?
0641デフォルトの名無しさん
2005/12/08(木) 00:49:46FedoraCoreならsincosf()はありそうですね。
gcc拡張ではなくてglibc拡張ですよ。
で、gccに-vを付けてどこのmath.hを読んでいるのか確認、そのmath.h
にsincosf()は書かれているのかを確認。
0642636
2005/12/08(木) 01:38:59/usr/includeでgrep -r sincosf *したら、
bits/mathinline.h:350:__NTH (__sincosf (float __x, float *__sinx, float *__cosx))
という結果だったので、強制的に
#include <bits/mathinline.h>
したんですが、まだ警告がでます。
あと、確かにgcc拡張ではなさそうですね。だから、警告が出るんでしょうか?
うーん、よくわからないです。
0643デフォルトの名無しさん
2005/12/08(木) 06:52:010644デフォルトの名無しさん
2005/12/08(木) 08:06:01そんな古いの使ってられっかヴォケが。
0645デフォルトの名無しさん
2005/12/08(木) 08:12:33「へへへ……ラップはもうビリビリだぜ、あとはフタだけだ」
「いやぁ! だめ、フタを開けないで…!」
「ひゃっはあ! なんて嫌らしいノンフライ面だ!」
「おいおい、スープの素が2袋もあるぜぇ、こいつ誘ってんじゃねえのか?」
「そ、そんなんじゃありません…!」
「『食べる直前に入れてください』だぁ? 待ちきれねえ、今すぐ入れてやるぜ!」
「や、やめてー! ま、まだお湯も沸ききってないのに…!」
「うはぁ、すっげえ、冷えてる油とかやくでグチャグチャだぜ…たまんねえ!」
「そーれ、お次はお湯だ! 中にたっぷり入れてやる!」
「あああ! ぬ、ぬるい…! ……て、れてえ!」
「聞こえねえなあ、はっきりいえよオラッ!」
「せ、線まで! きちんと線まで入れてくださいぃいぃ!!」
「残念だったなあ、俺は1センチ残す派なんだよぉ! ははは!」
0646デフォルトの名無しさん
2005/12/08(木) 08:58:030647デフォルトの名無しさん
2005/12/08(木) 09:11:58じゃあてめーで解決しろやヴォケが。
0648デフォルトの名無しさん
2005/12/08(木) 09:17:13古いって何が古いんです?
0649636
2005/12/08(木) 13:39:15>>646
それをやっても、
hoge.c:41: 警告: implicit declaration of function 懼sincosf懼
この警告がでちゃいます。
なんでか知らないんですが、FC4のヘッダーには宣言がないっぽいです。
ちなみに、x86のFPUにはsincosの命令があるから使ってみようかな
という理由なんですが。
0650646
2005/12/08(木) 14:03:22inlineしたけりゃ、3.xを使えと書いただろ。
4.x使いたきゃ自分でasm文書け。
mathinline.h見れば簡単に書けるようになる。
0651デフォルトの名無しさん
2005/12/08(木) 16:24:05>しかし、gc 4.xでは
>(n*10)/10 != n
>という条件は、どうやら 10/10 を先に計算して最適化して消してしまうらしい。
0652デフォルトの名無しさん
2005/12/08(木) 17:02:00整数のオーバーフローチェックとか
実数の桁落ちチェックですか。
0653デフォルトの名無しさん
2005/12/08(木) 17:29:56んなこたぁーない。
何か変な最適化オプション指定してんじゃないの?
0654デフォルトの名無しさん
2005/12/08(木) 19:57:09gcc 3.3.2なんですが、最適化フラグに-O4とセットして
コンパイルしたのですが、問題なくコンパイルできました。
でも、最適化フラグはO3までって書いてあります。
O4でなぜ、何もエラーなくコンパイル出来たのでしょうか?
0655デフォルトの名無しさん
2005/12/08(木) 19:58:580656デフォルトの名無しさん
2005/12/08(木) 20:25:59gccはお前のことが好きなんだよ。
0657デフォルトの名無しさん
2005/12/08(木) 20:41:54ドキソゾン
ドキュソゾン ←たぶんこれ
0658654
2005/12/08(木) 21:11:43マジですか!
俺、ついにプログラムにまで惚れられるようになったのか。
このまま頑張ればいつか二次元の女の子にも好かれる日がきますかね?
で、O3とO4のバイナリの実行スピードを調べたんですけれど、ほとんど変わらないです。
最適化フラグで間違ってO3以上が指定されると、
エラーも出さず自動的にO3がセットされると考えて良いのでしょうか?
0659デフォルトの名無しさん
2005/12/08(木) 21:28:18マジですか!
0660デフォルトの名無しさん
2005/12/08(木) 22:56:58ねたもと ttp://www.rubyist.net/~matz/20051207.html#p01
ということでオーバーフローチェックですな。
>>653
定数式の畳み込みなんてのは基本ですからな、
まあ当然の結果でしょう。
ちょいと試してみたが、-O0でもきれいに消してくれるな。
これはさすがにやりすぎのような…
0661デフォルトの名無しさん
2005/12/08(木) 23:24:13そこまでひどいと、バグですな。今まで動いていたプログラムが動かなく
なる。
0662デフォルトの名無しさん
2005/12/08(木) 23:34:240663デフォルトの名無しさん
2005/12/08(木) 23:39:13いや、意味が変わってしまう時点でどこまで酷かろうがバグなんですが。
0664デフォルトの名無しさん
2005/12/08(木) 23:48:46符号付き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では試してみて。
0665デフォルトの名無しさん
2005/12/08(木) 23:53:570666636
2005/12/09(金) 00:05:32なにか勘違いをされてるようですが、gcc3.2でもちゃんと警告は出ますよ。
hoge.c:41: warning: implicit declaration of function `sincosf'
0667デフォルトの名無しさん
2005/12/09(金) 00:08:51なにを弾くんだ?
乗算してるところ全部?
0668デフォルトの名無しさん
2005/12/09(金) 00:40:49sincosfのマニュアルページに、使うためにはどうしたらいいかとか書
いてないかな?
0669デフォルトの名無しさん
2005/12/09(金) 01:25:380670デフォルトの名無しさん
2005/12/09(金) 07:09:28ここ。
GCC は GNU Compiler Collection の略で、g++ も含まれます。
0671デフォルトの名無しさん
2005/12/09(金) 08:48:023.2とは古いね。
0672デフォルトの名無しさん
2005/12/09(金) 08:53:20>(n*10)/10 != n
正直、こんな糞なオーバーフローチェック書く奴の頭が疑問。
0673デフォルトの名無しさん
2005/12/09(金) 13:21:500674デフォルトの名無しさん
2005/12/09(金) 13:37:53n > 2147483648 / 10 こんな感じで割っとけばいいんじゃない
nが負だった場合を考えるともう一個書かなくちゃいけないのかな
0675デフォルトの名無しさん
2005/12/09(金) 13:40:280676デフォルトの名無しさん
2005/12/09(金) 13:43:190677デフォルトの名無しさん
2005/12/09(金) 13:45:57Cの規格上このコード(n*10)/10 != nがバグなんだが
0678デフォルトの名無しさん
2005/12/09(金) 13:49:16gcc -v
>>675
規格的には未定義だから。
0681デフォルトの名無しさん
2005/12/09(金) 14:15:14ポインターのアライメントをチェックするときに、
ポインターを整数に変換して、よくこんなコードを書くよ。
以下は、ポインターを、指定した境界に合わせるコードだけど、
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;
}
0682デフォルトの名無しさん
2005/12/09(金) 14:23:21引数とらずに4,8,16,32あたりの個別の専用マクロ作りなよ
0683デフォルトの名無しさん
2005/12/09(金) 14:25:410684デフォルトの名無しさん
2005/12/09(金) 14:27:09>>681のがどんなコードに落ちるか試したくなった。
漏れのオススメは (xxx) & -8 とかだが可搬性の罠に陥る罠。
0685デフォルトの名無しさん
2005/12/09(金) 14:42:34roundingかよ!
0686デフォルトの名無しさん
2005/12/09(金) 14:47:10>ふつー & で書かないか?
某CPUだと>> <<のが速かったな。
0687681
2005/12/09(金) 14:53:30それだと、アドレスの小さい方にアライメントされるから
あーやってしてる。
アドレスが小さくなると前の領域を破壊したり、確保されて
ない可能性があるから。
>>682
if文があるんで、マクロにするには気が引ける。
0688デフォルトの名無しさん
2005/12/09(金) 14:57:21演算即値が指定できないプロセッサ?
x86 m68k mips arm だと即値ANDの方が速いような希ガスのだけど
詳しく教えて呉呉
0689デフォルトの名無しさん
2005/12/09(金) 14:59:24あんたのコードでも小さい方にアライメントしてからboundaryを足してるじゃんw
0690デフォルトの名無しさん
2005/12/09(金) 15:00:20実際には (((xxx) + 7) & -8) とかな。
昨今のプロセッサだと条件判断を入れない方がスマートだと思うが如何?
GCCネタから脱線してるが気にするな。
0691デフォルトの名無しさん
2005/12/09(金) 15:06:24それかっこいい
ところで>>681のは除算を先にやってるから
期待どおりの結果が得られるのは当然な気もするけど
0692デフォルトの名無しさん
2005/12/09(金) 15:16:530693デフォルトの名無しさん
2005/12/09(金) 15:18:560694681
2005/12/09(金) 15:22:09えーと、結果的に小さくなる事はないんですが...
if (((unsigned int)pointer) % boundary) {
↑ここで、既にアライメントされている時はなにもしない。
return (void *)((((unsigned int)pointer) / boundary) * boundary + boundary);
↑これは、いったん端数を切り揃えてから、boundaryを足す、
つまり、次の境界に移動する。
}
>>690
それ、いただきます。ヽ(´▽`)ノ
0695デフォルトの名無しさん
2005/12/09(金) 16:11:24そもそも、あんたが小さい方に云々言い出したのだよ(>687)。
で、あんたのコードも同じことをやっていると指摘したわけだ(>689)。
つまり、あんたの書いた「割ってから掛ける」のも「論理積でマスクする」のもおんなじこと。
だから論理積でマスクした場合も(既にアライメントされているときは条件で除外しているなら)
あんたのコードと同じようにboundaryを足すだけでいい。
まぁ、>690のように条件判断さえ要らないわけだが。
ちなみに、あんた流に割って掛けるならば、
return (((unsigned) pointer + (boundary - 1)) / boundary) * boundary;
でいいのだよ。
0696デフォルトの名無しさん
2005/12/09(金) 16:20:380697681
2005/12/09(金) 16:35:49ああ、スマソ...orz
何も考えずにレスしてたよ。
今にして思えば、なんでif使ってたんだろうなと...
自分が馬鹿なことは良くわかりました。ありがとうございました。
もう、スルーしてください。
0698デフォルトの名無しさん
2005/12/09(金) 22:00:550699デフォルトの名無しさん
2005/12/15(木) 00:43:46この時点でダメだろ。
ふつー ((uintptr_t)pointer) だ。
0700デフォルトの名無しさん
2005/12/15(木) 06:29:01何か適当な名前にtypedefするのが普通じゃないか。
0701デフォルトの名無しさん
2005/12/15(木) 10:14:49typedefしても使えないものは使えないだろ。
環境依存なコードはifdefしか選択肢がない。
0702デフォルトの名無しさん
2005/12/15(木) 10:17:010703デフォルトの名無しさん
2005/12/15(木) 10:20:01ないやつのために別の名前にするなんてナンセンス。
0704デフォルトの名無しさん
2005/12/15(木) 10:36:35>>700は別にナンセンスじゃないだろう。
自前で定義する物に、システム標準と同じ名前を使用するのは
あまりいい事でない気がするが。
まぁ、uintptr_tぐらいならどうでもいい事だが。
0705デフォルトの名無しさん
2005/12/15(木) 11:08:440706デフォルトの名無しさん
2005/12/15(木) 11:35:31(該当スレあれば誘導おながいします。)
今Dual構成のマシンを使ってて、あるプログラムを
指定のCPUで動作させたいのですが、Win32で言う
「SetThreadAffinityMask」みたいな関数ってLinuxに
ありますか?
で、恥ずかしながら、gccってLinux(UNIX?)付属の
標準のコンパイラと思っててOK?
Linuxもgccもどっちも初めてなもんで・・・orz。
0707デフォルトの名無しさん
2005/12/15(木) 12:14:59>(該当スレあれば誘導おながいします。)
鼬害。
犬板へどうぞ。
>で、恥ずかしながら、gccってLinux(UNIX?)付属の標準のコンパイラと思っててOK?
バンドルされていますが、標準ではありません。
0708706
2005/12/15(木) 12:53:12>犬板
どこですか?
>バンドルされていますが、標準ではありません。
どもありがとうございます。m(__)m
0709デフォルトの名無しさん
2005/12/15(木) 13:00:24ローマ字仮名変換でlinuxと打って味噌。
まぁ、板違いというほどでもないからUnixプログラミングスレで聞いてみたら?
#あ、「Win32で言う……」ではなく具体的に書いたほうがいいと思う。
http://pc8.2ch.net/test/read.cgi/tech/1127373405/
0711デフォルトの名無しさん
2005/12/15(木) 16:47:050712デフォルトの名無しさん
2005/12/17(土) 02:18:15ワロス
0713デフォルトの名無しさん
2005/12/20(火) 16:34:07-((unsigned int)(addr)%align))
0714デフォルトの名無しさん
2006/01/01(日) 00:34:020715デフォルトの名無しさん
2006/01/03(火) 23:43:09ttp://savannah.gnu.org/images/savannah.theme/floating.png
0716デフォルトの名無しさん
2006/01/05(木) 03:57:16GCCでビルドした、GPLなライブラリとは一切リンクしていない生成物は、
GPLにする必要ないよな?
GPLなグラフィックツールで作った画像と同じ扱いだよな?
0717デフォルトの名無しさん
2006/01/05(木) 04:34:34ない。安心すれ。
0718デフォルトの名無しさん
2006/01/05(木) 08:36:35問題ない具体例: FreeBSDはGPLになっていない。
0719デフォルトの名無しさん
2006/01/05(木) 11:47:25そのての判例ってあるんかね?
境界がグレー過ぎるし、GPL規約えげつない。
0720デフォルトの名無しさん
2006/01/05(木) 11:55:13GPLがえげつないって?
著作権法のほうがえげつないだろ。
何の根拠も無く独占の権利が90年以上続くって、アフォかと。
0721デフォルトの名無しさん
2006/01/05(木) 12:17:09http://leaf.aquaplus.co.jp/xvid.html
0722デフォルトの名無しさん
2006/01/05(木) 13:38:01>境界がグレー過ぎるし
Linux のドライバーの件とかね。
0723デフォルトの名無しさん
2006/01/05(木) 15:54:12緩やかなライセンスなら解釈で逃げられるんだろうけど。
0724デフォルトの名無しさん
2006/01/05(木) 16:30:10& で書いてもアセンブラの>>,<<に落ちるときがある
特にソレを直後に配列のindex等に使うとき
0725デフォルトの名無しさん
2006/01/05(木) 20:25:51そうでないのを分けてなかった?
0726デフォルトの名無しさん
2006/01/05(木) 20:49:52> http://leaf.aquaplus.co.jp/xvid.html
少し時間かかったけど公開したんだね。まあいさぎいいといって良いかな。
0727デフォルトの名無しさん
2006/01/05(木) 21:24:16GPLv3は更に逃がさない方向で改正を考えてる模様。
GPLはcopyleft実現の手段。社会体制自体違うんだから、
無理に回避しようとかしないほうが身のため。
0728デフォルトの名無しさん
2006/01/05(木) 21:44:14掛け値なし泥棒だろ
0729デフォルトの名無しさん
2006/01/05(木) 21:53:53そのうちGNUのmathライブラリ使ってるだけでも
ソースくれくれいわれそうだな
0730デフォルトの名無しさん
2006/01/05(木) 21:59:360731デフォルトの名無しさん
2006/01/05(木) 22:23:50バイナリをもらった時だけ、ソースくれくれするんだお ><
0732デフォルトの名無しさん
2006/01/05(木) 22:34:31最初からGPLでソース公開してれば無問題
それがGPLクオリティ
0733デフォルトの名無しさん
2006/01/05(木) 23:01:20俺は思ってるよ
0734デフォルトの名無しさん
2006/01/05(木) 23:13:300735デフォルトの名無しさん
2006/01/05(木) 23:20:59EXPORT_SYMBOL/EXPORT_SYMBOL_GPLのことか?
GPL付きのは仕様が変わる可能性があるので、
そういう場合に自由に直せるようにソース晒しとけつー事だったような。
0736デフォルトの名無しさん
2006/01/06(金) 00:01:55超〜簡単じゃん。
0737デフォルトの名無しさん
2006/01/06(金) 00:25:530738デフォルトの名無しさん
2006/01/06(金) 00:35:260739デフォルトの名無しさん
2006/01/06(金) 00:36:230740デフォルトの名無しさん
2006/01/06(金) 01:01:290741デフォルトの名無しさん
2006/01/06(金) 01:20:510742デフォルトの名無しさん
2006/01/06(金) 01:24:190743デフォルトの名無しさん
2006/01/06(金) 01:25:480744デフォルトの名無しさん
2006/01/06(金) 01:33:420745デフォルトの名無しさん
2006/01/06(金) 01:37:060746デフォルトの名無しさん
2006/01/06(金) 02:42:460747デフォルトの名無しさん
2006/01/06(金) 03:44:590748名無し募集中。。。
2006/01/06(金) 04:11:050749デフォルトの名無しさん
2006/01/06(金) 07:28:45それが普通。
GPL を批判してる奴らは頭おかしいよ。ソースを公開したくなければ
GPL ライセンスのソフトを使わなければいい。嫌なら使わないなんて
小学生でも考えれば分かることだ。
0750デフォルトの名無しさん
2006/01/06(金) 07:34:24むしろ GPL の在り方に対する批判が殆どだと思うが。
0751デフォルトの名無しさん
2006/01/06(金) 08:19:180752デフォルトの名無しさん
2006/01/06(金) 08:42:580753デフォルトの名無しさん
2006/01/06(金) 09:24:180754デフォルトの名無しさん
2006/01/06(金) 10:33:39gcc の asm においてイミディエイトは $12345 見たいに書きますよね?
asm ("mov $123, %%eax");
asm ("mov 123, %%eax");
この両者は何が違うのでしょうか??
0755デフォルトの名無しさん
2006/01/06(金) 11:44:25後出しで訴えられたら回避不能
ライセンス調べればわかるGPLなんぞよりもはるかに悪質だ
0756デフォルトの名無しさん
2006/01/06(金) 11:50:090757デフォルトの名無しさん
2006/01/06(金) 13:37:25Non-GPLなライセンスでは公開できなくなるわけで。
商用利用してもらうことは難しくなるし、そもそもどうしてもBSDLで公開したいという
原著作者の意向は果たせない。「自由」では無くなるわけだ。
まあ、同じことはGPLな人が言う、フリーソフトがプロプライエタリなソフトウェアに使われた場合にも
起こるわけだけど。
0758デフォルトの名無しさん
2006/01/06(金) 13:40:430759デフォルトの名無しさん
2006/01/06(金) 13:54:09あと、GCCに付属のスタートアップはGPLの例外条項の範疇だから安心汁。
詳しくは「GPL "例外条項"」ググれ。
0760デフォルトの名無しさん
2006/01/06(金) 14:06:24その手の揉め事がトラウマになって生まれたらしいからね。
|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は問題の部分を一から書き直す羽目になった。
|この苦い経験から、口約束ではないきちんとした契約で、ソースが未来永劫
|誰でも自由に利用できるということを保証するという発想が生まれてきた。
0761デフォルトの名無しさん
2006/01/06(金) 14:10:110762デフォルトの名無しさん
2006/01/06(金) 14:24:46gccじゃなくてx86アセンブラの質問ですからなあ。
>>754
mov imm,reg
mov mem,reg
0763デフォルトの名無しさん
2006/01/06(金) 18:12:34asm ("mov 123, %%eax");
って書くと123番地を読みに行ってたのか!
どおりでぶっ飛ぶわけだよ orz
いままで masm と Visual C++ のインラインアセンブラ
ばかり使ってきたから、オペランドの順序とか
clobber を明示的に指定しないとダメだったりとか、
もんげ〜苦労してる。
0764デフォルトの名無しさん
2006/01/06(金) 18:13:330765デフォルトの名無しさん
2006/01/06(金) 18:26:43gasのinfo嫁
0766デフォルトの名無しさん
2006/01/06(金) 20:19:12http://www.cqpub.co.jp/interface/default.asp
2006年2月号
0767デフォルトの名無しさん
2006/01/06(金) 23:53:320768デフォルトの名無しさん
2006/01/07(土) 00:02:060769デフォルトの名無しさん
2006/01/07(土) 00:28:330770デフォルトの名無しさん
2006/01/07(土) 00:52:13ライブラリによる。
つーか上でGPLの話が色々出てるけど、
GCCでコンパイルする事によってGPLが感染するとかは一切無いぞ。
GPLに限らずだけど、出来るバイナリにとってのソースが問題なわけで、
GCC自体はライセンス問題とはあんま関係無い。
プロプライエタリなソフトをGCCでコンパイルしててもそれ自体は何の問題もない。
includeはちゃんと確認しておこうな
0771デフォルトの名無しさん
2006/01/07(土) 01:01:390772デフォルトの名無しさん
2006/01/07(土) 02:12:460773デフォルトの名無しさん
2006/01/07(土) 12:07:520774デフォルトの名無しさん
2006/01/08(日) 10:32:460775デフォルトの名無しさん
2006/01/08(日) 10:44:09独占的じゃだめなの?
0776デフォルトの名無しさん
2006/01/08(日) 11:15:010777デフォルトの名無しさん
2006/01/08(日) 11:16:37カタカナ語は何でも許さない派?
0778デフォルトの名無しさん
2006/01/08(日) 16:12:27英語がよく理解できないので、何がネックになってるのか読み取れなかったけど。
0779デフォルトの名無しさん
2006/01/10(火) 07:48:380780デフォルトの名無しさん
2006/01/10(火) 11:59:380781デフォルトの名無しさん
2006/01/14(土) 20:46:24類似のものって?
0782デフォルトの名無しさん
2006/02/01(水) 20:37:43gccの最適化で組み込み関数のインライン展開ってあるよな?
その展開されるコードはやっぱGPLなんかな?
だとするとライブラリだけじゃなくて最適化オプションにも
気を使う必要がでてくることに。。。
まぁ、strcpyだとかmemcmpだとかの短いコードだと
誰が書いても同じ様なコードに落ち着くから
権利主張される事はないと思うが。
0783デフォルトの名無しさん
2006/02/01(水) 20:42:440784デフォルトの名無しさん
2006/02/01(水) 20:47:40> Microsoft Visual C++(あるいはVisual Basic)を使ったWindowsアプリケーションを書いているのですが、
> これをGPLの下で公開する予定です。
> GPLは、私のプログラムをVisual C++(あるいはVisual Basic)のランタイムライブラリと
> ダイナミックリンクするのを許可していますか?
> はい、なぜならランタイムライブラリは通常あなたがお使いのコンパイラあるいはインタープリタに付随するからです。
の逆パターンだな。問題無いよ。
0785デフォルトの名無しさん
2006/02/01(水) 22:11:500786デフォルトの名無しさん
2006/02/01(水) 22:12:180787デフォルトの名無しさん
2006/02/01(水) 23:05:260788デフォルトの名無しさん
2006/02/11(土) 11:11:46バージョンによっては使える?
0789デフォルトの名無しさん
2006/02/12(日) 10:10:52キーワードを定義しているだけで、その文法や効果に定義はない。
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行のコードと重複した宣言子の可能性を排除するが、コンパイラ
固有のコードになるという危険をはらむので、外の環境にコードを持ち出さない、社内開発の
ような場所でのみ使うべきだと思う。しかも、再利用しないコードという、限定された状況で。
あと、個人開発とかかな。
0790デフォルトの名無しさん
2006/02/12(日) 10:24:220791デフォルトの名無しさん
2006/02/12(日) 10:59:25あるけど、これから書くヘッダには使うな。
#ifndef _XXX_H
#define _XXX_H
ヘッダ本体
#endif
と書けばいいだけ。
>>789
長いよ。
0792デフォルトの名無しさん
2006/02/12(日) 11:08:33??
#pragma onceは非標準な解釈を標準に合わせる為にあるんじゃなく、
同じヘッダファイルの2度読みを避ける為の物だよ。
#ifndef __FOO
#define __FOO
ここにヘッダ本体
#endif // __FOO
の代わりだよ。で、>>788はgccで使えなかったっけ?って聞いてて、>>789は
知らんって答えてるだけなんだけど。(pragmaはコンパイラ毎に変わって当たり前
だろ、とも読める)
0793デフォルトの名無しさん
2006/02/12(日) 11:14:29は
> > #ifdef __GNUC__
> > #pragma foo
> > #endif /* __GNUC__ */
> >
> > と記述した方が良い。
に対してだと思われ。
0795789
2006/02/12(日) 11:39:29すいません。言葉足らずだったかな。
> > #ifdef __GNUC__
> > #pragma foo
> > #endif /* __GNUC__ */
は、「gccなら#pragma fooを評価して、それ以外の場合は評価しない」って意味です。
ので、非標準な解釈(#pragma)をさせない為に、標準な#ifdefを用いてます。
「gccと、他のコンパイラで#pragma fooが存在し、しかもコンパイラによって解釈が異なる場合」
を想定しています。
ご理解頂けたでしょうか?
0796デフォルトの名無しさん
2006/02/12(日) 11:47:40いや、解説されなくても>>795の内容は理解はできるんですけどね。
言葉足らずだったかな。たぶん >>790 は
> 、非標準な解釈(#pragma)をさせない為に、標準な#ifdefを用いてます。
って書きたかったのを間違ったんじゃないかなと思います。
十分滑稽だし。
0797デフォルトの名無しさん
2006/02/12(日) 12:01:02それを滑稽と思うのなら何故そう思うのか解説よろしく。
#私にゃ何故滑稽なのか判らんのでな。
0798デフォルトの名無しさん
2006/02/12(日) 12:09:50わざわざ pragma全般まで話を拡大したあげく、
pragma (この文脈では pragma once)を ifdef で括るのを滑稽だと思わない?
0799デフォルトの名無しさん
2006/02/12(日) 12:19:34ISO Cの規格には書いてないよね。
0800デフォルトの名無しさん
2006/02/12(日) 12:57:420801789
2006/02/12(日) 13:21:19なるほど。そういう事ですか。まあ、自分の解説もどきも滑稽ですが、
他人が書いた全く逆の意味のtypoを理解出来るなんて、すごいデスね・・・。
説明が長いのは、#pragma onceがC++共通の機能みたいに考えてるっぽかったので、
#pragmaの意味を>>788が知らないのかな〜と思った為です。
#pragma once自体がgccで機能するかどうかは、試せば一発ですし。
0802デフォルトの名無しさん
2006/02/12(日) 13:32:07> foo.c:1:9: 警告: #pragma once がメインファイルにあります
do_pragma_once()が処理する。
0803デフォルトの名無しさん
2006/02/12(日) 14:12:07>たぶん >>790 は (中略) を間違ったんじゃないかなと思います。
ちげーよ
間違ったんじゃなく、ある仮定を1つ言ってないだけさ
0804デフォルトの名無しさん
2006/02/12(日) 15:06:06>>800
たしかANSIでは、
1.2重のアンダースコアを含む大文字の名前
2.アンダースコアで始まる名前
は、(コンパイラの)実装に予約されてる。
0805デフォルトの名無しさん
2006/02/12(日) 15:33:52手元にない規格票をテレパシーで読んでるのと違うのか?
0806デフォルトの名無しさん
2006/02/12(日) 23:20:17手元に無いよ。テレパシーは無いけど、記憶を辿った。以前の仕事で、コーディング規約に
あったし、Mozillaの移植性ガイドにもある。おまけに、ANSIやらISO関連はググれば出てくるし。
17.4.3.1.2 のGlobal names。ISOも同じ項目番号みたい。
で?ある仮定ってなに?テレパシー無いんで、分からんのよ。
# ここでいってる「テレパシー」ってのは、テレパシー持ってないと分からないような
# 「足りない」レスの事。初心者質問スレで良く見かけるアレ。
0807デフォルトの名無しさん
2006/02/12(日) 23:30:25半日近くググったばかりで悪いがもうちっとがんばれな >ある仮定
0808デフォルトの名無しさん
2006/02/13(月) 00:15:200809デフォルトの名無しさん
2006/02/13(月) 00:23:07うん。ニホンでは、良く「ANSI準拠」と「ISO準拠」って言うよ。C++は普通にANSI/ISOで
標準化されてるしね。Cの時もまずANSIで標準化されたし。
あと、さすがに休日に2chの為に半日もググったり張り付いたりしねって(w
普通出かけるだろ。飯も食うし。
「ある仮定」は、もうどうでもいいや。ただの負け惜しみっぽいし。
>>808
了解。(・∀・)
0810デフォルトの名無しさん
2006/02/13(月) 00:26:05m9(^Д^)プギャー!!
0811デフォルトの名無しさん
2006/02/13(月) 00:51:47同じく
0812デフォルトの名無しさん
2006/02/13(月) 01:04:560813デフォルトの名無しさん
2006/02/13(月) 01:36:010814デフォルトの名無しさん
2006/02/13(月) 01:47:140815デフォルトの名無しさん
2006/02/13(月) 02:59:23君のところではねw
0816デフォルトの名無しさん
2006/02/13(月) 06:28:48コーディング規約なんて、会社毎、プロジェクト毎に異なる可能性のあるもんじゃねーの。
0817デフォルトの名無しさん
2006/02/13(月) 08:43:470818デフォルトの名無しさん
2006/02/13(月) 11:15:230819デフォルトの名無しさん
2006/02/13(月) 11:57:24{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; コーディング規約さえ守ってれば見やすくなる
ヾ;;;ハ ノ .::!lリ;;r゙
`Z;i 〈.,_..,. ノ;;;;;;;;>
,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f そんなふうに考えていた時期が
〜''戈ヽ `二´ r'´:::. `! 俺にもありました
0820デフォルトの名無しさん
2006/02/18(土) 04:04:520821デフォルトの名無しさん
2006/02/18(土) 04:07:27最低インデントをハードタブにするかソフトタブにするかだけはそろえて欲しい。 ごちゃまぜに
すると開けるエディタ環境によってインデントが全然ちがう。
0822デフォルトの名無しさん
2006/02/18(土) 07:31:028タブにして表示すると見た目が4タブという、なんてあほなことするんだSunは。
0823デフォルトの名無しさん
2006/02/18(土) 11:27:02お前ほどアホではないと思うよ。
0824デフォルトの名無しさん
2006/02/18(土) 13:10:47ちげーよ
ある仮定を1つ言ってないだけさ
0825デフォルトの名無しさん
2006/02/18(土) 15:09:330826デフォルトの名無しさん
2006/02/18(土) 20:44:480827デフォルトの名無しさん
2006/02/19(日) 14:42:52どなたか教えていただけないでしょうか?解説してあるサイトでもかまいません。
0828デフォルトの名無しさん
2006/02/20(月) 11:43:13http://gcc.gnu.org/ml/gcc/2006-02/msg00382.html
0829デフォルトの名無しさん
2006/03/01(水) 22:25:330830デフォルトの名無しさん
2006/03/02(木) 09:14:320831デフォルトの名無しさん
2006/03/02(木) 09:22:47GCC 4.1.0 Released
ttp://gcc.gnu.org/ml/gcc/2006-03/msg00045.html
0832デフォルトの名無しさん
2006/03/02(木) 10:42:230833デフォルトの名無しさん
2006/03/02(木) 12:43:070834デフォルトの名無しさん
2006/03/02(木) 13:07:460835デフォルトの名無しさん
2006/03/02(木) 15:55:15gcc4のSRPM作ったので、物好きな方はどうぞ!
ftp://sea-mew.jp/srpms/
/usr/bin/gcc4 や /usr/bin/g++4 とかいう名前で入りますので、gcc(3.x.x)と共存できます。たぶん。
>>832
昔、BorlandのC++で見たけど、クラスのメンバ変数への読み込みや書き込みを、メンバ関数でトラップできる機構じゃなかったっけ?
変数の値域を厳密に決めたりできて便利だった。
0836デフォルトの名無しさん
2006/03/02(木) 18:33:090837デフォルトの名無しさん
2006/03/02(木) 20:41:38却下
データメンバの数に比例する単純作業はお世辞にも見習うべきものじゃない
かつてオブジェクトの数に比例していた単純作業のように選択的な自動化があるべき
0838デフォルトの名無しさん
2006/03/02(木) 21:22:13単純に自動化なら、フィールドに対するGet/Setを挿入する
スクリプトやツールを使うって手もあるけど。
0839デフォルトの名無しさん
2006/03/02(木) 21:28:17MFC のメッセージマップみたいにか? やめてくれー
0840デフォルトの名無しさん
2006/03/02(木) 22:33:500841デフォルトの名無しさん
2006/03/02(木) 22:53:21その意見は一般論としては正しいが、
オブジェクト指向風味でもつきつめると所詮は高級アセンブラなC++では
最終的な実装はユーザに見えるレベルに持ってこざるを得ないから、
836みたいにならざるを得ない。
その意見を通すためには、プログラマが生のC++より一段高いレベルを
触るようにしないと。
0842デフォルトの名無しさん
2006/03/02(木) 23:02:02まあな
ただでさえ「隠れたコード」が気持ち悪〜い「C の拡張」にこれ以上なにかをってのには確かに抵抗はある
そこをガラス張りな雰囲気を壊さずに選択的な自動化をうまく導入して貰いたいわけだが
あのツルピカにそれができそうかどうか、楽観的にも悲観的にも考えられる
0843ヽ(´ー`)ノ ◆.ogCuANUcE
2006/03/02(木) 23:10:58>>837 の言うことはもっともだけど IDE やエディタで自動挿入すればいいわけだし、
機能提供のためならともかく、開発者側の都合で独自仕様を使うのは、かなり抵抗がある。
0844デフォルトの名無しさん
2006/03/02(木) 23:29:050845デフォルトの名無しさん
2006/03/02(木) 23:43:57もっと出来のいい拡張があるならすぐにでも乗り換えるびょ〜ん
0846デフォルトの名無しさん
2006/03/03(金) 12:32:28templateとmember pointerで頑張れば、作れるかな?
一応C++0xに ICF, implicitly-callable function ってのが提案されてはいるのだが。
0847デフォルトの名無しさん
2006/03/03(金) 14:26:31これでよくね?
0848デフォルトの名無しさん
2006/03/03(金) 15:37:13...Dなんて使う気にはなれんが
0849デフォルトの名無しさん
2006/03/03(金) 17:01:120850デフォルトの名無しさん
2006/03/03(金) 22:41:33禿からの伝言です。
つ[デストラクタ]
0851デフォルトの名無しさん
2006/03/03(金) 22:54:160852デフォルトの名無しさん
2006/03/03(金) 22:57:530853デフォルトの名無しさん
2006/03/04(土) 17:57:59レジスタは全て使っていいんでしょうか?
これのレジスタはこの値を保持するのに使われるから勝手に破壊しちゃ
いけないとかありますか?
とりあえずセグメントレジスタはまずそうですが。
OSはWindowsとLinuxを考えていますが、OSによっても変わるんでしょうか。
0854デフォルトの名無しさん
2006/03/04(土) 18:02:38スタックに積んどきゃいいんじゃね?
0855デフォルトの名無しさん
2006/03/04(土) 18:23:37Linux Assembly HOWTO
http://www.linux.org/docs/ldp/howto/Assembly-HOWTO/index.html
gccのinfoもね。
0856デフォルトの名無しさん
2006/03/05(日) 12:33:04http://slashdot.jp/article.pl?sid=06/03/05/0253210&from=rss
0857デフォルトの名無しさん
2006/03/05(日) 16:51:220858デフォルトの名無しさん
2006/03/05(日) 17:42:37例えば、でいいので。どんなものがテストによく使われますか?
0859デフォルトの名無しさん
2006/03/05(日) 18:02:560860デフォルトの名無しさん
2006/03/06(月) 01:20:49もっさもっさわっさわっさもじゃもじゃ沸いて出てくるよw
うーん、簡単なプログラムでしか試してないが最適化
いいんだがオブジェクトでけぇようなきがしてならない
0861デフォルトの名無しさん
2006/03/06(月) 22:02:08ちげーよ
ある仮定を1つ言ってないだけさ
0862デフォルトの名無しさん
2006/03/06(月) 22:09:560863さくら
2006/03/07(火) 00:58:17[email protected]
0864デフォルトの名無しさん
2006/03/07(火) 20:48:150865デフォルトの名無しさん
2006/03/08(水) 08:56:080866デフォルトの名無しさん
2006/03/09(木) 10:47:19inline ではなく関数呼び出し「させる」ように強制する
ことってできますか?
でもそうすると、当該 inline 関数を含むヘッダファイルを
インクルードしているすべてのオブジェクトで
重複してしまうから、リンカが泣く?
0867デフォルトの名無しさん
2006/03/09(木) 11:56:21とか?
0868デフォルトの名無しさん
2006/03/09(木) 11:58:35後半はNO
0869デフォルトの名無しさん
2006/03/09(木) 12:48:05-fnoinline
0870デフォルトの名無しさん
2006/03/09(木) 13:07:33#define inline static
として、コンパイルオプションで
-fno-inline
0871デフォルトの名無しさん
2006/03/09(木) 21:34:22でよくね?
0872デフォルトの名無しさん
2006/03/09(木) 21:59:110873デフォルトの名無しさん
2006/03/09(木) 23:03:280874866
2006/03/09(木) 23:12:200875デフォルトの名無しさん
2006/03/10(金) 03:37:28static staticにならね?
0876デフォルトの名無しさん
2006/03/10(金) 09:11:13あーゆー邪道なやり方じゃなくちゃんとした正攻法があるのにどうかしてるよ
0877デフォルトの名無しさん
2006/03/10(金) 10:12:14g++ に食わせるソースコードの文字コード
(コメント、および文字列リテラル)って、なんでしょうか?
今までは 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 に通そうと思っているんですが、
変換後の文字コードは何にすべきでしょうか?
0878デフォルトの名無しさん
2006/03/10(金) 10:18:460879デフォルトの名無しさん
2006/03/10(金) 10:21:40横着して、というかさっきソース渡されて、
その場にUNIX機がなかったんで、
cygwin の g++ で試してみたら上記のエラーが。
cygwin でのロケールの扱いなんてさっぱり知らないんで、
まじめにUNIX機でロケールいじりつつ試してみます。
0880879
2006/03/10(金) 10:33:04どうみても 0x5c = '\' です。
本当にありがとうございました。
0881デフォルトの名無しさん
2006/03/10(金) 10:57:220882デフォルトの名無しさん
2006/03/10(金) 11:06:48今はiconvを使うようになっているので、
-finput-charset=CHARSET してください。
-fexec-charset=CHARSET
-fwide-exec-charset=CHARSET
もあります。(ただしiconvなしでcompileされると無効になっています)
今時Shift_JISだからどうとか言っている人の方が痛い。
0883デフォルトの名無しさん
2006/03/10(金) 11:19:450884デフォルトの名無しさん
2006/03/10(金) 11:36:16つ[sed -e 's-\(//.*\)$-\1.-']
0885879
2006/03/10(金) 12:46:31駄菓子可視、-finput-charset=cp932 すると
Boost で使えないヘッダ続出。
Boost はコメントに非ASCII使いまくり orz
0886879
2006/03/10(金) 12:51:14http://takagi.in/modules/wordpress/index.php?p=28
同じ症状発見。もう、面倒なのでいっそのこと全部
UTF-8 にコンバートすることにしました。
0887デフォルトの名無しさん
2006/03/10(金) 19:48:55悪いんだけどね。
0888デフォルトの名無しさん
2006/03/10(金) 19:57:540889879
2006/03/10(金) 20:18:060890デフォルトの名無しさん
2006/03/10(金) 20:19:34ライブラリも含めてすべてGPLにすべきだと思うんですがいかがでしょうか?
0891デフォルトの名無しさん
2006/03/10(金) 21:22:03別にGNUマンセーでなく、LGPLの条件がまあまあ具合がいいやという
感じで選んでいる人も沢山いるでしょうよ。
0892デフォルトの名無しさん
2006/03/10(金) 21:30:37そんなことしたらGPLが自滅しちゃうじゃん。
0893デフォルトの名無しさん
2006/03/10(金) 21:59:160894デフォルトの名無しさん
2006/03/10(金) 22:23:040895デフォルトの名無しさん
2006/03/11(土) 10:14:540896デフォルトの名無しさん
2006/03/11(土) 18:33:50LGPLはリトルグレートパートナーリナクス。
0897デフォルトの名無しさん
2006/03/12(日) 07:51:200898デフォルトの名無しさん
2006/03/13(月) 00:43:240899デフォルトの名無しさん
2006/03/13(月) 01:12:330900デフォルトの名無しさん
2006/03/13(月) 08:46:450901デフォルトの名無しさん
2006/03/13(月) 13:08:000902デフォルトの名無しさん
2006/03/13(月) 14:00:410903デフォルトの名無しさん
2006/03/13(月) 14:19:21めんどくさいね。
0904デフォルトの名無しさん
2006/03/13(月) 14:26:170905デフォルトの名無しさん
2006/03/13(月) 14:29:140906デフォルトの名無しさん
2006/03/14(火) 06:33:390907デフォルトの名無しさん
2006/03/14(火) 13:08:590908デフォルトの名無しさん
2006/03/14(火) 13:31:04新しいtemplate構文?なにそれ?
0909デフォルトの名無しさん
2006/03/14(火) 19:20:15#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 >( );
}
こんな感じの構文です
0911ヽ(´ー`)ノ ◆.ogCuANUcE
2006/03/14(火) 19:37:280912デフォルトの名無しさん
2006/03/14(火) 19:53:38#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;
}
0913デフォルトの名無しさん
2006/03/14(火) 21:22:050914デフォルトの名無しさん
2006/03/14(火) 22:03:100915デフォルトの名無しさん
2006/03/14(火) 22:21:18ありがとうございます
>>908の方法でも可能なコンパイラがあったもので
0916デフォルトの名無しさん
2006/03/14(火) 23:18:42translation-unit
declaration-seq
declaration+
block-declaration
function-definition
template-declaration
explicit-instantiation
explicit-specialization ←これ
linkage-specification
namespace-definition
そしてexplicit-specializationはここにしか出てきません。
そのコンパイラは勇み足。
0917http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 20:36:27もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
0918デフォルトの名無しさん
2006/03/18(土) 20:47:32マルチ + スレ違い乙
0919デフォルトの名無しさん
2006/03/19(日) 08:52:45ちげーよ
ある仮定を1つ言ってないだけさ
0920デフォルトの名無しさん
2006/03/19(日) 11:45:17gccで作れ。
0921デフォルトの名無しさん
2006/03/22(水) 13:55:48プロトタイプ宣言がないんだ? __getpgid() ならあるんだが。(ヘッダの中での
#define忘れ?)。しかも man では unistd.h だけの include だけでよさそうに
書いてあるが実際には pid_t を使うので sys/types.h も include する必要が
ある。
0922921
2006/03/22(水) 13:59:47_XOPEN_SOURCE と _XOPEN_SOURCE_EXTENDED を両方 define すれば
いいと書いてあった。(なんでまたこんなことを…)
0923デフォルトの名無しさん
2006/03/22(水) 14:22:56どうでもいいことかもしれんがgccは関係ないぞ。
0924デフォルトの名無しさん
2006/03/23(木) 19:52:35VC では delayimp.lib と /DELAYLOAD が利用できますが、
gcc にも同様のオプションはあるのでしょううか。
環境は MinGW + gcc 3.4.2 です。
0925デフォルトの名無しさん
2006/03/24(金) 00:26:11つ [LoadLibrary]
つ [GetProcAddress]
0926デフォルトの名無しさん
2006/04/08(土) 20:46:47c言語の範囲内でとあるプログラムhoge.cを書きました。ただし、ライブラリ(libhoge.a)にリンクしています。
gcc hoge.c -lhoge
みたいな感じで問題なくコンパイルできました。
ところが、C++で書き換えようとして、中身を変えず、hoge,cをhoge,cppとリネームして、
g++ hoge.cpp -lhoge
としたとたん、コンパイルは出来ますがリンカエラーがでました。
libhoge.aに入っている関数がリンク出来ないといわれてしまいます。
原因は何なのでしょうか?どうしたらいいのでしょうか。何も変わってないはずなのに・・・
0927デフォルトの名無しさん
2006/04/08(土) 20:52:55つ結合指定
0928デフォルトの名無しさん
2006/04/08(土) 20:56:36libhoge.a も g++ でリビルドすればリンクできる。
0929デフォルトの名無しさん
2006/04/08(土) 20:56:58C++では同じ名前でも引き数が違うだけの関数が存在し得る。
このため、実際のコードモジュールでは型を加味した名前で関数を参照することになる。
処がlibhoge.aは今まで通りCの名前で作られているのでリンクできないことになる。
こんなときは、
(hoge.hにlibhoge.a内のエントリ関数の宣言があると仮定して)
extern "C" {
#include "hoge.h"
}
とすればいい。
0930デフォルトの名無しさん
2006/04/08(土) 21:00:50g++ でビルドした libhoge.a を
nm libhoge.a して見比べればなんで怒られるか分かると思う
0931デフォルトの名無しさん
2006/04/08(土) 21:01:40ありがとうございました。名前の変換がCとC++で違うということがあること事態に気づかなかったですよ。3時間も無駄にしてしまった・・・
結局、
extern "C" {
#include "hoge.h"
}
の方法で解決しました。
0932デフォルトの名無しさん
2006/04/08(土) 23:25:43私としては、コンパイラのみほしくて、できればGCCで
時にDOS用EXEを作ったり
時にSHというCPU用のバイナリを作ったりしたいのです。
現状はBCC5.5やSHCというコンパイラを使ってますが、GCCのみでできますか?
0933デフォルトの名無しさん
2006/04/09(日) 00:59:19http://www.mingw.org/
0934デフォルトの名無しさん
2006/04/09(日) 02:18:49それは違うと思うが
>>932
Windowsでやるならやっぱりcygwinがあったほうが良いかと
んで、crosstoolを使えばSH用のgccは簡単に作れる
今のgccがMS-DOS用のバイナリが吐けるのかは知らん
0935デフォルトの名無しさん
2006/04/09(日) 04:07:20解説することが多いから、特に理由がなければCygwinごと
導入したほうが、いろいろ幸せなことが多いとおもわれ。
DOSのバイナリをgccで作れるって話は漏れも聞いたことない。
libbdfがOMFのサポートするとかしないとかでもめてた記憶があるから
現状は無理なんじゃないかなー。
SH用のgccはルネサスあたりが出してたりしないのかな? よく知らんけど。
0936デフォルトの名無しさん
2006/04/09(日) 04:54:34たぶん>>932がわかってないだけだろうけど。
0937デフォルトの名無しさん
2006/04/09(日) 06:30:35http://pc8.2ch.net/test/read.cgi/tech/1126103347/
0938デフォルトの名無しさん
2006/04/09(日) 08:36:08フルだと1GB超えてるんだよね・・・USBに入れるのがちとつらい
0939デフォルトの名無しさん
2006/04/09(日) 08:58:04俺はとりあえずデフォルトでインストール。
その後必ず追加するものは
X, openssh, gcc, boost, vi
あとは好みで。
0940デフォルトの名無しさん
2006/04/09(日) 09:51:33COMファイルは一応作れるっぽい。
EXEはどうだろう。
0941デフォルトの名無しさん
2006/04/09(日) 10:13:210942デフォルトの名無しさん
2006/04/09(日) 10:40:33ライブラリのインターフェースはABIで規定されているので、
バージョンが異なるコンパイラで作成された静的ライブラリを
リンクすることもできると思います。
(ただし、ABI自体が仕様変更された場合は除く。3.2->3.4移行時が該当?)
できるはずですが・・・原因不明でうまくリンクできなかった or
リンク後の動作がおかしくなった経験ってありますか?
参考までに聞かせてください。
0943デフォルトの名無しさん
2006/04/09(日) 10:53:220944デフォルトの名無しさん
2006/04/09(日) 11:07:24それにあと、more, fetchmail, rsync, doxygen, cvs辺りお勧め。
#つーか、事実上自分が入れているのを書いただけだな。
0945デフォルトの名無しさん
2006/04/09(日) 11:07:27これからはじめるところです。
自分でライブラリをユーザーに配布するのですが、それに
先立って、注意点を調べたかったのです。
0946デフォルトの名無しさん
2006/04/09(日) 11:10:00>>944 まぁ漏れはメインで使うと言うよりは
Visual Studio から make 呼び出して
コンパイルしてるだけだからなぁ。
VC++ べったりだとポータビリティのない
コード書いちゃうことが多いから、
とりあえず g++ -Wall してみてる。
0947デフォルトの名無しさん
2006/04/09(日) 11:26:47俺も結局、OR 条件を意図して持ってるコンパイラ全部使うけど
0948デフォルトの名無しさん
2006/04/09(日) 11:28:06> できるはずですが・・・原因不明でうまくリンクできなかった or
>>945
> これからはじめるところです。
(゚Д゚)ハァ?
0949デフォルトの名無しさん
2006/04/09(日) 11:40:02bcc は昔つかってたんだけど、テンプレートの挙動で
不審な点があったので(当時の俺のテンプレートに対する
理解不足から来た勘違いかもしれんが)、使わなくなっちゃった。
あと、俺にとっての最低限のポータビリティは
Linux でコンパイルできるってことなので、
g++ でいいや、って感じで使ってる。
まぁ boost が使えない環境ってのは組み込みでもない限り
考えづらいので、boost にはべったり依存しちゃってるけど。
0950デフォルトの名無しさん
2006/04/09(日) 12:03:00× リンクできなかった orz
○ リンクできなかった ot
0951デフォルトの名無しさん
2006/04/09(日) 16:14:470952デフォルトの名無しさん
2006/04/10(月) 05:42:08-lpthreadをつけてコンパイルされているかどうかを判別するにはどうしたらよいのでしょうか?
0953デフォルトの名無しさん
2006/04/10(月) 05:52:380954デフォルトの名無しさん
2006/04/10(月) 07:00:17-v -pthreadしてcc1の引数で何が#defineされているか調べてみろ。
0955デフォルトの名無しさん
2006/04/10(月) 07:16:28ソースファイルに
#ifdef HOGE
(オプションに-DHOGEがあるときにプリプロセスさせる処理)
#endif /* ifdef HOGE */
#ifndef HOGE
(オプションに-DHOGEがないときにプリプロセスさせる処理)
#endif /* ifndef HOGE */
とか書いてMakefileで
gcc ソースファイル -DHOGE -lpthread
gcc ソースファイル
とかで分けるのはダメでしょうか。
0956デフォルトの名無しさん
2006/04/13(木) 10:27:400957デフォルトの名無しさん
2006/04/13(木) 10:40:10spec いじると、エラーメッセージのフォーマット変えることってできます?
0958デフォルトの名無しさん
2006/04/13(木) 19:16:59specs? のことなら、できない。そもそもspecsは
optionの暗黙的ルールの追加や、排他チェック等を行ってるだけ。
0959デフォルトの名無しさん
2006/04/13(木) 23:56:00誰が見ても構文がわかるよね、ドキュメント無しでいける
あれは不思議だ、可読性とはなんなのかわからなくなる
0960デフォルトの名無しさん
2006/04/14(金) 03:16:48エラーメッセージとかまでいじれるようなものじゃないのか。
あきらめて sed でフィルタ書くわ。
0961デフォルトの名無しさん
2006/04/16(日) 00:38:30ゲームはZOOKEEPERのパクリ
アレンジは悪くないが、声優が全然ダメ
0962デフォルトの名無しさん
2006/04/18(火) 17:59:33SH用GCC->KPIT
http://www.kpitgnutools.com/index-ja.php
0963デフォルトの名無しさん
2006/04/18(火) 20:07:31http://pc8.2ch.net/test/read.cgi/tech/1145357824/l50
0964デフォルトの名無しさん
2006/05/05(金) 08:38:070965デフォルトの名無しさん
2006/05/05(金) 14:45:230966デフォルトの名無しさん
2006/05/09(火) 14:49:030967デフォルトの名無しさん
2006/05/09(火) 15:04:42http://gcc.gnu.org/develop.html#timeline
0968デフォルトの名無しさん
2006/05/16(火) 11:21:04次スレ GCCについて part7
http://pc8.2ch.net/test/read.cgi/tech/1145357824/
0969デフォルトの名無しさん
2006/05/16(火) 12:03:510970デフォルトの名無しさん
2006/05/16(火) 13:04:290971デフォルトの名無しさん
2006/05/16(火) 14:34:58埋めずに落ちると過去ログに残らない
0972デフォルトの名無しさん
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 ',. ', ',',
0973デフォルトの名無しさん
2006/05/16(火) 15:53:420974デフォルトの名無しさん
2006/05/16(火) 23:46:530975デフォルトの名無しさん
2006/05/17(水) 03:12:05どこからそんなデマを仕入れてきたんだい?
0976デフォルトの名無しさん
2006/05/17(水) 08:39:060977デフォルトの名無しさん
2006/05/17(水) 09:17:420978デフォルトの名無しさん
2006/05/17(水) 09:24:46しかし●とモリタポってなんで統合されないのかね。
公式 p2.2ch.net のためにモリタポ買って、
DAT落ちスレのために●買って、なんてやってられん。
0979デフォルトの名無しさん
2006/05/17(水) 10:49:070980デフォルトの名無しさん
2006/05/17(水) 17:49:530981デフォルトの名無しさん
2006/05/17(水) 23:03:460982デフォルトの名無しさん
2006/05/17(水) 23:09:20そのオプションつけたら、嵌まっているプロジェクトがうまく逝きました。
本当にありがとう! > GCC
0983デフォルトの名無しさん
2006/05/17(水) 23:15:51そのオプションつけたら、見つけられないBugをうまく探せました。
本当にありがとう! > GCC
0984デフォルトの名無しさん
2006/05/17(水) 23:49:140985デフォルトの名無しさん
2006/05/17(水) 23:56:51そのオプションつけて仕事してたら、会社を首になりました。
本当にありがとう! > GCC
0986デフォルトの名無しさん
2006/05/18(木) 03:28:370987デフォルトの名無しさん
2006/05/18(木) 12:21:26そのオプションつけて仕事してたら、後輩がバグを量産してくれました。
本当にありがとう! > GCC
0988デフォルトの名無しさん
2006/05/18(木) 12:59:050989デフォルトの名無しさん
2006/05/18(木) 22:07:19そのオプションつけて仕事してたら、コンパイルが終わりません。
本当にありがとう! > GCC
0990デフォルトの名無しさん
2006/05/18(木) 22:14:460991デフォルトの名無しさん
2006/05/18(木) 22:26:450992デフォルトの名無しさん
2006/05/18(木) 22:37:270993デフォルトの名無しさん
2006/05/18(木) 22:41:380994デフォルトの名無しさん
2006/05/18(木) 23:10:590995デフォルトの名無しさん
2006/05/18(木) 23:30:38http://pc8.2ch.net/test/read.cgi/tech/1145357824/l50
0996デフォルトの名無しさん
2006/05/18(木) 23:45:400997デフォルトの名無しさん
2006/05/18(木) 23:56:570998デフォルトの名無しさん
2006/05/18(木) 23:57:100999デフォルトの名無しさん
2006/05/18(木) 23:58:47>>995乙
1000デフォルトの名無しさん
2006/05/18(木) 23:58:5810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。