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

GCCについて part6

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2005/07/12(火) 14:38:43
史上最強かもしれないツール、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
0002デフォルトの名無しさん2005/07/12(火) 14:47:47
宇宙一の開発ツール Delphi !!
0003デフォルトの名無しさん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/
0004デフォルトの名無しさん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/ (ミ   ミ)  |    |
   |    | |     | /      \ |    |
   |    |  )    /   /\   \|       ヽ
   /   ノ | /  ヽ ヽ、_/)  (\    ) ゝ  |
   |  |  | /   /|   / レ   \`ー ' |  |  /
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:41
とりあえず、自作PC板逝け
0007デフォルトの名無しさん2005/07/12(火) 19:54:53
>>6
淫厨ですか?
0008デフォルトの名無しさん2005/07/13(水) 12:48:06
馬鹿者が、俺の周りにはそんなCPU存在しとらん
0009デフォルトの名無しさん2005/07/13(水) 13:09:47
ぶっとび!CPU
0010デフォルトの名無しさん2005/07/14(木) 16:58:29
ううう
0011デフォルトの名無しさん2005/07/15(金) 02:12:43
>>1
>史上最強かもしれないツール、GCC(GNU Compiler Collection)について語るスレ。
あ、前スレに俺が書いたテンプレのメッセージ変えやがった。



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


ってことで燃料投下
ttp://www.nminoru.jp/~nminoru/diary/2005/07.html#2005-07-14
0013デフォルトの名無しさん2005/07/15(金) 02:24:05
res movsbじゃなくてrep movsbだったような気がするけど
0014デフォルトの名無しさん2005/07/15(金) 07:48:15
>>12
>ttp://www.nminoru.jp/~nminoru/diary/2005/07.html#2005-07-14

Intelも必死だな
0015デフォルトの名無しさん2005/07/16(土) 17:15:50
まがいもののCPU使ってる奴はどっかいけよ
0016デフォルトの名無しさん2005/07/16(土) 22:19:02
SPARC, MIPSのみが選ばれたCPUです。
次はAlpha
0017デフォルトの名無しさん2005/07/16(土) 23:02:31
>>16
>>12のサイトではSPARCは最悪の命令セットなんて言われとりますな。
0018デフォルトの名無しさん2005/07/16(土) 23:02:54
GCCは、アーキテクチャを選ばないのだ。


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

0022デフォルトの名無しさん2005/07/17(日) 01:19:20
gcc 4.0.1 がでましたね。
しかし、うちの Athlon64 3000+だと、3.4.3のほうが速いバイナリをはくんだけど、4.0の最適化を実感できた人、います?
0023デフォルトの名無しさん2005/07/17(日) 01:41:33
8bit向けgccぷりーず
0024デフォルトの名無しさん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
0025デフォルトの名無しさん2005/07/17(日) 07:29:46
386には対応していても8086には対応していないくらいだから・・・
16bitはGCC自体が動く環境ではない、とは言っても
クロスコンパイラなら作れそうな気もするけど。
0026デフォルトの名無しさん2005/07/17(日) 09:30:05
>>17
SPARCの魅力は、変態メモリアクセスモードにあります。
RMOはSPARCv9からだけど。PSOは前からあるし。
0027デフォルトの名無しさん2005/07/17(日) 14:17:15
SPARCをこれから使うっていうアホな企業ってあるの?
0028デフォルトの名無しさん2005/07/17(日) 14:24:41
ていうか Z80 のパッチぐらい簡単に作れるだろ。

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

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


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

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

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

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

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

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

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

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

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

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

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





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

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

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








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

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

例を挙げる

// hoge.h
#ifndef hoge_h_INCLUDED
#define hoge_h_INCLUDED

class hoge { };

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

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

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

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

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

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

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

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

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

オライリーとかから、「詳細GCCインターナル」とか出れば買うかも。(w
0173デフォルトの名無しさん2005/08/19(金) 22:15:23
そういう資料はUsing and Porting GCCくらいかの〜
さわりの書いてある本も昔あったような気がするが。
0174デフォルトの名無しさん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).
0175デフォルトの名無しさん2005/08/19(金) 23:38:47
>>174
3.0.4?
0176デフォルトの名無しさん2005/08/19(金) 23:50:22
>>174
3年半ほど前にリリースされてますが。
01771672005/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.
なんて事を言われてるけど.....
0178デフォルトの名無しさん2005/08/30(火) 14:40:34
>>168
GCC4.0だと-O最適化だけでGCC3.4の-O3に匹敵する速度向上が得られるような事が書いてあったが・・・あれホントなのかな。
0179デフォルトの名無しさん2005/08/30(火) 19:28:16
>>178
特定条件下に限っては事実でしょ。
全般的にはいまいち感が漂うけど、土台を切り替えた直後でこれだけ速ければ上等だと思うけど。
それよりも strict-aliasing で死屍累々なことが大問題(^^;
0180デフォルトの名無しさん2005/08/30(火) 21:50:01
ちゅうか、gcc4.0 + -mtune=pentium3でemacsがコンパイル通らんが……
ダンプでこける。
もちろん、-mtune付けなければ問題ないけど。emacsが対応してないだけだろうな。
0181デフォルトの名無しさん2005/08/30(火) 22:51:04
>>180
-mtune ではなくて -march ではどうか?
てゆーかさ、今どきの流行は -mtune でなくて -march でそ。
0182デフォルトの名無しさん2005/08/30(火) 23:05:09
流行りて(w
目的違うやん
0183デフォルトの名無しさん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でも発生するのか?
01841802005/08/30(火) 23:24:34
>>181
あゃ、間違えたぞ。
-march=pentium3だった。
ちなみに、gcc3系だと-march=pentium3でも無問題。
01851802005/08/30(火) 23:43:32
>>184
おぅ?同じなの?
確かにどっちでも失敗する。4.0.1でも駄目。
0186デフォルトの名無しさん2005/08/31(水) 00:25:10
temacsのビルドには成功するけど、それ動かすところで落ちるパターン?
0187デフォルトの名無しさん2005/08/31(水) 00:25:12
-fno-strict-aliasing とか
0188デフォルトの名無しさん2005/08/31(水) 01:17:42
>>183
> どうやら同じ意味みたいだね。-mtune、-march

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

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

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

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

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

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


ありがとう stallman!(涙)
0207デフォルトの名無しさん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
0208デフォルトの名無しさん2005/09/07(水) 03:54:04
I/F誌に連載されてたののまとめかな?
だったら参考書として手元に置いときたいんでホスィ
0209デフォルトの名無しさん2005/09/07(水) 23:52:10
皆はgccのソースとか普通に読める人達?
俺はかなりストレスたまってダメだったんだけど
>170さん
コメントみっちりどこにのってたの?
これは返答にかなりの工数が必要ですね、ってんで覚えてたら是非
0210デフォルトの名無しさん2005/09/08(木) 11:42:25
>>209
いや、コメントなんて不確かなものではなくて
コードがみっちりと書いてあった
0211デフォルトの名無しさん2005/09/08(木) 12:02:50
gcc-2.xの頃、ソース読んだけど、
flow.c, gcse.c辺りの最適化の部分はコメントが結構多いよ。
けど、コードがすっきりしてないので解読しずらい。
学生の頃かなりコードは読んだけれど、解読が一番疲れたね。

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

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

いや、凶悪な最適化をするので有名なコンパイラで、おもちゃコンパイラじゃないよ。
0215デフォルトの名無しさん2005/09/08(木) 17:48:39
GCCをおもちゃにして遊んでる奴が一番最強。
0216デフォルトの名無しさん2005/09/08(木) 19:38:17
>>214
8bit 時代の最適化と 32bit/64bit の最適化、どっちが複雑か考えるまでもない。
比較の対象外。
0217デフォルトの名無しさん2005/09/08(木) 19:52:41
確かに最適化の難しさは違うよなあ。
アラインメントなんか気にしなくていいし、パイプライン気にしなくていいからジャンプし放題。
レジスタでもメモリでも速度余り違わないからレジスタ割付なんて考えなくていいし、ペアリングもない。
0218デフォルトの名無しさん2005/09/08(木) 19:55:55
So what?
0219デフォルトの名無しさん2005/09/08(木) 20:56:20
凶悪な最適化って言うと、コードの意味が変わるやつか?
0220デフォルトの名無しさん2005/09/08(木) 22:02:11
volatile char *p;
void wait(void)
{
volatile char *tmp = p;
while(p != tmp) ;
}
↑
こんなんで volatile を無視しやがった〜とか騒ぎ出すアフォが絡んでるケースが大半を占める
0221デフォルトの名無しさん2005/09/08(木) 23:45:50
>>219
8bitCPUの典型的な最適化は、自己書き換えだね。
#ROM化が大変なんだけど。
0222デフォルトの名無しさん2005/09/09(金) 00:15:50
何が?
命令書き換えなんてどーせアセンブラで書いてるだろ
それとも動作保証のない禁止パターンでも使ってたのか
俺の知る限り 8bit には diagnose の類はなかったぜ
0223デフォルトの名無しさん2005/09/09(金) 00:17:24
>>222
だからROM化が大変という話でしょ
RAMの上で動くなら問題ないけどさ
0224デフォルトの名無しさん2005/09/09(金) 00:23:52
だったら「大変」がますます意味わかんねー
0225デフォルトの名無しさん2005/09/09(金) 01:46:01
>>217
「ペアリング」っていう言葉が出てくるあたり、知識がPentiumで止まってるっぽい。
0226デフォルトの名無しさん2005/09/09(金) 03:20:52
8bitで止まってる奴よりはましな気がするが。
0227デフォルトの名無しさん2005/09/09(金) 04:55:35
対等な条件ではないものを持ち出してきてる時点で、脳が沸いてるとしか思えんな。
0228デフォルトの名無しさん2005/09/09(金) 14:10:51
>>224
ROMからRAMに転送させるのが大変、とか。
その方法探す(マニュアル読む)のが大変、とか。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gccにそういうオプションあってもいいのにな
0271名無しさん@そうだ選挙に行こう2005/09/11(日) 07:32:00
>>261
コンパイル時間が余分にかかるくせにバイナリでけえんだよな
0272名無しさん@そうだ選挙に行こう2005/09/11(日) 07:34:46
荒らしは無視 > all
0273名無しさん@そうだ選挙に行こう2005/09/11(日) 07:38:47
272=荒らしな罠
0274名無しさん@そうだ選挙に行こう2005/09/11(日) 07:47:06
>>267
extern void hoge();
main()
{
asm("; --------------------");
hoge();
asm("; --------------------");
}
0275名無しさん@そうだ選挙に行こう2005/09/11(日) 09:37:49
初期のTurboPascalは1パスコンパイラだった。
最後までそうだったかは知らない。Delphiは1パスコンパイルできる仕様なんだろうか?
0276名無しさん@そうだ選挙に行こう2005/09/11(日) 09:40:03
最適化する場合は少なくとも式に対して2パス必要。
そうしないと代入でえらい非効率になる。
0277名無しさん@そうだ選挙に行こう2005/09/11(日) 09:50:10
2パス処理のくせに前方参照ができない変な奴が大半を占める歪んだ現状
0278名無しさん@そうだ選挙に行こう2005/09/11(日) 10:03:48
よぉアホども
0279名無しさん@そうだ選挙に行こう2005/09/11(日) 10:06:27
GNUは低品質ソフトを量産してるくせに業界ででかい顔
0280名無しさん@そうだ選挙に行こう2005/09/11(日) 15:38:40
>>279
GNUという組織はない。
0281名無しさん@そうだ選挙に行こう2005/09/11(日) 16:23:31
>>265を皆が無視している件について
0282名無しさん@そうだ選挙に行こう2005/09/11(日) 16:30:17
>>281が観測してしまったので>>265の位置(評価)が決まってしまった
0283名無しさん@そうだ選挙に行こう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)
############################################################
02842832005/09/11(日) 16:56:05
>下のmakefile でコンパイルはうまくいくんですが

言い直します

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

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

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

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


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

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

ちなみに boost は、 C++ の準標準といわれるテンプレート拡張ライブラリです。
02892852005/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/

で聞いてみてはどうか?


0290デフォルトの名無しさん2005/09/16(金) 00:34:04
ライブラリで、スタティックリンクできるものはスタティックリンクして、
.soしかないものはダイナミックリンクする、てのはどうやったら出来るでしょうか?
0291デフォルトの名無しさん2005/09/16(金) 04:15:11
そうならない理由を排除する。
0292デフォルトの名無しさん2005/09/16(金) 09:46:07
>>291
普通と逆でしょ?
>>290
lib*.aを探して、あれば引数にフルパスを渡せば?
02932912005/09/17(土) 09:05:10
>>292
よくみたらそのとおりだった。ごめん
0294デフォルトの名無しさん2005/09/19(月) 00:34:01
4.0のくそったれ!!
テメエのバグのせいでどれだけ時間をつぶしたことか。。
0295デフォルトの名無しさん2005/09/19(月) 01:13:12
それが、『GCC』クオリティ
0296デフォルトの名無しさん2005/09/19(月) 01:31:31
>>294
頼ってもいいが、信じるな
それがgccだ
0297デフォルトの名無しさん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にはちゃんとあるんですが。
0298デフォルトの名無しさん2005/09/19(月) 13:11:45
CQ出版からGCCの本がでるみたいだね
0299デフォルトの名無しさん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
>>297
・実はマルチバイト文字
・「ちゃんとある」のはpthread.hやunistd.hではなくgthr-posix.hだけだった
0301デフォルトの名無しさん2005/09/22(木) 09:08:04
gcc4.0以上のWindowsバイナリってないの?
0302デフォルトの名無しさん2005/09/22(木) 09:53:23
>>301
あるよ
ttp://www.reactsoft.com/ (Javaなし)
Javaも欲しいなら、ちょっと古いけど
ttp://www.thisiscool.com/gcc_mingw.htm
0303デフォルトの名無しさん2005/09/22(木) 20:05:12
>>302
AdaとFortranとObjective-Cは眼中にすら無いですかそうですか。
0304デフォルトの名無しさん2005/09/22(木) 23:48:20
FortranとObj-Cはともかく、Adaってどのような人種に需要があるんだろう……。
0305デフォルトの名無しさん2005/09/22(木) 23:56:40
C++0xに失望、または待ち切れない人はAdaに来るべし。
今Ada@gccが熱い。
新規格Ada2005がほぼ固まりつつある最終段階にあり、月に何度か一気に大量のパッチが適用されて、どんどん言語が変わってる。
バージョンの下一桁が上がるごとに追加される構文、ライブラリ、直されるバグ。
新規格そのものも、米国防総省の言語のはずなのに、互換性どこ吹く風でinterfaceやdownward closureをはじめ言語の使い方を一変させる新機能の嵐。
これを追いかけなくてどうするっ。
0306デフォルトの名無しさん2005/09/23(金) 00:07:37
妙に熱いのでもっと詳しく
0307デフォルトの名無しさん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。
0308デフォルトの名無しさん2005/09/23(金) 01:39:44
>>304
軍関係。今はDoDも必須じゃないけれど。
0309デフォルトの名無しさん2005/09/23(金) 01:48:53
もうすぐ出る予定の Atmel AVR用のクロスコンパイラ
次期WinAVRは Adaサポート予定。
マイコンのプログラムをAdaでするのってどう?
ttp://sourceforge.net/projects/avr-ada
0310デフォルトの名無しさん2005/09/23(金) 02:35:56
gcc3.3.6の最適化機構にgcc4のc++コンパイラなgccでないのかな
0311デフォルトの名無しさん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
0312デフォルトの名無しさん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
0313デフォルトの名無しさん2005/09/23(金) 13:00:34
>>311
ひでえなそこのページ。言語毎にアルゴリズム変えてやがる。
特定の言語をひいきするようなベンチマークは信用できない。

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

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

今度 3.4.3 環境で作る事になりそうでして。
以前、マイナーバージョンアップでも上位互換無いような事を
聞いたもので、心配してます。
宜しくお願いします。
0343デフォルトの名無しさん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のケースはダメ。
0344デフォルトの名無しさん2005/10/02(日) 19:54:31
4.0ちょっとひどくない?
しんどい部分頑張ってるっぽいけど、時期尚早でした

>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
>>344
バージョン番号の法則からは逃れられないということでしょう。
0347デフォルトの名無しさん2005/10/02(日) 20:32:07
>>344
3.4でいいと思うけど。
いずれにせよ、自分のLinux boxには、2.95, 3.3, 3.4, 4.0がインストールされてます。
古いABIのままのlibraryがあるし、4.0は未だ不安なので。
0348デフォルトの名無しさん2005/10/03(月) 00:45:02
>>343
早速の回答、ありがとうございます。
やはりそうなんですね。

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

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

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

行こうと以降をかけています。
0352デフォルトの名無しさん2005/10/03(月) 02:20:50
より前、以前は日常語としても範囲があやふやだな。
より後、以降、以後もあいまいだわ・・・。
0353デフォルトの名無しさん2005/10/03(月) 02:33:50
>>352
あやふやったって、基準点を含むか含まないか程度のあいまいさだろ。
以前と言って未来を指す訳でもないんだからよ。
0354デフォルトの名無しさん2005/10/03(月) 02:39:45
あいまいさを無くそうとすると
xxxより前(xxxを含まない)のバージョンでは
xxx以前(xxxを含む)バージョンでは
と括弧書きが必要になるんがツライかなぁ。
0355デフォルトの名無しさん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

長くなってすいません。
0356デフォルトの名無しさん2005/10/06(木) 07:00:57
reference を解決しろ。
はい次。
0357デフォルトの名無しさん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

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

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

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

0369デフォルトの名無しさん2005/10/07(金) 20:19:32
食い残しは食えるけど、ゲロは食えねえなぁ。。。
0370デフォルトの名無しさん2005/10/07(金) 20:35:54
可愛い女の子のゲロなら食えます。
0371デフォルトの名無しさん2005/10/07(金) 20:50:46
嘘だッ!!
0372デフォルトの名無しさん2005/10/08(土) 01:50:38
炒めて酸味を消すのがポイント
0373デフォルトの名無しさん2005/10/08(土) 21:50:13
漏れはgdbにはなれそうにないのはわかった
0374デフォルトの名無しさん2005/10/09(日) 05:15:39
gdb = gero debugger
0375デフォルトの名無しさん2005/10/09(日) 07:49:10
げろこんぱいらこれくしょん?
0376デフォルトの名無しさん2005/10/09(日) 08:20:39
Gero is Not UNIX
0377デフォルトの名無しさん2005/10/09(日) 08:56:24
あー、それで core 吐くのか
0378デフォルトの名無しさん2005/10/09(日) 14:20:47
マニアはゲロを詳細に分析するからな。
ゲロで体調がわかる。
0379デフォルトの名無しさん2005/10/09(日) 17:00:38
Men's 5 の歌?
0380デフォルトの名無しさん2005/10/13(木) 08:11:18
「可能」とコメントに入れたらコンパイルしてくれないのは仕様ですか?
0381デフォルトの名無しさん2005/10/13(木) 08:20:36
/* コンパイル可能 */
// コンパイル不可能
0382デフォルトの名無しさん2005/10/13(木) 10:09:59
>>380
http://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
-finput-charset=cp932 -fexec-charset=cp932
を入れたらコンパイル可能
(gccが対応している時)
0384デフォルトの名無しさん2005/10/13(木) 22:27:24
2バイト目に0x5cったら結構な数ありそうだね
/* これでくくれってことっすね?*/
0385デフォルトの名無しさん2005/10/13(木) 22:47:26
それでもダメ!
ってことあったっけ?
gccにはあった気がする
0386デフォルトの名無しさん2005/10/13(木) 23:07:29
>>384
後ろの*/の手前に空白を入れるべし
0387デフォルトの名無しさん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も作成してみたがこれも無問題でした
まあ対応していないコンパイラのことを考えると結局
/* これが正解ですね */
0388デフォルトの名無しさん2005/10/14(金) 00:34:47
/* コメントならこれでよいけど */
printf("表示テスト") は
printf("表\示テスト") としなければいけないので・・・

0389デフォルトの名無しさん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
''   ''  '�\'  '�\'  '・'
0390デフォルトの名無しさん2005/10/14(金) 10:39:46
printf("第十\回 噂\の饅\頭暴\食大会の予\定");

てな表\記を貼\ってみた
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
>>391
最後が「義」だから問題ないでしょ。

// 〜 \

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

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

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

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

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

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

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

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

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


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

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

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

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

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

しかし、セクションの割り当てでうまくいかないのはどうしてだろう?
いろんなアドレスでやってみたけどうまくいかなかったから、
attribute文法とか-Wl,--section-start -Wl,secname=addrの使いかた間違ってます?
0443デフォルトの名無しさん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)
04444002005/10/15(土) 13:44:16
>>443さん
そのメッセージでないのですが、store.cの中身みせてもらえます?
0445デフォルトの名無しさん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
04464002005/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)
04474002005/10/15(土) 14:04:11
>>444じゃなくて>>445でした
0448デフォルトの名無しさん2005/10/15(土) 14:05:20
>>446
つまり、mainとリンクすればうまくいくってことですか?
0449デフォルトの名無しさん2005/10/15(土) 14:05:31
data=0x300ならそうなります。
"xxx" section用のELFヘッダ領域がないからでしょう。 > Not enough

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

です。
04504002005/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
04514002005/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
0452デフォルトの名無しさん2005/10/15(土) 16:50:56
gccスレよりknoppixスレでやったほうがいいんじゃないの。
機種依存の端の話だし。
0453デフォルトの名無しさん2005/10/16(日) 18:18:37
ちゃんとldscript書かなきゃダメでないか?
knoppixスレもスレ違いだろ。linker && loader スレかな。人いないけど。
0454デフォルトの名無しさん2005/10/16(日) 19:17:32
いないわけじゃないんだけど、漏れにはちと荷が重いな。

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

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

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

Cygwin/Mingwのスレに行った方がいいよ。
0458マウスのクルクル部分で入力欄クリックしたら送信された。2005/10/16(日) 21:47:03
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に数がかわるだけで、ずっとこんなんです。
0459デフォルトの名無しさん2005/10/16(日) 21:51:57
>457
かしこまりました。
3連投失礼しました。
0460デフォルトの名無しさん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の方に参照がついてるし。
何とかならないかな?
0461デフォルトの名無しさん2005/10/21(金) 14:17:21
>> 460
-Quaternion::Quaternion(float n, Vector &v);
+Quaternion::Quaternion(float n, const Vector &v);
0462デフォルトの名無しさん2005/10/22(土) 09:33:29
>>461
遅レススマソ。
よくなりますた。
一時変数はリテラルと同じで変更を許さないって方針なのかな。
0463デフォルトの名無しさん2005/10/22(土) 10:17:29
orz
0464デフォルトの名無しさん2005/10/22(土) 16:02:30
>>462
その通り
VC++はレベル4では警告を出す
GCCが文法としては正しい
これはすごく難しい問題をC++言語に提起しているので
たぶん将来改定される
0465デフォルトの名無しさん2005/10/22(土) 16:24:22
ホントだ。いつもW3でやってたから知らなかった。
しかし・・・参照にするとちょっと複雑な式が動かなくなるってのは結構不便だ・・・
コンパイルオプションで何とかならないのかなぁっつーのはconstを省く怠け者の戯言か。

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

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

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

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

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

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

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

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

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

って言われたら、おまいどうするつもりだ?
0485デフォルトの名無しさん2005/10/30(日) 15:09:32
gcc じゃなくて GCC なんだから構わないだろ?
>1 にも GNU Compiler Collection って書いてるじゃないか。
0486デフォルトの名無しさん2005/10/30(日) 15:13:10
聞いてみてダメだったらスルーされるだけだから。
0487デフォルトの名無しさん2005/10/30(日) 15:15:59
じゃあ聞く。
g++の後継コンパイラが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
>あともう一点、LinuxがC++でスクラッチから書き直されているそうです。
>リーナスの手によって。
テラワロスww
わざわざC++にするなんて無駄だろ
0490デフォルトの名無しさん2005/10/30(日) 17:48:20
>>489
話の真偽は知らんけど、デバドラなんかは C よりも
すっきり書けると思うよ。

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

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

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

詳しい説明求む。
0496デフォルトの名無しさん2005/10/30(日) 18:08:48
>>491
C++-new
0497デフォルトの名無しさん2005/10/30(日) 18:10:18
>>491
OldC++
0498デフォルトの名無しさん2005/10/30(日) 18:20:08
>>491
C++
使うかどうかは言語の種類にあらず
0499デフォルトの名無しさん2005/10/30(日) 18:26:17
>>495
壊れやすいベース・クラス問題
http://www.st.rim.or.jp/~osada/translation/developers/BNL_articles/Issue79-insights-j.html
0500デフォルトの名無しさん2005/10/30(日) 18:26:53
>>497も捨てがたいけど、>>496でいくよ

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

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

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

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

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

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

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

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

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

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

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

もうね、>>499なんて常識ですよ。
常識だからどうやればいいかも(ちょっと面倒だけど)はっきりしている。
0517デフォルトの名無しさん2005/10/31(月) 01:25:25
BeOSをバカにするな!!!
謝れ!!!
0518デフォルトの名無しさん2005/10/31(月) 01:30:28
ちょっと思うんだが、Pimplイディオムって基本的には抽象クラスを使えば済む話じゃないの?
まったく同じ指向のものってわけじゃないだろうからどっちか一方イラネってことじゃないけどね。
0519デフォルトの名無しさん2005/10/31(月) 02:37:39
書き直すって程馬鹿な行為はない。
しかもC++でって、Cからの移行メリットがほとんどない。
ライナスがそこまでアホだとは思えないんだが。
Perl6を見ろ。
0520デフォルトの名無しさん2005/10/31(月) 02:42:09
>517
BeOS知らないやつらにまでばらすな!!!
嘘だと言え!!!
0521デフォルトの名無しさん2005/10/31(月) 02:45:29
いつまでネタを引っ張れば気が済むのかと
0522デフォルトの名無しさん2005/10/31(月) 02:47:28
>しかもC++でって、Cからの移行メリットがほとんどない。
違う。
「LinuxにおいてCからC++への移行メリットは全く無い。」
0523デフォルトの名無しさん2005/10/31(月) 03:32:04
OS を C++ で実装するのに、FBC への対策として Pimpl を持ってくるのは
ちょっと違うと思うがね。
0524デフォルトの名無しさん2005/10/31(月) 14:10:39
対象が何でも同じだろ。
Kernelだってloadable moduleの互換性なくなるし。
0525デフォルトの名無しさん2005/10/31(月) 14:11:29
>>518
全然違うから(w
>>449のページを良く読むように。
0526デフォルトの名無しさん2005/10/31(月) 18:32:33
Objective-Cにしておけばいいのに。
拡張が容易。
0527デフォルトの名無しさん2005/10/31(月) 20:48:32
>>526
Lisp にしておけばいいのに。
拡張が容易。
0528デフォルトの名無しさん2005/10/31(月) 21:41:08
アセンブラにしておけばいいのに。
工数の都合上、お客様のご要望にはお応えできまsn
0529デフォルトの名無しさん2005/10/31(月) 23:21:00
Brainf*ckにしておけばいいのに。
読める人間がいないので、セキュリティも万全。
0530デフォルトの名無しさん2005/11/01(火) 07:24:36
>>527
LISPマシン!
0531デフォルトの名無しさん2005/11/01(火) 17:47:07
ひまわりにしておけばいいのに。
日本人開発者が増える。
0532デフォルトの名無しさん2005/11/04(金) 18:59:23
>ひまわりにしておけばいいのに。
>日本人開発者が増える。
それは無さそうだよ
0533デフォルトの名無しさん2005/11/04(金) 19:21:46
GCCでひまわりがコンパイル出来るようになるのは何時頃ですか?
0534デフォルトの名無しさん2005/11/04(金) 22:59:57
>>533
あなたがGCC開発プロジェクトに参加したその瞬間に、道は開けます。
用意はいいですね?それでは、始めましょうか。
0535デフォルトの名無しさん2005/11/05(土) 00:03:56
ひ
0536デフォルトの名無しさん2005/11/05(土) 00:06:32
ろ
0537デフォルトの名無しさん2005/11/05(土) 00:15:17
し
0538デフォルトの名無しさん2005/11/05(土) 00:16:32
で
0539デフォルトの名無しさん2005/11/05(土) 00:16:56
ん
0540デフォルトの名無しさん2005/11/05(土) 00:32:06
せ
0541デフォルトの名無しさん2005/11/05(土) 00:41:39
つ
05425352005/11/05(土) 00:48:40
ヒロシ キタ━━━━━━(゚∀゚)━━━━━━ !!!!! て、いやちがうやん
0543デフォルトの名無しさん2005/11/06(日) 17:38:04
-mfpmath=sse2やsse3って何で無いんですか?
-mfpmath=sseで精度落ちちゃうのが嫌なんですが。
0544デフォルトの名無しさん2005/11/06(日) 19:42:23
>>543
sse2が使えるなら使うよ。
0545デフォルトの名無しさん2005/11/06(日) 20:44:15
>>544
3.3.1だとerror: bad value (sse2) for -mfpmath= switchと言われます。
それとも、mfpmath=sseは-msseと同じ意味ってことですか?
0546デフォルトの名無しさん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.
を訳して欲しいです
0547デフォルトの名無しさん2005/11/06(日) 22:31:56
>>545
544じゃないが、違う。

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

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

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

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


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

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

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

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

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

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

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

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

文句言ったところでAnnouncements読めといわれそうですが。
0585デフォルトの名無しさん2005/11/22(火) 21:44:11
4.1.0が来るにしても3.4.5リリースして何週間か立ってからだろうなぁ
0586デフォルトの名無しさん2005/11/23(水) 13:42:08
>>579
> AHOをアホと読みそうだな。
何か問題でも?
Caesarを「シーザー」ではなく「カエサル」と読むのと同じだろ。
0587デフォルトの名無しさん2005/11/23(水) 15:24:43
全然違うわけだが。
0588デフォルトの名無しさん2005/11/24(木) 22:37:02
パーサ(パーサー?)の話とかここでいいのかな?
(他のスレあったら教えてください)
仕事で幾つかのフォーマットを読み下すプログラムを
書いてきたんですが、毎回使い捨てで同じような
のを何度も書いている気がしています。
そこでパーサーと言われるプログラムの基礎を勉強しようかな
と考えています。
情報系とか出てないので理論的な知識が無いんだけど、
基礎から書いてある良い本とか良いサイトないですか。
よろしくお願いします。
05895582005/11/24(木) 22:39:13
コンパイラ・スクリプトエンジン
というスレがありました。そちらの方が近いようですので
そちらで聞くことにします。
ありがとうございました。
0590デフォルトの名無しさん2005/11/25(金) 20:38:07
GCC 4.1 Released
http://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:35
GCC = God Compiler Collection
0592デフォルトの名無しさん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.
0593デフォルトの名無しさん2005/11/25(金) 20:52:10
FreeSoftware >>>> |越えられない壁| >>>> OpenSource >>>> |さらに越えられない壁| >>>> それ以外の物
0594デフォルトの名無しさん2005/11/25(金) 21:45:16
つまりstallmanはフリーウェアは作ってもいいけどソース公開はしたくないよ、
と言っているのです。
0595デフォルトの名無しさん2005/11/25(金) 21:48:24
壁を越えてきて欲しくない物>>>全く特徴のない作文のくせにサイド広告に刻まれた技術用語にあやかり検索上位ヒットするblog
0596デフォルトの名無しさん2005/11/25(金) 21:58:45
>>595
今は検索にヒットさせるのも1つの商売になってるから
0597デフォルトの名無しさん2005/11/25(金) 22:08:17
>>594
そのソース元をフリーにしてください。
0598デフォルトの名無しさん2005/11/25(金) 23:16:04
slashdotでもリリースされたと勘違いされた記事が載っちゃったんか。

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

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


・・・ネタだよな? 本気で言ってたりしないよな、このスレ読んでる奴が。
そうだろう? そういってくれ、たq304ty e4gjkhz)'#W+)(YQW#NO CARRIER
0604デフォルトの名無しさん2005/11/26(土) 00:47:59
NO CARRIERとはまた懐かしい。
0605デフォルトの名無しさん2005/11/26(土) 00:57:00
>>603 = >>594
0606デフォルトの名無しさん2005/11/26(土) 01:24:31
>>599
>結局オプソにしても一部の人間がメンテするのは同じ。状況は変わらない。
>だったらソース公開せず技術流出を防ぐ方が大事だとストールマンも反省してるだろう。
>バグレポだけで十分。
バグレポだけ十分だと?
ふざけんな! 俺はメンテしたいんだ! ソースよこせ!
0607デフォルトの名無しさん2005/11/26(土) 03:11:14
メンテする権限欲しかったら金払えよカス
ってことだろ多分。
0608デフォルトの名無しさん2005/11/26(土) 07:16:40
ttp://d.hatena.ne.jp/toge/20051125#1132937350
0609デフォルトの名無しさん2005/11/26(土) 07:18:54
権力やライセンス、金絡みの話より>>608のような話のほうが重要なのによく騒ぐなぁ
0610デフォルトの名無しさん2005/11/26(土) 10:13:38
お金は命より重いですよ。
0611デフォルトの名無しさん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に入るの?
あくまでプラグインっていう形に留まるんじゃ。
0612デフォルトの名無しさん2005/11/26(土) 17:58:50
>>611
ライセンス変更とかの話もちらほらあるみたいだけど,英語に堪能でないので
議論の流れがよく分からない。
0613デフォルトの名無しさん2005/11/26(土) 20:45:02
>>610
お前以外の命よりは尊いだろうが、お前の命と金なら、お前の命の方が
尊いだろう。死んだら終わりジャン。分かったような口を聞いてんじゃネーヨ。
0614デフォルトの名無しさん2005/11/26(土) 20:54:18
>>613
人は死んだら終わり。だが金は死なない。だから金は尊い。
0615デフォルトの名無しさん2005/11/26(土) 22:33:30
とりあえず、人類の進化に逆らって物々交換で生活しよう。
0616デフォルトの名無しさん2005/11/26(土) 22:48:19
死人は何も生産せずに
腐乱物体の処理費用を発生するからな
0617デフォルトの名無しさん2005/11/26(土) 22:55:33
人間が自分で「人間の命は尊い」などと言っているようでは救いようがない
0618デフォルトの名無しさん2005/11/26(土) 22:58:07
今までWindowsのVC.NETで開発していたCのソースを
fedora core 3のgccでもコンパイルできるようにしたいのです。
VC.NETは、
#ifdef WIN32
で検出できるのですが、fedora core 3のgccが検出できなくて困っています。
#ifdef ????
の????に何を書けば良いでしょうか?
よろしく。
0619デフォルトの名無しさん2005/11/26(土) 23:06:06
__GNUC__か__linux__だったかな
linuxは_linux_だったかも
0620デフォルトの名無しさん2005/11/26(土) 23:11:43
よくあるのは

MSVCの判定は 

#if defined (_MSC_VER)

gccの判定は

#if defined (__GNUC__)

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

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

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

#include <sys\time.h>

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

ヘッダファイルそのものをファイルシステム内で検索してみたら?
0633デフォルトの名無しさん2005/12/06(火) 19:11:42
やっぱ検索しかないみたいですね。ありがとうございます。試してみます。
0634デフォルトの名無しさん2005/12/06(火) 19:17:47
>>633
time.hのあるディレクトリのパスを-Iで指定
0635デフォルトの名無しさん2005/12/06(火) 22:09:43
>634
ありがとうございます。試してみます!
0636デフォルトの名無しさん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はちゃんとやってます。
06376362005/12/07(水) 23:24:40
>>636
化けちゃいましたが、察してください。
0638デフォルトの名無しさん2005/12/07(水) 23:52:44
>>636
プラットフォームを書きなされ。
すくなくとも、標準CやPOSIXにはsincosf()なんてないぞ。
0639デフォルトの名無しさん2005/12/08(木) 00:11:23
>>636
math.hインクルードしてる?
06406362005/12/08(木) 00:32:32
>>638
FC4です。sincosf()はgcc拡張です。

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

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

>>646
それをやっても、

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

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

ちなみに、x86のFPUにはsincosの命令があるから使ってみようかな
という理由なんですが。
06506462005/12/08(木) 14:03:22
アホなの?
inlineしたけりゃ、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
>>651
整数のオーバーフローチェックとか
実数の桁落ちチェックですか。
0653デフォルトの名無しさん2005/12/08(木) 17:29:56
>>651
んなこたぁーない。
何か変な最適化オプション指定してんじゃないの?
0654デフォルトの名無しさん2005/12/08(木) 19:57:09
すごい初歩的な質問でもうしわけありません。
gcc 3.3.2なんですが、最適化フラグに-O4とセットして
コンパイルしたのですが、問題なくコンパイルできました。
でも、最適化フラグはO3までって書いてあります。
O4でなぜ、何もエラーなくコンパイル出来たのでしょうか?
0655デフォルトの名無しさん2005/12/08(木) 19:58:58
-O157だっていけるぞ
0656デフォルトの名無しさん2005/12/08(木) 20:25:59
>>654
gccはお前のことが好きなんだよ。
0657デフォルトの名無しさん2005/12/08(木) 20:41:54
オキソゾン
ドキソゾン
ドキュソゾン ←たぶんこれ
0658654 2005/12/08(木) 21:11:43
>>656
マジですか!
俺、ついにプログラムにまで惚れられるようになったのか。
このまま頑張ればいつか二次元の女の子にも好かれる日がきますかね?
で、O3とO4のバイナリの実行スピードを調べたんですけれど、ほとんど変わらないです。
最適化フラグで間違ってO3以上が指定されると、
エラーも出さず自動的にO3がセットされると考えて良いのでしょうか?
0659デフォルトの名無しさん2005/12/08(木) 21:28:18
>>657
マジですか!
0660デフォルトの名無しさん2005/12/08(木) 22:56:58
>>652
ねたもと ttp://www.rubyist.net/~matz/20051207.html#p01
ということでオーバーフローチェックですな。

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

ちょいと試してみたが、-O0でもきれいに消してくれるな。
これはさすがにやりすぎのような…
0661デフォルトの名無しさん2005/12/08(木) 23:24:13
>>660
そこまでひどいと、バグですな。今まで動いていたプログラムが動かなく
なる。
0662デフォルトの名無しさん2005/12/08(木) 23:34:24
printf()をputs()で「最適化」するような処理系だしなあ
0663デフォルトの名無しさん2005/12/08(木) 23:39:13
>>661
いや、意味が変わってしまう時点でどこまで酷かろうがバグなんですが。
0664デフォルトの名無しさん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では試してみて。
0665デフォルトの名無しさん2005/12/08(木) 23:53:57
そんなもん、最適化以前にコンパイル時に警告かエラーではじけよ
06666362005/12/09(金) 00:05:32
>>650
なにか勘違いをされてるようですが、gcc3.2でもちゃんと警告は出ますよ。

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

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

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

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

>>671
FC4のgcc3環境が3.2なんです。
0681デフォルトの名無しさん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;
}
0682デフォルトの名無しさん2005/12/09(金) 14:23:21
>if (((unsigned int)pointer) % boundary)
引数とらずに4,8,16,32あたりの個別の専用マクロ作りなよ
0683デフォルトの名無しさん2005/12/09(金) 14:25:41
オーバーフローしないし
0684デフォルトの名無しさん2005/12/09(金) 14:27:09
ふつー & で書かないか?
>>681のがどんなコードに落ちるか試したくなった。

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

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

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

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

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

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

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

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

まぁ、uintptr_tぐらいならどうでもいい事だが。
0705デフォルトの名無しさん2005/12/15(木) 11:08:44
longでいいだろ。
0706デフォルトの名無しさん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
>>706
>(該当スレあれば誘導おながいします。)
鼬害。
犬板へどうぞ。

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

>犬板
どこですか?

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

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

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

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

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

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

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

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

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


まあ、同じことはGPLな人が言う、フリーソフトがプロプライエタリなソフトウェアに使われた場合にも
起こるわけだけど。
0758デフォルトの名無しさん2006/01/06(金) 13:40:43
エロゲのGPL違反は、画像やバイナリも再配布可能になってるん?
0759デフォルトの名無しさん2006/01/06(金) 13:54:09
貴様らまとめてGPLのスレへ池。
あと、GCCに付属のスタートアップはGPLの例外条項の範疇だから安心汁。
詳しくは「GPL "例外条項"」ググれ。
0760デフォルトの名無しさん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は問題の部分を一から書き直す羽目になった。
|この苦い経験から、口約束ではないきちんとした契約で、ソースが未来永劫
|誰でも自由に利用できるということを保証するという発想が生まれてきた。
0761デフォルトの名無しさん2006/01/06(金) 14:10:11
むしろこのスレに妥当である >>754 が無視されてる件について
0762デフォルトの名無しさん2006/01/06(金) 14:24:46
>>761
gccじゃなくてx86アセンブラの質問ですからなあ。

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

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

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

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

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

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

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

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

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

の逆パターンだな。問題無いよ。
0785デフォルトの名無しさん2006/02/01(水) 22:11:50
GPL恐怖症な奴がここに来てるって聞いたのですっとんできますた。
0786デフォルトの名無しさん2006/02/01(水) 22:12:18
>>782 http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/license.html
0787デフォルトの名無しさん2006/02/01(水) 23:05:26
GPLに関する話は専用のスレでやってくれよ。また荒れる。
0788デフォルトの名無しさん2006/02/11(土) 11:11:46
#pragma once って gcc では使えないんでしたっけ?
バージョンによっては使える?
0789デフォルトの名無しさん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行のコードと重複した宣言子の可能性を排除するが、コンパイラ
固有のコードになるという危険をはらむので、外の環境にコードを持ち出さない、社内開発の
ような場所でのみ使うべきだと思う。しかも、再利用しないコードという、限定された状況で。
あと、個人開発とかかな。
0790デフォルトの名無しさん2006/02/12(日) 10:24:22
ヘッダファイルの非標準な解釈を標準に合わせるために非標準の #pragma を使う滑稽な図式
0791デフォルトの名無しさん2006/02/12(日) 10:59:25
>>788
あるけど、これから書くヘッダには使うな。

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

と書けばいいだけ。

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

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

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

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

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

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

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

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

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

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

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

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

説明が長いのは、#pragma onceがC++共通の機能みたいに考えてるっぽかったので、
#pragmaの意味を>>788が知らないのかな〜と思った為です。
#pragma once自体がgccで機能するかどうかは、試せば一発ですし。
0802デフォルトの名無しさん2006/02/12(日) 13:32:07
gccはこんなことも知っている。
> foo.c:1:9: 警告: #pragma once がメインファイルにあります
do_pragma_once()が処理する。
0803デフォルトの名無しさん2006/02/12(日) 14:12:07
>>796
>たぶん >>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
>>805
手元に無いよ。テレパシーは無いけど、記憶を辿った。以前の仕事で、コーディング規約に
あったし、Mozillaの移植性ガイドにもある。おまけに、ANSIやらISO関連はググれば出てくるし。

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

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

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

GCC 4.1.0 Released
ttp://gcc.gnu.org/ml/gcc/2006-03/msg00045.html
0832デフォルトの名無しさん2006/03/02(木) 10:42:23
独自拡張で構わないのですが、gccでプロパティは実現できますか?
0833デフォルトの名無しさん2006/03/02(木) 12:43:07
プロパティって何?
0834デフォルトの名無しさん2006/03/02(木) 13:07:46
4.1は最適化が気合い入ってるぽいね
0835デフォルトの名無しさん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++で見たけど、クラスのメンバ変数への読み込みや書き込みを、メンバ関数でトラップできる機構じゃなかったっけ?
変数の値域を厳密に決めたりできて便利だった。

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

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

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

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

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

一応C++0xに ICF, implicitly-callable function ってのが提案されてはいるのだが。
0847デフォルトの名無しさん2006/03/03(金) 14:26:31
http://www.kmonos.net/alang/d/cpptod.html#properties

これでよくね?
0848デフォルトの名無しさん2006/03/03(金) 15:37:13
いいね
...Dなんて使う気にはなれんが
0849デフォルトの名無しさん2006/03/03(金) 17:01:12
むしろ__finallyが欲しい
0850デフォルトの名無しさん2006/03/03(金) 22:41:33
>>849
禿からの伝言です。

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

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

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

でもそうすると、当該 inline 関数を含むヘッダファイルを
インクルードしているすべてのオブジェクトで
重複してしまうから、リンカが泣く?
0867デフォルトの名無しさん2006/03/09(木) 11:56:21
-finline-limit=0
とか?
0868デフォルトの名無しさん2006/03/09(木) 11:58:35
>>866
後半はNO
0869デフォルトの名無しさん2006/03/09(木) 12:48:05
>>866
-fnoinline
0870デフォルトの名無しさん2006/03/09(木) 13:07:33
ヘッダーファイルで
#define inline static
として、コンパイルオプションで
-fno-inline
0871デフォルトの名無しさん2006/03/09(木) 21:34:22
-Dinline
でよくね?
0872デフォルトの名無しさん2006/03/09(木) 21:59:11
リンクでコケね?
0873デフォルトの名無しさん2006/03/09(木) 23:03:28
リンクでこけないためにも>>870じゃね?
08748662006/03/09(木) 23:12:20
みなさん、どうもありがとうございます。
0875デフォルトの名無しさん2006/03/10(金) 03:37:28
static inlineと宣言されてたら#define inline staticだと
static staticにならね?
0876デフォルトの名無しさん2006/03/10(金) 09:11:13
なるねえ
あーゆー邪道なやり方じゃなくちゃんとした正攻法があるのにどうかしてるよ
0877デフォルトの名無しさん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 に通そうと思っているんですが、
変換後の文字コードは何にすべきでしょうか?
0878デフォルトの名無しさん2006/03/10(金) 10:18:46
localeをSJISにして食わせれば受け付けないか?
0879デフォルトの名無しさん2006/03/10(金) 10:21:40
>>878 あり、そうだったんですか。
横着して、というかさっきソース渡されて、
その場にUNIX機がなかったんで、
cygwin の g++ で試してみたら上記のエラーが。
cygwin でのロケールの扱いなんてさっぱり知らないんで、
まじめにUNIX機でロケールいじりつつ試してみます。
08808792006/03/10(金) 10:33:04
Shift JIS 能 = 0x945c

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

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

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

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

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

同じ症状発見。もう、面倒なのでいっそのこと全部
UTF-8 にコンバートすることにしました。
0887デフォルトの名無しさん2006/03/10(金) 19:48:55
ファイル単位でなく翻訳ごとにしか文字コードを指定できないGCCも
悪いんだけどね。
0888デフォルトの名無しさん2006/03/10(金) 19:57:54
そういう物のソース中にlatin書いてる奴の責任は?
08898792006/03/10(金) 20:18:06
彼らにとってはヨーロッパがすべてだから
0890デフォルトの名無しさん2006/03/10(金) 20:19:34
LGPLってGNUの理念に反しているように思えるので
ライブラリも含めてすべてGPLにすべきだと思うんですがいかがでしょうか?
0891デフォルトの名無しさん2006/03/10(金) 21:22:03
GNUの理念を信奉するならそうすればいいんでは。
別にGNUマンセーでなく、LGPLの条件がまあまあ具合がいいやという
感じで選んでいる人も沢山いるでしょうよ。
0892デフォルトの名無しさん2006/03/10(金) 21:30:37
>>890
そんなことしたらGPLが自滅しちゃうじゃん。
0893デフォルトの名無しさん2006/03/10(金) 21:59:16
GPL議論スレへどうぞ。
0894デフォルトの名無しさん2006/03/10(金) 22:23:04
自治スレへどうぞ。
0895デフォルトの名無しさん2006/03/11(土) 10:14:54
GPLってグラップラーバキの略だよな?
0896デフォルトの名無しさん2006/03/11(土) 18:33:50
GPLはグレートパートナーリナクスの略だよ。
LGPLはリトルグレートパートナーリナクス。
0897デフォルトの名無しさん2006/03/12(日) 07:51:20
GPL は グレート パクリ ライオンキングの略。
0898デフォルトの名無しさん2006/03/13(月) 00:43:24
Gcc Cannot Compile
0899デフォルトの名無しさん2006/03/13(月) 01:12:33
GCC=ぐっしっし
0900デフォルトの名無しさん2006/03/13(月) 08:46:45
4.0.3が出てた
0901デフォルトの名無しさん2006/03/13(月) 13:08:00
3.4.6も出てたよ
0902デフォルトの名無しさん2006/03/13(月) 14:00:41
どっちかひとつにしなさい!
0903デフォルトの名無しさん2006/03/13(月) 14:19:21
2.95と3系が並存してるように、3系と4系が並存していくのかな。
めんどくさいね。
0904デフォルトの名無しさん2006/03/13(月) 14:26:17
2はもう終わりだと思う
0905デフォルトの名無しさん2006/03/13(月) 14:29:14
linuxのkernelも2.95捨てたからね
0906デフォルトの名無しさん2006/03/14(火) 06:33:39
カーネルのビルドの時だけ 2.7.2.3 使ってた昔なつかし
0907デフォルトの名無しさん2006/03/14(火) 13:08:59
ver.4以降って新しいtemplate構文に対応してますか?
0908デフォルトの名無しさん2006/03/14(火) 13:31:04
>>907
新しいtemplate構文?なにそれ?
0909デフォルトの名無しさん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 >( );
}

こんな感じの構文です
0910ヽ(´ー`)ノ ◆.ogCuANUcE 2006/03/14(火) 19:35:53
>>909
部分特殊化ね。4.0 どころか 3.3 でも使えるけど。
0911ヽ(´ー`)ノ ◆.ogCuANUcE 2006/03/14(火) 19:37:28
間違えた。explicit specialization だから、明示的な特殊化だった。
0912デフォルトの名無しさん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;
}
0913デフォルトの名無しさん2006/03/14(火) 21:22:05
直すんだったら、ついでにヘッダも iostream か cstdio にしてあげなよ
0914デフォルトの名無しさん2006/03/14(火) 22:03:10
アッと驚く糞レスだな
0915デフォルトの名無しさん2006/03/14(火) 22:21:18
>>912
ありがとうございます

>>908の方法でも可能なコンパイラがあったもので
0916デフォルトの名無しさん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はここにしか出てきません。
そのコンパイラは勇み足。
0917http://www.vector.co.jp/soft/win95/util/se072729.html2006/03/18(土) 20:36:27
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
0918デフォルトの名無しさん2006/03/18(土) 20:47:32
>>917
マルチ + スレ違い乙
0919デフォルトの名無しさん2006/03/19(日) 08:52:45
>>918
ちげーよ
ある仮定を1つ言ってないだけさ
0920デフォルトの名無しさん2006/03/19(日) 11:45:17
>>917
gccで作れ。
0921デフォルトの名無しさん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 する必要が
ある。
09229212006/03/22(水) 13:59:47
すまん。謎は解けないけど一応自己解決。man の下の方よく読んだら
_XOPEN_SOURCE と _XOPEN_SOURCE_EXTENDED を両方 define すれば
いいと書いてあった。(なんでまたこんなことを…)
0923デフォルトの名無しさん2006/03/22(水) 14:22:56
過去の遺物。
どうでもいいことかもしれんがgccは関係ないぞ。
0924デフォルトの名無しさん2006/03/23(木) 19:52:35
gcc で DLL の遅延ロードについてお尋ねしたいのですが、
VC では delayimp.lib と /DELAYLOAD が利用できますが、
gcc にも同様のオプションはあるのでしょううか。
環境は MinGW + gcc 3.4.2 です。
0925デフォルトの名無しさん2006/03/24(金) 00:26:11
>>924
つ [LoadLibrary]
つ [GetProcAddress]
0926デフォルトの名無しさん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に入っている関数がリンク出来ないといわれてしまいます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

とか書いてMakefileで

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

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

アレンジは悪くないが、声優が全然ダメ
0962デフォルトの名無しさん2006/04/18(火) 17:59:33
>>935

SH用GCC->KPIT
http://www.kpitgnutools.com/index-ja.php
0963デフォルトの名無しさん2006/04/18(火) 20:07:31
GCCについて part7
http://pc8.2ch.net/test/read.cgi/tech/1145357824/l50
0964デフォルトの名無しさん2006/05/05(金) 08:38:07
そいうえば、あの凶悪な型チェックを搭載したGCC4はもうバージョン上がったのか?
0965デフォルトの名無しさん2006/05/05(金) 14:45:23
ftp://ftp.gnu.org/gnu/gcc/
0966デフォルトの名無しさん2006/05/09(火) 14:49:03
4.1.1マダー?
0967デフォルトの名無しさん2006/05/09(火) 15:04:42
>>966
http://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:51
埋めなくても落ちるからほっとけ
0970デフォルトの名無しさん2006/05/16(火) 13:04:29
埋めたら見られなくなる人もいるし放置でいいんじゃねーの
0971デフォルトの名無しさん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:42
とりあえず980までいっとくか
0974デフォルトの名無しさん2006/05/16(火) 23:46:53
ksk
0975デフォルトの名無しさん2006/05/17(水) 03:12:05
>>971
どこからそんなデマを仕入れてきたんだい?
0976デフォルトの名無しさん2006/05/17(水) 08:39:06
>>971 マジだったら泣く。
0977デフォルトの名無しさん2006/05/17(水) 09:17:42
でもこの板、過去ログになるのが遅いんだよな…
0978デフォルトの名無しさん2006/05/17(水) 09:24:46
●買うしかないか。
しかし●とモリタポってなんで統合されないのかね。
公式 p2.2ch.net のためにモリタポ買って、
DAT落ちスレのために●買って、なんてやってられん。
0979デフォルトの名無しさん2006/05/17(水) 10:49:07
志村ー、ttp://www.geocities.jp/mirrorhenkan/
0980デフォルトの名無しさん2006/05/17(水) 17:49:53
-Wbug
0981デフォルトの名無しさん2006/05/17(水) 23:03:46
-Wdeathmarch
0982デフォルトの名無しさん2006/05/17(水) 23:09:20
>>981
そのオプションつけたら、嵌まっているプロジェクトがうまく逝きました。
本当にありがとう! > GCC
0983デフォルトの名無しさん2006/05/17(水) 23:15:51
>>980
そのオプションつけたら、見つけられないBugをうまく探せました。
本当にありがとう! > GCC
0984デフォルトの名無しさん2006/05/17(水) 23:49:14
-W2ch.net
0985デフォルトの名無しさん2006/05/17(水) 23:56:51
>>984
そのオプションつけて仕事してたら、会社を首になりました。
本当にありがとう! > GCC
0986デフォルトの名無しさん2006/05/18(木) 03:28:37
-Worz
0987デフォルトの名無しさん2006/05/18(木) 12:21:26
>>986
そのオプションつけて仕事してたら、後輩がバグを量産してくれました。
本当にありがとう! > GCC
0988デフォルトの名無しさん2006/05/18(木) 12:59:05
-Wktk
0989デフォルトの名無しさん2006/05/18(木) 22:07:19
>>988
そのオプションつけて仕事してたら、コンパイルが終わりません。
本当にありがとう! > GCC
0990デフォルトの名無しさん2006/05/18(木) 22:14:46
-ωおいなりさんだ
0991デフォルトの名無しさん2006/05/18(木) 22:26:45
うめ
0992デフォルトの名無しさん2006/05/18(木) 22:37:27
うめさせるわけにはゆかぬ!
0993デフォルトの名無しさん2006/05/18(木) 22:41:38
なんだと!!
0994デフォルトの名無しさん2006/05/18(木) 23:10:59
おまえら馴れ合ってんじゃねーよ
0995デフォルトの名無しさん2006/05/18(木) 23:30:38
GCCについて part7
http://pc8.2ch.net/test/read.cgi/tech/1145357824/l50
0996デフォルトの名無しさん2006/05/18(木) 23:45:40
うめ
0997デフォルトの名無しさん2006/05/18(木) 23:56:57
997
0998デフォルトの名無しさん2006/05/18(木) 23:57:10
たけ
0999デフォルトの名無しさん2006/05/18(木) 23:58:47
まつ

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