GCCについて part8
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/10/13(土) 00:07:39GNU本家の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
前スレ
GCCについて part7
http://pc11.2ch.net/test/read.cgi/tech/1145357824/l50
0004デフォルトの名無しさん
2007/10/17(水) 11:28:31double d = 0.3; int i;
i = d * 1000;
とすると i=299になります。
d = d * 1000; i = d;
とするとi=300になります。 Macのgccで試したら300になるので生成したコードを調べると
SSE2インストラクションを使ってました。試しに-msse2でコンパイルすると両方とも300に
なりました。 gccは3.2.2, 3.3.5, 4.1.1と試しましたが全部同じです。
manに書かれている以下の文が関係しているのでしょうか?
... -msse2 ...
The resulting code should be considerably faster in the major-
ity of cases and avoid the numerical instability problems of
387 code,
この問題をどこか詳しく説明している文書はありますでしょうか?
0005デフォルトの名無しさん
2007/10/17(水) 11:56:17メモリに書き戻されるタイミングで64ビットに切り捨てられるのだが、
コンパイラの最適化の具合によって
メモリに書き戻されるタイミングが変わり、計算結果が変わることがある
0006デフォルトの名無しさん
2007/10/17(水) 17:19:41最初の方で
double d = 2.99999999999999988897769753748434595763683319092e-1;
float f = 3.00000011920928955078125e-1;
に変換されていた。
-O0だとハードウェアが使うそのままの形で渡すから、マシン依存ってことかな?
-O2だとmsse2じゃなくても300になった。
http://gcc.gnu.org/bugs.html#known だね。
gccはrtlとか出てきたらよく分からんなぁ。GIMPLEはわかりやすいんだが。。。
0007デフォルトの名無しさん
2007/10/17(水) 19:24:51構造体の初期化でメンバ名を指定できるのと、その他の初期値を指定できるなんて
初めて見たよ。
たしかに便利っちゃぁ便利だけど...
0008デフォルトの名無しさん
2007/10/17(水) 19:39:320010デフォルトの名無しさん
2007/10/18(木) 06:39:02VCってC99サポートしてないの?
0011デフォルトの名無しさん
2007/10/18(木) 06:52:220012デフォルトの名無しさん
2007/10/18(木) 16:55:330013デフォルトの名無しさん
2007/10/18(木) 18:13:060014デフォルトの名無しさん
2007/10/18(木) 18:51:03コンパウンドリテラル
0015デフォルトの名無しさん
2007/10/19(金) 16:41:06designated Initializerか
>>8にもあるけどC99で取り入れられてるな
0016デフォルトの名無しさん
2007/10/20(土) 08:33:010017デフォルトの名無しさん
2007/10/20(土) 19:19:15いや、0.3=3/10は2進数では無限小数になって丸め誤差が出ているだけでは?
0.3 = 0.10011001100110011001100…
0018デフォルトの名無しさん
2007/10/20(土) 20:54:410019デフォルトの名無しさん
2007/10/25(木) 06:16:18画面表示するオプションは無いでしょうか?
gccの-iprefixオプションを使うと、途端にいくつかの標準ヘッダが見付からなくなる現象で悩んでます。
0020デフォルトの名無しさん
2007/10/25(木) 09:08:330021デフォルトの名無しさん
2007/10/27(土) 07:52:36http://gcc.gnu.org/ml/gcc/2007-10/msg00441.html
stage3まではサクサク進んできたけど、現在バグ取りで膠着状態
まだまだ使える状態じゃないっぽい
0022デフォルトの名無しさん
2007/10/27(土) 10:29:55C++やJavaみたいに、言語規格自体が大きくて、
しょっちゅう変更される言語も含まれるから、
リリースがどんどん重くなりそうだね。
libstdc++なんか、言語処理系のバージョンとの関係が切り放せないし。
0023デフォルトの名無しさん
2007/10/27(土) 22:51:530024デフォルトの名無しさん
2007/10/27(土) 22:55:550025デフォルトの名無しさん
2007/10/28(日) 01:31:470026デフォルトの名無しさん
2007/10/28(日) 01:33:24-g3のマクロ云々はいいので、-gと-ggdbだけでも。
0027デフォルトの名無しさん
2007/10/28(日) 02:03:55gcc -ggdbはmanで詳細が調べられる
gcc -g3はmanで詳細が調べられる
これぐらいかな違いは。
0028デフォルトの名無しさん
2007/10/28(日) 02:08:430029デフォルトの名無しさん
2007/10/28(日) 05:58:400030デフォルトの名無しさん
2007/10/28(日) 07:06:550031デフォルトの名無しさん
2007/10/28(日) 07:36:090032デフォルトの名無しさん
2007/10/28(日) 16:10:01pragma より atribute がお勧め。
0033デフォルトの名無しさん
2007/10/28(日) 16:21:570034デフォルトの名無しさん
2007/10/28(日) 17:31:010035デフォルトの名無しさん
2007/10/28(日) 17:40:37昔は必要だったの?
0036デフォルトの名無しさん
2007/10/28(日) 17:56:39余計なalignmentが入るのを防ぐ。
最初にデータ構造ありき、な時は必要でしょ。
ファイルフォーマットとかパケットの構造体作る時とか。
0037デフォルトの名無しさん
2007/10/28(日) 18:08:320038デフォルトの名無しさん
2007/10/28(日) 18:14:060039デフォルトの名無しさん
2007/10/28(日) 18:17:31ずっと前に、コンパイラがバイト単位での読み書きに翻訳してくれたりした覚えが
あるんだけど、今考えるとメンバ単体をポインタ経由でアクセスしたら死にそう。
0040デフォルトの名無しさん
2007/10/28(日) 18:27:17でも、OSもコンパイラも面倒見てくれない環境もあるべ。
自分でバイト単位に書き込むのか?
0041デフォルトの名無しさん
2007/10/28(日) 18:33:59だれも面倒見てくれないんなら自分でやればいいだろ。
0042デフォルトの名無しさん
2007/10/29(月) 12:23:46trapで落ちてからか〜、大昔からあるテクニックだけど今時のマシンでやったらstallしまくりでいやげだなぁ。
softfloatとかも便利だけど鈍いよね。
0043デフォルトの名無しさん
2007/10/29(月) 21:34:43だがそれがいい
0044デフォルトの名無しさん
2007/10/29(月) 22:07:24エミュするのめんどいんで、自力でなんとかしてくれ。
>>42
正確に数えたことないけど数十倍の時間がかかるはず。
根性でもう少し高速化できるかも知れんが、あくまで救済措置だからのう…
そんな所にエネルギー使いたくない。
0045デフォルトの名無しさん
2007/10/31(水) 03:47:24こいつらのせいで、毎回チェックサムの異なるバイナリが生成されてしまいます・・・。
0046デフォルトの名無しさん
2007/10/31(水) 04:11:290047デフォルトの名無しさん
2007/10/31(水) 04:27:420048デフォルトの名無しさん
2007/10/31(水) 04:29:320049デフォルトの名無しさん
2007/10/31(水) 04:32:55はムリ?
0050デフォルトの名無しさん
2007/10/31(水) 04:36:470051デフォルトの名無しさん
2007/10/31(水) 04:50:28それでも __DATE__ とかには効かないかもしれないけどね。
0052デフォルトの名無しさん
2007/10/31(水) 06:01:50#undef __DATE__
#define __DATE__ "2007/10/31"
#endif
0053デフォルトの名無しさん
2007/10/31(水) 12:12:54gcc -U__DATE__ -D__DATE__=\"hoge\" でいいだろ。
0054デフォルトの名無しさん
2007/10/31(水) 18:09:140055デフォルトの名無しさん
2007/11/02(金) 13:37:570056デフォルトの名無しさん
2007/11/06(火) 05:57:27http://kerneltrap.org/Linux/Fixing_Compiler_Misoptimizations
0057デフォルトの名無しさん
2007/11/07(水) 01:33:130058デフォルトの名無しさん
2007/11/07(水) 16:03:540059デフォルトの名無しさん
2007/11/08(木) 01:21:07まだ最適化のステージがgccには及ばない部分もあるかもしれない。
まだちょっとバグがあるけど、もう一歩で実用的になりそうな気配が。
結構appleがコミットしてるな。
offline optimizationとやらがいまいちよくわからないけど、
apiで簡単に使えるようなフレームワークがあるのかな?
llvm-gccで直にコンパイルしたらバイナリサイズが結構でかいんだが、
中に実行時最適化の為のコードが入ってるのかな。
どういう手順で使うのが普通なんだろ。
0060デフォルトの名無しさん
2007/11/08(木) 01:50:43ちょうどなんかフロントエンド向けのチュートリアルがupされた模様。
0061デフォルトの名無しさん
2007/11/08(木) 01:58:46compile-timeでもlink-timeでもない。
インストールした直後とか、利用者に指示された時。
0062デフォルトの名無しさん
2007/11/09(金) 18:40:120063デフォルトの名無しさん
2007/11/09(金) 19:35:45stage2でerrorになるのだが…
どうも、stage1で作ったxgccの動作確認で失敗してるみたい。
空のmain関数だけのtpをxgccでcompileして実行するとseg. faultで落ちる。
生成したアセンブリを見ると、spを変な値に設定してるようだ。
0064デフォルトの名無しさん
2007/11/10(土) 12:03:130065デフォルトの名無しさん
2007/11/12(月) 02:09:17-mtune=k7
とか、mtune指定するとダメなやつもあったり
そもそも-marchやるだけでダメなやつもあったり
-targetとか、あそこらへん指定すると cannot build executable とか出くさるものもあったり
0066デフォルトの名無しさん
2007/11/12(月) 20:43:38無効化できないものでしょうか?
0067デフォルトの名無しさん
2007/11/12(月) 21:39:39ふつうはOSの機能なんじゃないの?
0068デフォルトの名無しさん
2007/11/12(月) 21:41:350069デフォルトの名無しさん
2007/11/13(火) 17:21:26segmentation faltとかならgdbで場所を把握できるんですが,
exitで普通に終わってしまって..
0070デフォルトの名無しさん
2007/11/13(火) 17:37:520071デフォルトの名無しさん
2007/11/13(火) 18:29:12(gdb) b exit
(gdb) b _exit
では止まらないと申すか。
0072デフォルトの名無しさん
2007/11/16(金) 17:40:13#include <sys/types.h>
int main(void) { printf("%d\n",sizeof(size_t)*8; return 0; }
例えば上のようなプログラムでは
/usr/include/libのどのファイル使って実行ファイルを
作成するんでしょうか
できれば調べ方なんか知りたいですが
0073デフォルトの名無しさん
2007/11/16(金) 18:00:07gcc -v foo.c とか、
ldd 実行ファイル とか
0074デフォルトの名無しさん
2007/11/16(金) 19:04:28リンカにマップを吐かせると...
0075デフォルトの名無しさん
2007/11/17(土) 01:31:03OSはFreeBSD6.3-PRERELEASEで、C言語の勉強をしていました。
ソースは酷い有様なのでエラーが多発するのは分かるのですが、
何かいつもと違うメッセージが出まして・・・。
最後の3行が(手書きですが)
cc: Internal error: Segmentation fault: 11 (program ld)
Please submit a full bug report.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
と書いてありました。
これってどうしたら良いでしょうか。
放っておけば良いとは思うのですが、気になったものでして。
007675です
2007/11/17(土) 02:44:26コマンドを間違えて打っていました。
いつもは
cc -o (実行ファイルの名前) (ソースファイル)
で打っていたのですが今回
cc (実行ファイルの名前) (ソースファイル)
と打ち込んで実行していました。
お騒がせしました。
0078デフォルトの名無しさん
2007/11/18(日) 10:31:12何がリンクされたか一目瞭然じゃん
0079デフォルトの名無しさん
2007/11/18(日) 12:19:240080デフォルトの名無しさん
2007/11/18(日) 17:31:38個人的には常に後者を使ったほうがわかりやすいと思うんですけど
なんでライブラリなしのオプションがGCCにあるのでしょう?
0081デフォルトの名無しさん
2007/11/18(日) 17:39:45単にライブラリをリンクするだけじゃ対応できない部分があるので、
gcc的にもちゃんとthreadをサポートしてくれる(かもしれない)オプション。
0082デフォルトの名無しさん
2007/11/18(日) 18:31:14実際に試してみれば判るけど、若干できたバイナリに違いがあるから
特に指定のない限り-pthreadの方がいいと思われる。
0083デフォルトの名無しさん
2007/11/18(日) 18:40:24gccはスレッドローカル変数とかあって、
ライブラリに全部頼るわけにいかない部分もあるし。
0084デフォルトの名無しさん
2007/11/18(日) 20:23:57ま、infoにも詳しい情報ないししょうがないとは思うがw
0085デフォルトの名無しさん
2007/11/18(日) 20:38:290086デフォルトの名無しさん
2007/11/18(日) 20:45:18#include <pthread.h>と-lpthreadで全て済んでしまう。
0087デフォルトの名無しさん
2007/11/18(日) 20:45:45gcc的にも、というだけじゃなくOS(ライブラリ)的にもだけど。
>>85
gccで-pthreadまたは-pthreadsオプションがあるOSは
Linux, Darwin, *BSD, System V, HP-UX, AIX, Solaris
があるが、これら全て出来損ない? w
0088デフォルトの名無しさん
2007/11/18(日) 20:52:13完璧なOSはWindowsのみ
0089デフォルトの名無しさん
2007/11/18(日) 21:11:55と
つけないと正常に動作しない、
は全然違うぞ。
んで、出来ソコナイはどれ?Linuxは違うな。
0090デフォルトの名無しさん
2007/11/19(月) 00:14:110091デフォルトの名無しさん
2007/11/19(月) 01:30:12OSじゃなくてarch依存じゃなかったか。
それと、gccのinfoにはプリプロセサとリンカにマルチスレッドプログラムのコンパイルを行なっていることを伝えるオプションだと書いてあるだけで、実際に何が変化するのかは書いてなくない?
-D_REENTRANTとの関係も教えてくれ。i386のLinuxの話でいいから。
0092デフォルトの名無しさん
2007/11/19(月) 01:37:08>>87 には無理そうだが。
0093デフォルトの名無しさん
2007/11/19(月) 09:38:340094デフォルトの名無しさん
2007/11/19(月) 14:48:55009580
2007/11/20(火) 11:24:03レスをくれた人どうも。
とりあえずi386 GNU/LinuxのGCC -pthreadすると
プリプロセサで#define _REENTRANT 1が定義されますね。
あとはリンカで-lpthreadやってるだけなのかなあ。
0096デフォルトの名無しさん
2007/11/20(火) 11:28:40「pkgconfigとlibtoolの悪」
http://udrepper.livejournal.com/19395.html
で、-pthreadしてると-Wl,--as-neededが効かなくなるぞって話です。
で、pkgconfig/*.pcを検索してみたら-pthreadをしてるのはQt関連とgthreadだけ。
だったら、-pthreadを-D_REENTRANT -lpthreadで置き換えられないかなあ
と思って聞いたわけです。
ただ、たとえそうしてもLDFLAGS=-Wl,--as-neededをやるとコンパイルできない
プログラムなんかもあったりして不思議ですが。
0097デフォルトの名無しさん
2007/11/20(火) 16:57:23Linuxのmanでは「-pthread」はFreeBSD固有のオプションってなってるけど。。。
0098デフォルトの名無しさん
2007/11/20(火) 19:09:19偏屈なmanだな。
OSXでman gccしたらRS/6000andPowerPCのオプションに書いてあるな。
i386にはないんだろうか。
0099デフォルトの名無しさん
2007/11/20(火) 19:56:01Fedora 8に入ってるmanを見てみました。
gcc-4.1.2のマニュアルだと、
IA-64 Option, RS/6000 and PowerPC Options, SPARC Options
に書いてあります。
FreeBSD固有って書いてあるのは、Linux日本語manだけど、gcc-2.95.3の翻訳だから今となっては古い。
0100デフォルトの名無しさん
2007/11/21(水) 00:06:240101デフォルトの名無しさん
2007/11/21(水) 13:55:08ただGPLがらみでgcc止めるとか言い出している人いるから、
また諸々ぐだぐだになるかも。
0102デフォルトの名無しさん
2007/11/21(水) 21:43:37各モジュールがどう構成されているのかを知りたいのだけどどうすれば
いいのかな。知りたいのは以下の通り
読み取り専用データサイズ(コード+定数)
読み書き可能なデータサイズ
ゼロクリアされるデータサイズ
また動作しているアプリケーションのメモリ中、共有ライブラリが
使用しているメモリサイズ、ヒープ領域のサイズ、スタック領域のサイズ
も知りたいのだけど。どうしたらええんかな。
0103デフォルトの名無しさん
2007/11/21(水) 21:54:00$ lsof -p PID
じゃダメか?
ライブラリの使っているメモリの区分ってのは難しいな。
テキスト領域しか分からない。
別のヒープ、スタック使ってるわけじゃないから。
スタックについては、debuggerが頑張れば追跡可能だろうけども。
0104デフォルトの名無しさん
2007/11/21(水) 21:55:39gccのネタ関係なry
0105デフォルトの名無しさん
2007/11/21(水) 22:12:48ありがとう!sizeがまさに欲しかったものでした。
0106デフォルトの名無しさん
2007/11/21(水) 22:25:29/ \:\
.| ミ:::|
ミ|_≡=、´ `, ≡=_、 |;/
||. ◎ .| ̄|. ◎ |─/ヽ 我は成大作・姜尚中・張勲・郭光雄・成田豊・辛格浩・盧勝正公認
|ヽ二/ \二/ ∂> 恨憎貶日創価高麗大使である。お前が立てたスレッドをグレート
/. ハ - −ハ |_/ コリアレスリングエンターテインメントワイドショースレッドとして認定する。
| ヽ/ヽ/\_ノ / |
. \、 ヽ二二/ヽ / /
. \i ___ /_/
___
/ ?\ ナンミョウホウレンゲッキョウナンミョウホウレンゲッキョウナンミョウホウレンゲッキョウ
/ノ (@)\ ナンミョウホウレンゲッキョウナンミョウホウレンゲッキョウナンミョウホウレンゲッキ
.| (@) ⌒)\ ナンミョウホウレンゲッキョウナンミョウホウレンゲッキョウナンミョウホウレンゲッ
.| (__ノ ̄| | ///;ト, ナンミョウホウレンゲッキョウナンミョウホウレンゲッキョウナンミョ
\ |_/ / ////゙l゙l; ナンミョウホウレンゲッキョウナンミョウホウレンゲッキョウナンミョ
\ _ノ l .i .! | ナンミョウホウレンゲッキョウナンミョウホウレンゲッキョウナンミョ
/´ `\ │ | .| ナンミョウホウレンゲッキョウナンミョウホウレンゲッキョウナンミョ
| >>1 | { .ノ.ノ ナンミョウホウレンゲッキョウナンミョウホウレンゲッキョウナンミョ
| |../ / . ナンミョウホウレンゲッキョウナンミョウホウレンゲッキョウナンミョウ
0107デフォルトの名無しさん
2007/11/21(水) 23:38:06共有ライブラリ云々は、.soをsizeすればいい。
が、sizeで出力されるtextサイズには.rodataセクションのサイズは含まれていないと思う。そっちはreadelfかな。
あと、sizeじゃヒープとスタックのサイズもわからんだろう。それはいいのか?
簡単なのは、 /proc/pid/maps 見るとかかな。粒度荒いけど。
0108デフォルトの名無しさん
2007/11/22(木) 05:24:070109デフォルトの名無しさん
2007/11/23(金) 00:40:26出力付きでな。
0110デフォルトの名無しさん
2007/11/25(日) 23:06:34あの野郎あったら確実に・・・
まーここのスレとは関係ないが。
0111デフォルトの名無しさん
2007/11/28(水) 02:40:36http://www.anandtech.com/IT/showdoc.aspx?i=3162&p=6
4.1でこれなら4.2,4.3と結構速くなっきているから結構いい線いってんのかな?
まぁまだvectorizeはちょっと信頼性の部分で弱そうだけどね。。。
0112デフォルトの名無しさん
2007/11/28(水) 06:54:45>4.1でこれなら4.2,4.3と結構速くなっきているから結構いい線いってんのかな?
それはダウト
少なくとも4.2ではかなり遅くなった
4.3では性能向上…のはずが、いつのまにかパッとしない性能で仕上がっちゃってる
確かにvectorizeはどうもね…バグがまだ潰しきれてない感じ
0113デフォルトの名無しさん
2007/11/28(水) 08:07:28C数値計算はたまらんでしょうな。
0114デフォルトの名無しさん
2007/11/28(水) 10:34:28でもメーリングリストではコードの信頼性が上がるなら
性能などいくらでも落ちてよいって流れだったから
これからも性能は悪化し続けそう
0115デフォルトの名無しさん
2007/11/28(水) 14:00:28http://www.suse.de/~gcctest/ ではいい傾向になってるし
自分で試してもよくなった部分もあるんだけどな。
多分112と同じ人と思うけど、どこかuriポイントしてください。
0116デフォルトの名無しさん
2007/11/28(水) 14:07:52ってところじゃないのかな。
0117デフォルトの名無しさん
2007/11/28(水) 14:21:290118デフォルトの名無しさん
2007/11/28(水) 14:23:590119デフォルトの名無しさん
2007/11/28(水) 14:27:470120デフォルトの名無しさん
2007/11/28(水) 16:56:460121デフォルトの名無しさん
2007/11/28(水) 17:00:51>>118への答えになってないじゃないか。
0122デフォルトの名無しさん
2007/11/28(水) 17:05:250123anonymous
2007/11/28(水) 17:27:05そいつがまだ粘着しておるのか?
0124デフォルトの名無しさん
2007/11/28(水) 17:32:52その人は実行速度のことは気にしてないんじゃなかった?
0125デフォルトの名無しさん
2007/11/28(水) 17:49:00俺はC++の標準準拠最優先だから、人それぞれって事で。
0126デフォルトの名無しさん
2007/11/28(水) 22:29:320127デフォルトの名無しさん
2007/11/28(水) 22:40:30俺はコンパイル速度よりもコンパイル後の実効速度さえ速ければいいや。
0128デフォルトの名無しさん
2007/11/29(木) 10:30:05configureしてmakeすると、parse-scan.cが見つからないと出てしまい、
それはネットで拾ってきて入れたら、通ったのですが、今度は
java/jv-scan.o: In function `main':
../.././gcc/java/jv-scan.c:221: undefined reference to `main_input_filename'
と出て、その解決方法がわかりません。そのchar*型変数自体はgcc/toplev.cに宣言されているので、
toplev.hにextern宣言して、jv-scan.cに明示的にインクルードしてみたんですが、それでもダメです。
この解決方法や解決案について誰か教えてください。
SuSE Linux 10.1です。
0129デフォルトの名無しさん
2007/11/29(木) 10:47:05bisonがinstallされてないと生成できません。
・エラーメッセージをちゃんと読んでない
・かなり無茶をしている
・既にそのbuild環境はダーティ
なので、冷静になって初めからやり直してください。
SuSEなら何の問題もなく作成できると思います。
0130デフォルトの名無しさん
2007/11/29(木) 20:03:13ご回答どうもありがとうございました^^)
bisonをインストールしたら、gccも無事にビルド出来ました!
P4 1.8GHzでmakeに4時間もかかったよママン
0131デフォルトの名無しさん
2007/11/29(木) 23:53:12gccは2.95が最高、以後はクソ
gccは2.95が最高、以後はクソ
gccは2.95が最高、以後はクソ
gccは2.95が最高、以後はクソ
gccは2.95が最高、以後はクソ
gccは2.95が最高、以後はクソ
gccは2.95が最高、以後はクソ
gccは2.95が最高、以後はクソ
gccは2.95が最高、以後はクソ
gccは2.95が最高、以後はクソ
gccは2.95が最高、以後はクソ
gccは2.95が最高、以後はクソ
0132デフォルトの名無しさん
2007/11/30(金) 00:30:070133デフォルトの名無しさん
2007/11/30(金) 01:58:04何かの陰謀なのかねえ
0134デフォルトの名無しさん
2007/11/30(金) 07:21:500135デフォルトの名無しさん
2007/12/01(土) 23:27:43オアーオアーオアオアオアー
0136デフォルトの名無しさん
2007/12/05(水) 08:18:57情報を求めてwiki等を見回っていると、
gcc javaはネイティブなコードを出力するとあります。
これはVM上で動作するバイトコードではなく、マシンで直接動作するバイナリコードという事でしょうか?
又、gccの言語間の関数、クラス等の呼出は可能でしょうか。
0137デフォルトの名無しさん
2007/12/05(水) 11:38:51ネイティヴコードってのはそういうこと.gcjは以下の変換ができる.
- Javaソースコード→プラットフォームのネイティブコード
- Javaソースコード→Java クラスファイル
- Java クラスファイル→プラットフォームのネイティブコード
>又、gccの言語間の関数、クラス等の呼出は可能でしょうか。
gcj の場合はJNIかCNIのいずれかの規約にしたがってのみCやC++のAPIを呼びだせる.
0138デフォルトの名無しさん
2007/12/05(水) 11:55:00ずいぶんとgcjでコンパイルできるようになってきたね。
0139デフォルトの名無しさん
2007/12/05(水) 12:04:010140デフォルトの名無しさん
2007/12/05(水) 14:02:16> gcc自体はC2D用とかそういうチューニングはしてなくて
いやそうじゃなくてコードが腐ってるんだよ、コンパイル時間が遅いのもそのせいw
http://pc11.2ch.net/test/read.cgi/jisaku/1195376856/766
0141デフォルトの名無しさん
2007/12/05(水) 16:33:48JavaなんてC++で言うところのRTTIを使いまくりなんだしさあ。
ハゲがC++をvirtual宣言してないとオーバーライドできない糞仕様にしたのも
パフォーマンスの問題があるからでしょ(つまり糞仕様じゃないってことなんだけど)
0142デフォルトの名無しさん
2007/12/05(水) 23:15:500143デフォルトの名無しさん
2007/12/05(水) 23:55:27vtbl経由するコストだけで、オーバーロードは関係ないだろ。
0144デフォルトの名無しさん
2007/12/06(木) 09:11:100145デフォルトの名無しさん
2007/12/16(日) 13:29:49#include <string>
using namespace std;
int main(void){
stringstream ss;
string str;
ss.str("test1 test2 test3");
// ss >> str; //←この行のコメントを外すと、コンパイルは通るが実行するとセグメンテーションフォルト
return 0;
}
>gcc --version
2.96
バグですか?
0146デフォルトの名無しさん
2007/12/16(日) 13:42:22バージョンが古すぎて調べる気にもならん。
0147デフォルトの名無しさん
2007/12/16(日) 13:58:44管理者に言ってバージョンあげてもらいます。
0148デフォルトの名無しさん
2007/12/16(日) 17:39:350149デフォルトの名無しさん
2007/12/19(水) 00:32:39テキトーにマイナス3くらいしたバグだらけの古いもの採用するVine Linuxとかある
本当に実績のあるものを選んでいるわけではなく、まさにテキトー。
最強バグ版のGCC4.0.2採用しているあたり実績で見てるわけじゃない
0150デフォルトの名無しさん
2007/12/19(水) 19:42:190151デフォルトの名無しさん
2007/12/20(木) 15:00:05GCCでコンパイル時と別のコンパイラでコンパイル時とを
#ifで分けたいのですが、GCCでコンパイル時必ずdefineされる
マクロってありますか?
0152デフォルトの名無しさん
2007/12/20(木) 15:09:190153デフォルトの名無しさん
2007/12/20(木) 15:19:01__GNUC_MINOR__
__GNUC_PATCHLEVEL__
0154デフォルトの名無しさん
2007/12/20(木) 15:21:44#if ( __GNUC__ >= 4 )
かな
0155デフォルトの名無しさん
2007/12/20(木) 22:11:00>>153
>>154
ありがとうございました。助かりました。
0156デフォルトの名無しさん
2007/12/23(日) 01:06:10特殊かもしれんが
0157デフォルトの名無しさん
2007/12/23(日) 04:28:24gcc 2.9.6
gcc 3.2.3
から、
RELE version5のgcc 4..xに変更したんだけど、コードの修正メンドくせー、
互換性無いのって悲しいね。
0158デフォルトの名無しさん
2007/12/23(日) 09:31:31○コードが汚い
ザルだった文法チェックに救われていただけ
0159デフォルトの名無しさん
2007/12/23(日) 10:01:110160デフォルトの名無しさん
2007/12/23(日) 10:36:37Cだとgccの移行は簡単だけど、C++だと悲惨。
2->4なんて。
コンパイルエラー/ウォーニングになるのはいいけど、
コンパイラが検出できない奴など。
例えばlookupのルール変更とか。
ADLは便利だけど、難しいから。
0161デフォルトの名無しさん
2007/12/23(日) 17:53:45馬鹿コーディングだから移行が難しいんだよ。
俺も新人だった頃の自分のコードを呪ったよ。
きちんとしたコードはすぐ移行できた。
0162157
2007/12/23(日) 23:53:40トークンの連結
型(int -> bool)
プロトタイプ宣言
関係が9割超
0163デフォルトの名無しさん
2007/12/30(日) 00:12:030164デフォルトの名無しさん
2007/12/30(日) 00:37:490165デフォルトの名無しさん
2008/01/07(月) 09:31:10バグ潰し終わらねー感じ
使ってみてもICEとかc++のスコープとか色々おかしい印象がある
開発者がんばってくれー
0166デフォルトの名無しさん
2008/01/08(火) 02:18:54mudflapというオプションを初めて知った。 ひで〜ネーミングだな。
0167デフォルトの名無しさん
2008/01/15(火) 18:42:33という条件下だと、fPICって常に付与してていいもんなのか?
0168デフォルトの名無しさん
2008/01/15(火) 23:54:54> cat a.c
#include "stdio.h"
#define AAA(a) BBB(#a)
void BBB(char *str) {
printf("%s\n", str);
}
int main() {
AAA(あ"い");
BBB("あ\"い\"");
}
> gcc --input-charset=cp932 --exec-charset=cp932 a.c
> a.out
あ"磚
あ"い"
AAAの方とBBBの方で両方同じ結果が得られそうなのですが、
AAAの方でうまくいっていないのを解決したいと思っています。
ここでは標準出力していますが、内部文字コードはSJISのまま解決したいと思っています。
よろしくお願いいたします。
0169デフォルトの名無しさん
2008/01/16(水) 08:04:12http://homepage2.nifty.com/m_kamada/fractalp.htm#mandelbmp_c
のサイトにある、complex.hを読んでいるんですが、
gccでマクロを展開してここのソースを読むと、
/* setjmp(cjmpenv)の返却値 */
#define C_DIVIDE_BY_ZERO 1 /* 0で除算しようとした */
#define C_ARG_ZERO 2 /* 0の角度を求めようとした */
略
#endif
#if __GNUC__==2
#define complex __complex__
#define Re(z) (__real__ (z))
#define Im(z) (__imag__ (z))
#else
typedef struct {
double re;
double im;
} complex;
などごっそり書いてあった部分が、
/* setjmp(cjmpenv)の返却値 */
# 24 "complex.h"
typedef struct {
double re;
double im;
} complex;
# 77 "complex.h"
/* xの実数部にsを加える */
# 89 "complex.h"
/* xの虚数部にsを加える */
と、# 24 "complex.h"や# 77 "complex.h"などに置き換えられているようです。
この#24や#77はどういう意味なのでしょうか?
0170デフォルトの名無しさん
2008/01/16(水) 08:25:473.4では化けるね
4.2.2だと化けなかった
0171デフォルトの名無しさん
2008/01/16(水) 08:26:18「複素数値を持つ式 exp から実数部を抽出するには、
__real__ exp と書きます。同様に、虚数部を抽出するには __imag__ を使います。これはGCCの拡張である。」
とあり、printf("b=%d + %d I¥n", __real__ exp, __imag__ exp); で複素数表示出るのですが、
コレは__real__ という関数名なのでしょうか?
でも関数だと( )が必要だし....
そもそも__みたいな変な名前のマクロをどういう意図で作ったのでしょうか?
complex.hを見ても良くわかりませんでした。
__のような物がつくプログラムを見たのが初めてで、非常に理解に苦しんでいます。
0172デフォルトの名無しさん
2008/01/16(水) 11:22:26マクロ展開前の行番号。コンパイル時にエラー行を表示するためにそう
いう情報を残す必要がある。
>>171
sizeof と同じような形式の演算子だと思えばいいんじゃない?
__は単に名前の一部。
0173デフォルトの名無しさん
2008/01/16(水) 12:18:350174デフォルトの名無しさん
2008/01/16(水) 12:25:520175デフォルトの名無しさん
2008/01/16(水) 12:42:41お返事有り難うございます。
>普通の名前と喧嘩しないように __ を付けるのは慣例
>慣例じゃなくて予約されているんだが
確かに__って普通の変数には付けないですからね。
どうも有り難うございました。
0176デフォルトの名無しさん
2008/01/16(水) 13:09:020177デフォルトの名無しさん
2008/01/16(水) 13:10:14スレ汚しすまん
0178デフォルトの名無しさん
2008/01/17(木) 01:56:01Aでコンパイル
Bで実行。
Bで、はいたコアダンプを冢ってgdbを使いたい場合は
Aでmakefile(自動生成)使ってまっす。
どうしたら、ディレクトリ構造とか再現してソース追っかけながらデバッグできますか?
makefileに答え有りますか?
0179デフォルトの名無しさん
2008/01/17(木) 02:03:30文が変だた
0180デフォルトの名無しさん
2008/01/17(木) 02:04:18Bでgdbserver走らせるのが一番楽じゃない?
0181デフォルトの名無しさん
2008/01/17(木) 02:08:28おとなの事情というか会社の事情で無理なんです
0182181
2008/01/17(木) 02:30:08Aにもgdbserverがデーモンのように動く必要ありますか?
Bにも同じgdbserverが必要ですよね?
Aで負荷高くなりそうですね
0183デフォルトの名無しさん
2008/01/17(木) 03:33:23あ、ごめん、コアの話しか。 そういう機能はgdbserverにはないね。
0184デフォルトの名無しさん
2008/01/17(木) 16:43:02__real__って何なんだ?
関数ではないしcomplex.hにも定義されていない。
gcc機能拡張ってのがよくまずわからない。
特殊な演算子なんですか?
0185デフォルトの名無しさん
2008/01/17(木) 16:50:58わからないなら自前の構造体定義すれば?
0186デフォルトの名無しさん
2008/01/17(木) 17:06:00何をわかる必要があるというんだろう。sizeof だってどこかのヘッダで
定義してあるわけじゃないけど使えるでしょ?
infoの説明はこれだけしかないけど、これで十分つかえるじゃないか。
> To extract the real part of a complex-valued expression EXP, write
> `__real__ EXP'. Likewise, use `__imag__' to extract the imaginary
> part.
0187デフォルトの名無しさん
2008/01/17(木) 17:06:53http://www.asahi-net.or.jp/~wg5k-ickw/html/online/gcc-2.95.2/gcc_4.html#SEC72
0188デフォルトの名無しさん
2008/01/23(水) 22:06:35GCC 4.3 もリリースモードへ突入
0189デフォルトの名無しさん
2008/01/26(土) 10:38:15それともprintf?
0190デフォルトの名無しさん
2008/01/26(土) 12:07:11printfの方が早いな
0191デフォルトの名無しさん
2008/01/26(土) 15:55:53ドコでも使えて簡単だから…
0192デフォルトの名無しさん
2008/01/26(土) 16:15:010193デフォルトの名無しさん
2008/01/26(土) 18:11:31debuggerのbreakpointsでprintfするんじゃなくて?
埋め込みなんてここ5年くらいやったことないわ。
0194デフォルトの名無しさん
2008/01/26(土) 19:12:440195デフォルトの名無しさん
2008/01/27(日) 01:52:180196デフォルトの名無しさん
2008/01/27(日) 02:09:060197デフォルトの名無しさん
2008/01/27(日) 02:13:550198デフォルトの名無しさん
2008/01/27(日) 02:22:410199デフォルトの名無しさん
2008/01/27(日) 13:40:490200デフォルトの名無しさん
2008/01/27(日) 13:43:31つか「デバッグトレース」って、デバッグ目的のトレース実行とか、
呼び出し順の出力のことじゃね?
0201デフォルトの名無しさん
2008/01/27(日) 14:10:360202デフォルトの名無しさん
2008/01/27(日) 15:47:470203デフォルトの名無しさん
2008/01/27(日) 18:41:45それなんですか?
0204デフォルトの名無しさん
2008/01/27(日) 18:44:020205デフォルトの名無しさん
2008/01/27(日) 18:44:420206デフォルトの名無しさん
2008/01/27(日) 18:44:580207デフォルトの名無しさん
2008/01/27(日) 18:47:270208デフォルトの名無しさん
2008/01/31(木) 08:26:24とりあえず「ミングダブリュー」って言うな。
0209デフォルトの名無しさん
2008/01/31(木) 08:33:440210デフォルトの名無しさん
2008/01/31(木) 14:46:43ミンジーダブリュー?
0211デフォルトの名無しさん
2008/01/31(木) 14:54:590212デフォルトの名無しさん
2008/01/31(木) 15:57:190213デフォルトの名無しさん
2008/01/31(木) 16:07:33>MinGWの規範となる発音は未だ決定されていないが、一般的には、
>"ming wee", "min gee double-u","ming double-u" or "min gnu"
>などのように発音されている。
いい加減なもんだよな…
0214デフォルトの名無しさん
2008/01/31(木) 18:00:390215デフォルトの名無しさん
2008/01/31(木) 18:10:400216デフォルトの名無しさん
2008/01/31(木) 19:56:540217デフォルトの名無しさん
2008/01/31(木) 20:09:070218デフォルトの名無しさん
2008/01/31(木) 22:15:040219デフォルトの名無しさん
2008/01/31(木) 22:19:040220デフォルトの名無しさん
2008/02/01(金) 00:27:13前は「みんぐぃん」て発音できたが今のは悩む・・・
0221デフォルトの名無しさん
2008/02/01(金) 00:55:58みにまりすとぬーふぉーういんどーず
と読むと?
0222デフォルトの名無しさん
2008/02/01(金) 00:57:210223デフォルトの名無しさん
2008/02/01(金) 06:29:390224デフォルトの名無しさん
2008/02/01(金) 07:54:170225デフォルトの名無しさん
2008/02/01(金) 09:09:52また、それを嘆くさま。
0226デフォルトの名無しさん
2008/02/01(金) 16:20:090227デフォルトの名無しさん
2008/02/01(金) 17:30:480228デフォルトの名無しさん
2008/02/01(金) 19:12:490229デフォルトの名無しさん
2008/02/02(土) 10:21:55GCC 4.2.3 has been released.
0230デフォルトの名無しさん
2008/02/03(日) 23:00:40GCC のソースコードを読み解いて理解したいと思っているのですが,
手始めに,あるいはコードを解読する際のガイドとして読んでおくべき
書籍あるいはサイトで,有用なものとしてはどんなものがありますでしょうか?
英語でもまったくかまいません.
一応,自分が読んで理解したい部分は
C++ コンパイラの字句・構文解析部 (フロントエンド部と呼ぶようですけれど) です.
0231デフォルトの名無しさん
2008/02/03(日) 23:47:28コンパイラを作りたいか?カスタマイズしたいのか?
0232デフォルトの名無しさん
2008/02/03(日) 23:54:560233230
2008/02/04(月) 01:04:00茨の道なのは重々承知のつもりでお聞きしています.
動機は最終的にはカスタマイズですけれど,
純粋に GCC の挙動を理解するだけでも得るものはあるかとは思っています.
0234デフォルトの名無しさん
2008/02/04(月) 01:55:12は今でも非推奨ですか?
0235デフォルトの名無しさん
2008/02/04(月) 02:00:16最終目標がGCCのカスタマイズなら、最初からGCCのソースを追えばいいかもね。
コンパイラの作り方を知りたいなら、ソースから読むのは学習効率が悪い。
ついでに、GCCはスパゲティだし大きいしで選択肢としても良くない。
もしまだ知らないなら、古典のdragon bookを読むとか、flex & bisonを触るとか
その辺からでは。最近の事情はわからんので、もっと手っ取り早い方法があるかも。
もしかして、GCCの最適化エンジンとかプロセッサ対応とかのバックエンド側を
いじりたいんではなく、フロントエンド側(入力言語)を拡張したいん?
GCCのドキュメントのどこかに一通り書いてありそうだが、漏れは知らんわ。すまん。
GENERICやGIMPLEを探ればいいんかな。
0236230
2008/02/04(月) 02:13:34非常に参考になる意見ありがとうございます.
>もしまだ知らないなら、古典のdragon bookを読むとか、flex & bisonを触るとか
dragon book は持ってはいますが気合入れて読んだことがなかったです.頑張って精読します.
flex & bison も玩具程度の弄り方しか試してなかったので,ちょっと本気で触ってみます.
>もしかして、GCCの最適化エンジンとかプロセッサ対応とかのバックエンド側を
>いじりたいんではなく、フロントエンド側(入力言語)を拡張したいん?
はい,バックエンド側には今のところほとんど興味がありません.
最終的な目標はフロントエンド側 (入力言語……といいますか C++) の拡張です.
ただ,これはあくまで最終的な目標として設定しているだけです.
0237デフォルトの名無しさん
2008/02/04(月) 02:42:19gccじゃなくて
0238デフォルトの名無しさん
2008/02/04(月) 02:56:440239デフォルトの名無しさん
2008/02/04(月) 11:11:06> なんかそういうプロジェクトをどこかで見たような
> gccじゃなくて
COINS?
0240デフォルトの名無しさん
2008/02/04(月) 11:24:340241デフォルトの名無しさん
2008/02/04(月) 13:41:11つまり、拡張仕様の入力から独自仕様の出力を得ている模様。
0242デフォルトの名無しさん
2008/02/04(月) 15:55:420243デフォルトの名無しさん
2008/02/04(月) 16:55:04まずyacc & bisonの勉強
次に http://gcc.gnu.org/readings.html , GCC-specific Literature
特にtoy example languageとRTL
C++拡張ということならOpenC++ (今はもう更新してないみたいだが)
0244230
2008/02/04(月) 20:11:15>>240
構文チェックなどについては GCC に実装されている部分を流用し,
interact させたいので,独立した preprocessing は今のところ考えていないです.
>>243
色々助言していただいて本当に助かります.
0245デフォルトの名無しさん
2008/02/05(火) 01:21:21wxWidetsっていうのを使ってプログラミングしてるんですが、
g++ -o hello2 hello2.o `wx-config --libs`
みたいにやると
/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
って言われてしまい、コンパイルできません。何がいかんのでしょう??
これだけだと分からないと言われそうなのですが、ソースがちょっと長いので・・
でも参考サイトの指示通りに書いた簡単なプログラムなので、ソースじゃなくて何か基本的な設定とかが間違ってるんじゃないかと思ってここに来ました。
OSはubuntu7.1.0です。他のプログラムならコンパイル出来ている状態です。(やはりソースが間違ってるんでしょうか・・)
どなたかアドバイス頂けると幸いです。
0246デフォルトの名無しさん
2008/02/05(火) 01:24:07http://alohakun.blog7.fc2.com/?all
ILogScriptがgcc4.xに対応してほしいぜ。
誰かやってくれよ。
0247デフォルトの名無しさん
2008/02/05(火) 01:27:100248デフォルトの名無しさん
2008/02/05(火) 01:31:180249245
2008/02/05(火) 04:35:12247さんありがとうございましたm(_ _)m
0250デフォルトの名無しさん
2008/02/05(火) 05:21:072月初旬の予定だそうだよ。
0251デフォルトの名無しさん
2008/02/05(火) 19:35:15未だにこれが直ってないのでr300の人はご注意を。
0252デフォルトの名無しさん
2008/02/06(水) 01:48:52またおまえかw
0253デフォルトの名無しさん
2008/02/06(水) 07:53:050254デフォルトの名無しさん
2008/02/06(水) 09:43:58> R800でもいいけど。
懐かしいね
0255デフォルトの名無しさん
2008/02/06(水) 12:29:30なんか最近、wxの・・・更に言うならwx-configの話題をよく見かけるな
どこかで流行ってるのかね
0256デフォルトの名無しさん
2008/02/09(土) 23:35:10VC++でいうとプロパティ -> リンカ -> 参照の「参照されないデータを除去する」です。
GCCのバージョンは4.2.2で、組み込み向けのクロス環境です。
0257デフォルトの名無しさん
2008/02/10(日) 00:08:40んで、--as-neededがそれなのかな?よく知らないいけど。
gccから渡すには、-Wl,LFLAGSのようだけど。
0258デフォルトの名無しさん
2008/02/10(日) 00:11:14正直スタティックリンクまわりは普段使ってないのでどうにも...
0259デフォルトの名無しさん
2008/02/10(日) 01:16:300260259
2008/02/10(日) 01:30:59関数だけじゃなく、グローバル変数も除去したいなら、-fdata-sectionsも要るな。
「データ」って書いてあるので一応補足。
>>257
それは、ライブラリを必要に応じてリンクしろというオプションだから今は関係内ね。
ldに渡すのは--gc-sectionsだったかな。
0261256
2008/02/10(日) 01:45:00-ffunction-sections -Wl,--gc-sectionsを試してみましたが、目立った効果は無いみたいです。
COFFなのが原因かもしれないです。
0262デフォルトの名無しさん
2008/02/10(日) 01:50:37ELFのstatic linkでしか試したことが無い。
0264デフォルトの名無しさん
2008/02/10(日) 09:33:30また手書きのパーザに戻したらしいよね。なんでなんだろ?
普通にパーザジェネレータ使ってた方が、何かと便利だろうに。
0265デフォルトの名無しさん
2008/02/10(日) 09:48:34C++がLALRでパースするのはキツい変態言語ってだけでは。
0266デフォルトの名無しさん
2008/02/10(日) 10:25:440267264
2008/02/10(日) 13:25:54なんか下のpdfの冒頭、凄いこと書いてるな。自然言語パーザの方がふさわしいって?
いや辞書片手に読んでるだけだから、誤読かもわからんけど。
まあ上手く動いてるなら、いいか。。。
できるだけ、へたな努力はしないで欲しいんだけどな。。。
つか、パーザジェネレータ使う方が「へたな努力」になってしまうって事?
・・・あれ?そうすると、「へたな努力」って何なんだっけ?
ちょっと電波板で独り言つぶやいてくる。
0268デフォルトの名無しさん
2008/02/10(日) 13:40:19>従来のアプローチよりも C++ のパースに向いている事を発見した。
って書いてあるね。
GLR法
http://ja.wikipedia.org/wiki/GLR%E6%B3%95
0269デフォルトの名無しさん
2008/02/10(日) 13:42:00それでも bison は使えないんだろうか?
0270デフォルトの名無しさん
2008/02/10(日) 15:38:050271デフォルトの名無しさん
2008/02/10(日) 15:55:34馬鹿げた方法だけど C++ なら全部ヘッダに inline で書く手もw
0272デフォルトの名無しさん
2008/02/10(日) 18:27:31C++って、自然言語に匹敵しかねないほど文法が複雑ってことか……
0273デフォルトの名無しさん
2008/02/11(月) 01:16:460274ストラウストラップ
2008/02/11(月) 01:21:570275デフォルトの名無しさん
2008/02/11(月) 05:16:32びよんびよ〜ん
0276デフォルトの名無しさん
2008/02/11(月) 07:05:280277デフォルトの名無しさん
2008/02/11(月) 10:33:400278デフォルトの名無しさん
2008/02/19(火) 05:32:130279デフォルトの名無しさん
2008/02/19(火) 23:01:130280デフォルトの名無しさん
2008/02/21(木) 09:49:070281デフォルトの名無しさん
2008/02/21(木) 10:13:140282デフォルトの名無しさん
2008/02/26(火) 01:44:12binutilをいじればいいの?
何か参考になる書籍があれば教えて。
0283デフォルトの名無しさん
2008/02/26(火) 06:22:390284デフォルトの名無しさん
2008/02/26(火) 13:44:23ありがとう
0285デフォルトの名無しさん
2008/02/29(金) 02:16:520286デフォルトの名無しさん
2008/03/02(日) 00:53:35fork()のとき、どっちのプロセスも追っていきたい
ときってどうすればいいんでしょうか?
ただしソースコードはいじれないとします。
0287デフォルトの名無しさん
2008/03/02(日) 03:01:440288デフォルトの名無しさん
2008/03/05(水) 03:54:21bzip2を-O1でコンパイルしたバイナリと、-fauto-inc-dec以下24つのフラグでコンパイルしたバイナリとで、
同一のファイルを圧縮するのにかかる時間を比較したところ、同等の結果が得られませんでした。
-fauto-inc-dec以下24つのフラグでコンパイルしたバイナリは、何も最適化フラグを与えずにコンパイルしたバイナリと
同程度の結果になりました。どうしてこの様な結果になるのでしょうか。
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options
0289デフォルトの名無しさん
2008/03/05(水) 05:51:10「-Oは以下の最適化フラグを有効にする」と書いてあるけど、それしか
しないとは書いてない。
gccのソースを見ると、「最適化レベルが1以上なら〜」というコードが
けっこう見付かるはず。
0290デフォルトの名無しさん
2008/03/05(水) 11:59:59各最適化オプション -fxxx は -O が前提となってたりする。
だから -O 指定せずに -fxxx 指定して効果がなくてもそんなもの。
最適化フラグ指定でんでんはGCCのソース嫁
でんでん…
0291デフォルトの名無しさん
2008/03/05(水) 12:02:040292デフォルトの名無しさん
2008/03/05(水) 13:28:350293デフォルトの名無しさん
2008/03/05(水) 13:32:220294デフォルトの名無しさん
2008/03/05(水) 13:46:500295デフォルトの名無しさん
2008/03/05(水) 14:48:23くく書くのは個人的には嫌いだ。
0296デフォルトの名無しさん
2008/03/05(水) 22:58:230297デフォルトの名無しさん
2008/03/06(木) 01:59:27実はディスクの方が律速で差が出なかったとか。
というかどうやって計って、どういう結果になったのか
書いてもらわんと難しいと思うわけで。
0298デフォルトの名無しさん
2008/03/06(木) 11:22:03ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.3.0
0299デフォルトの名無しさん
2008/03/06(木) 14:35:38ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-4.3.0/
0300デフォルトの名無しさん
2008/03/06(木) 15:12:450301デフォルトの名無しさん
2008/03/06(木) 16:07:590302デフォルトの名無しさん
2008/03/06(木) 22:25:450303デフォルトの名無しさん
2008/03/07(金) 13:26:470304デフォルトの名無しさん
2008/03/07(金) 16:13:380305デフォルトの名無しさん
2008/03/08(土) 05:30:08じゃなきゃ糞だが
0306デフォルトの名無しさん
2008/03/08(土) 06:24:090307デフォルトの名無しさん
2008/03/08(土) 11:33:424.1から4.3で何が良くなったのか簡潔に頼む。
0308デフォルトの名無しさん
2008/03/08(土) 11:39:080309デフォルトの名無しさん
2008/03/08(土) 19:44:394.1.2 http://fate.multimedia.cx/index.php?build_record=6158
4.2.3 http://fate.multimedia.cx/index.php?build_record=6169
gcc svn 133010, built 2008-03-07 http://fate.multimedia.cx/index.php?build_record=6163
0310デフォルトの名無しさん
2008/03/08(土) 21:56:34思っていて、最適化フラグが-O2の場合は4.2より4.3の方が若干良いという印象を持っていたのでそう書いたのでけど、
実は-O3の場合は事情が違って、4.2の方が4.3より良い結果になると思っています。つまり、
gcc-4.2-O2<gcc-4.3-O2<gcc-4.3-O3<gcc-4.2-O3
の順に性能が良くなると思っています。fateというベンチはstdout textを見ると-O3でコンパイルされているので
4.2の方が4.3より良い結果になるというのは順当だと思います。
0311デフォルトの名無しさん
2008/03/08(土) 22:20:144.3はforward propagationが大幅に書き換えられているから、
4.2のの頃の結果から4.3の振る舞いを推測するのは危険だぞ。
0312デフォルトの名無しさん
2008/03/09(日) 13:19:28あくまで自分が使うプログラムでってことだけど
0313デフォルトの名無しさん
2008/03/09(日) 18:47:180314デフォルトの名無しさん
2008/03/09(日) 23:34:14まあ、警告が不十分だった事に起因してる点があれば
30% 程度は GCC にも責任があるかもしれないが。
0315デフォルトの名無しさん
2008/03/09(日) 23:35:17http://gcc.gnu.org/gcc-4.3/cxx0x_status.html
Status of Experimental C++0x Support in GCC 4.3
Rvalue references N2118 Yes
Rvalue references for *this N2439 No
Variadic templates N2242 Yes
Static assertions N1720 Yes
Declared type of an expression N2343 Yes
Right angle brackets N1757 Yes
Default template arguments for function templates DR226 Yes
Extern templates N1987 Yes
C99 Features in C++0x
__func__ predefined identifier N2340 Yes
C99 preprocessor N1653 Yes
long long N1811 Yes
もちろんg++起動オプションでオンにしたときだけ。
http://gcc.gnu.org/gcc-4.3/changes.html
0316デフォルトの名無しさん
2008/03/10(月) 00:37:24まさかgccはlintにするために作ってるわけじゃあるまいに。なんだその30%て。
0317デフォルトの名無しさん
2008/03/10(月) 19:19:11比べてやはり遅いんだなってのは体感しました。所がアプリによりつけたフラグによっては動きが悪くなる
ってのも体感。
なので自分はソースが読めないのでgcc4.2シリーズの-march=native -O2のみにして全部これでやることに
しました。それなりに快適に動いてます。
少し前からgcc4.3の最適化は4.2よりいいと書いてある記事をみて開発版の4.3を入れたけど
なんか動きがかなり違う。コンパイルが出来ない(一切フラグをつけなくても)物も出てきた。
それどころかある設定をしないとカーネルでさえコンパイル出来ないんですね・・・・
ググってカーネルのmakeファイルに設定を追加して出来上がった物も動きが悪いです・・・
やはり今回の正式リリースもカーネルとかそのままコンパイル出来ないんでしょうか?
まあ、それは対策が解るからいいものの、使った感じちょっとソースが読めないような自分が使う物ではないな
と感じたです。コンパイルエラーが出たのをネットでググる時間が(TT)
0318デフォルトの名無しさん
2008/03/10(月) 20:08:320319デフォルトの名無しさん
2008/03/10(月) 20:14:00じゃあ正式リリース版のgcc4.3.0では何もいじらなくてカーネルコンパイルくらいは平気で出来るの?
4.2シリーズは開発版だろうがまるで神経使わなかったけど。
0320デフォルトの名無しさん
2008/03/10(月) 20:15:000321デフォルトの名無しさん
2008/03/10(月) 20:17:07答えられないような人は黙っててよww
0322デフォルトの名無しさん
2008/03/10(月) 20:28:23開発版を入れる神経を疑いはするが、4.3が安定しているかどうかは知らない。
私ゃ態々カーネルをコンパイルし直すほど暇じゃないんでね。
0323デフォルトの名無しさん
2008/03/10(月) 20:39:370.3秒かかってたのが0.27秒とかになったとしても
0324デフォルトの名無しさん
2008/03/10(月) 21:15:340325デフォルトの名無しさん
2008/03/10(月) 22:08:500326デフォルトの名無しさん
2008/03/10(月) 22:27:47安定とかの問題以前でgccサイドとカーネルサイドの意見が違っててどっちも直さないってのが
ある筈なんだけど・・・
gcc4.3、カーネルと聞いて思い浮かばないようならもう話はいいですww
0327デフォルトの名無しさん
2008/03/10(月) 23:07:27リリースされたばかりのコンパイラを使わない方がいいと思うよ
> やはり今回の正式リリースもカーネルとかそのままコンパイル出来ないんでしょうか?
あなたにはよく分からないことだから。
0328デフォルトの名無しさん
2008/03/11(火) 00:04:11コンパイル時に二つのオプションを使うことってできるのでしょうか?
例えば、若干スレ違い臭いのですが、質問させてください。
例えば、
`wx-config --cppflags` と `pkg-config --cflags gtk+-2.0`
を同時に使いたいのです。
同時に使えるとしたらどのように書けばいいのでしょうか。
どなたかご教示頂けると幸いです。
0329328
2008/03/11(火) 00:05:150330デフォルトの名無しさん
2008/03/11(火) 00:10:10そのくらいの経緯は書いて欲しいな。
というか、向こうでレスついたぞ。
0331329
2008/03/11(火) 00:16:00すいません、そういうもんなのですか。以後気をつけます。
レスついたみたいですね。ありがとうございましたm(_ _)m
0332デフォルトの名無しさん
2008/03/11(火) 01:48:360333デフォルトの名無しさん
2008/03/11(火) 02:30:21http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32044#c28
0334デフォルトの名無しさん
2008/03/11(火) 02:33:55GCCコミッテーに文句つけて今の版のバグフィックスをしろよ、クソハゲドモと外人に文句垂れてくるんなら
俺は得に気に留めないよ。
0335デフォルトの名無しさん
2008/03/11(火) 02:38:16http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e40cd10ccff3d9fbffd57b93780bee4b7b9bff51
正直、コンパイル猿になるよりもずっと有意義なことがいくらでもあります。
何か一つターゲットを絞って深く追ってみるのならいいけどね。
0336sage
2008/03/13(木) 10:12:58__asm__ (
"imull %%edx\n\t"
"idivl %3\n\t"
: "=a" (result) /* out */
: "a" (m1), "d" (m2), "g" (d) /* in */
: "ax", "dx" /* mod */
);
return result;
}
でコンパイルするとcan't find a register in class ‘AREG’ while reloading ‘asm’とのエラーが表示され、コンパイルできません。
どのように改善したら良いでしょうか。
0337デフォルトの名無しさん
2008/03/13(木) 10:35:04何を参考にしました?
0338sage
2008/03/13(木) 10:38:28ソースを見てみたらわけわからんという状態です。
0339デフォルトの名無しさん
2008/03/13(木) 12:18:370340デフォルトの名無しさん
2008/03/13(木) 12:44:180341デフォルトの名無しさん
2008/03/13(木) 23:18:520342デフォルトの名無しさん
2008/04/06(日) 00:24:12同時に渡したときどちらが採用されるのでしょうか?
gcc -ggdb3 -O0 -g -O2 -c src.c -o src.o
と実行したときsrc.oは「-ggdb3 -O0」それとも「-g -O2」?
0343デフォルトの名無しさん
2008/04/06(日) 08:01:450344デフォルトの名無しさん
2008/04/06(日) 11:48:45You can mix options and other arguments. For the most part, the order
you use doesn't matter. Order does matter when you use several options
of the same kind; for example, if you specify `-L' more than once, the
directories are searched in the order specified.
機能が被る場合にどうなるかは明記されてないが
理解の一助にはなるかな?
0345デフォルトの名無しさん
2008/04/06(日) 12:36:300346デフォルトの名無しさん
2008/04/06(日) 16:25:440347デフォルトの名無しさん
2008/04/06(日) 16:44:170348デフォルトの名無しさん
2008/04/06(日) 17:19:21Windowsでの効果は知らないけれど、Linuxの場合はタスクスイッチングを強制させるのに使える。
要は「最低0秒」止まるので、他に処理するべきプロセスがあればそちらを実行することになる。
# 逆に言えば、最悪何秒も止まりっぱなしになるかもしれない。
0349デフォルトの名無しさん
2008/04/06(日) 20:31:520350デフォルトの名無しさん
2008/04/06(日) 20:52:21システムコールからそのまま戻るにしても既に送られたシグナルがあれば
戻る直前でシグナルハンドラが走る。
あとUNIXによってはsleepはプロセスタイマを使う可能性があるらしいので
ユーザプログラム側でタイマを使う場合は注意が必要かも。
0351デフォルトの名無しさん
2008/04/07(月) 11:58:14それはスレッドだから、>>348の言っていることとは違う。
pthread実装はカーネル・スレッドばかりじゃないから。
0352デフォルトの名無しさん
2008/04/07(月) 15:23:450353デフォルトの名無しさん
2008/04/07(月) 15:29:270354デフォルトの名無しさん
2008/04/07(月) 15:33:12LIBRARY_PATH
とか?
0355デフォルトの名無しさん
2008/04/07(月) 17:50:52LD_LIBRARY_PATH
0356デフォルトの名無しさん
2008/04/08(火) 13:10:13この2つのライブラリが相互に依存しているので、
undefined エラーになります。
libfoo1.a libfoo2.a のソースをいじることなく、
うまくリンクすることはできないでしょうか?
0357デフォルトの名無しさん
2008/04/08(火) 13:17:09存しているかなど、もうちょっと詳しい情報が欲しいけど、とりあえず
gcc .... -lfoo1 -lfoo2 -lfoo1
のような感じでできへん?
libfoo1.aとlibfoo2.aをバラして1つのlibfoo.aにしてしまうとかも。
0358デフォルトの名無しさん
2008/04/08(火) 13:44:25http://sourceware.org/binutils/docs/ld/Options.html#index-groups-of-archives-127
0359デフォルトの名無しさん
2008/04/09(水) 13:51:180360デフォルトの名無しさん
2008/04/09(水) 13:53:28要するにコンパイル(リンク)時か、実行時か。
0361デフォルトの名無しさん
2008/04/09(水) 16:39:29どうやってやるの?
IとかLとかでいちいち指定するの?
それともmake?小さいプログラムではわざわざmakeなど使いたくないのだが。
0362デフォルトの名無しさん
2008/04/09(水) 16:41:320363デフォルトの名無しさん
2008/04/09(水) 17:14:24CFLAGS=-I/usr/include/foo
LDFLAGS=-L/usr/include/foo -lfoo
default: foo
これだけ。foo.cから実行ファイルfooを作る。
0364デフォルトの名無しさん
2008/04/10(木) 10:28:43ディレクトリを取得する方法はありますか?
-nostdincを指定してるソースからstdarg.h等を使いたいのです。
0365デフォルトの名無しさん
2008/04/10(木) 11:13:220366デフォルトの名無しさん
2008/04/10(木) 16:07:1700001ffb t hageとでるのに
int main() {
return hage();
}
のようにhageを呼び出してるプログラムのリンクが失敗するのですが
どのような原因が考えられますでしょうか?
gcc -g -O0 main.c -o huga -L. -lhoge
main.c:2: undefined reference to `hage`
collect2: ld はステータス 1 で終了しました
0367デフォルトの名無しさん
2008/04/10(木) 16:19:410368デフォルトの名無しさん
2008/04/10(木) 17:02:270369デフォルトの名無しさん
2008/04/10(木) 17:43:360370デフォルトの名無しさん
2008/04/10(木) 22:06:32t ってことはローカルシンボルじゃん
0371デフォルトの名無しさん
2008/04/14(月) 20:54:13newlibと組み合わせてビルドはうまくいってるんですが、
libstdc++のgchファイルがかなりサイズを食っていて扱いづらいです。
実際には、C++の言語本体の機能だけ利用できれば十分です。
configure時にうまく無効にする方法などあれば教えてください。
0372デフォルトの名無しさん
2008/04/15(火) 13:19:53configure --help
やってみたら、何か出るかも?
0373デフォルトの名無しさん
2008/04/15(火) 13:22:43オプションってありましたっけ?
なんかあったような気もするけど、ぐぐってもヒットせんかった。
0374デフォルトの名無しさん
2008/04/15(火) 13:25:400375デフォルトの名無しさん
2008/04/15(火) 13:35:46記録させることはできないが、-finstrument-functions で hook させることはできる。
ググればいろいろ出てくるが、
http://www.ibm.com/developerworks/jp/linux/library/l-graphvis/index.html
ここがわかりやすいな。
0376デフォルトの名無しさん
2008/04/15(火) 13:56:20なにこれー!今日ほど2chが役に立った日はないわ。ちょーさんくすこ。
0377デフォルトの名無しさん
2008/04/15(火) 14:23:08--enable-libstdcxx-pch build pre-compiled libstdc++ headers
[default=$is_hosted]
0379デフォルトの名無しさん
2008/04/24(木) 20:53:48ユーザーが作った関数へ、後から動的に値を埋め込む方法はありませんか?
言語処理系のコールバックの実装で、
その関数が呼び出された時に、その値を参照したいのです。
グローバル変数や、アセンブラを使えば作れるのですが、
できれば使わずに済ませたいので。
0380デフォルトの名無しさん
2008/04/24(木) 21:00:190381デフォルトの名無しさん
2008/04/24(木) 21:00:260382デフォルトの名無しさん
2008/04/24(木) 21:28:310383デフォルトの名無しさん
2008/04/24(木) 21:30:04いやそうじゃなくて。
言い方を変えれば、関数とユーザー値を組み合わせて
新しい関数を作れるかって事です。
その新しい関数は、呼び出し時に
なんらかの方法でユーザー値を受け取れる事。
0384デフォルトの名無しさん
2008/04/24(木) 21:31:21ユーザー値をその関数の引数に入れる事はできません。
0385デフォルトの名無しさん
2008/04/24(木) 21:39:56f(pg) { return ((int (*)())pg)(); }
main() {
printf("%d\n", f(make_closure(g, 1)));
return 0;
}
この場合2が表示される。
make_closureとclosure_refを作れるか
fはstdlib.hのbsearchやqsortのように、
任意のライブラリの可能性もある。
(当然gはその型に合った関数型になる)
0386デフォルトの名無しさん
2008/04/24(木) 21:55:20#include <boost/tr1/functional.hpp>
#include <boost/utility/result_of.hpp>
#include <cstdio>
template<typename T>
T g(T x)
{
return x + 1;
}
template<typename T>
typename boost::result_of<T ()>::type
f(T g)
{
return g();
}
int main()
{
std::printf("%d\n", f(std::tr1::bind(g<int>, 1)));
}
0387デフォルトの名無しさん
2008/04/24(木) 22:02:29C++の型拡張による物は呼び出し側(f相当)を限定してしまうので不可です。
あくまで汎用的なコールバックに使える事が前提なので。
一応nested functionで限定的にできる事は判っています。
0388デフォルトの名無しさん
2008/04/24(木) 22:08:04その限定というのは、boost::function (もしくはstd::tr1::function)で何とかなるものではない?
0389デフォルトの名無しさん
2008/04/24(木) 22:16:17boost::functionでできそうです。
ありがとうございます。
0390デフォルトの名無しさん
2008/04/25(金) 13:47:24つ ttp://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Nested-Functions.html
0391デフォルトの名無しさん
2008/05/03(土) 12:17:28http://mail-archives.apache.org/mod_mbox/www-announce/200805.mbox/%[email protected]%3e
0392デフォルトの名無しさん
2008/05/20(火) 07:48:27> GCC 4.2.4 is now available to download from gcc.gnu.org and ftp.gnu.org
0393デフォルトの名無しさん
2008/05/24(土) 14:54:03コンパイルが出来ない物が出てきたから一時は諦めたけど、最近C++関連は(sijc,glibmm,cairomm,gtkmmなど)
全部同じコンパイラーじゃないとうまく動かないというのを知ってその辺全部3.4でコンパイル。
使用してみた感じ、コンパイル(-O2のみ)した各アプリの動きが良い。カーネル2.6.25もGCC3.4でコンパイル。
立ち上がりとかも早くなりました。dmesgの左に出る起動時の細かい時間とかも早くなっているのが解る。
GCCの4シリーズなどは、その新機能を生かすソースを書いてあげないとあまり意味が無いんでしょうか・・・
快適なのでとりあえずしばらく3.4メインにしようかな。
0394デフォルトの名無しさん
2008/05/24(土) 16:53:22気のせいですよ。
0395デフォルトの名無しさん
2008/05/24(土) 17:50:220396デフォルトの名無しさん
2008/05/24(土) 18:26:300397デフォルトの名無しさん
2008/05/24(土) 21:59:58アセンブリの差はCPU側の処理方法によって優劣付けにくいから。
それにしてもgcc替えてまでやっての感想が「気がします」とは
だんだんオーヲタみたいになってきたな。電源ケーブルを純銅にしたら
電気の流れが速くなってキビキビ動作になりました!と変わらん。
0398デフォルトの名無しさん
2008/05/24(土) 22:49:16気になるなら調べてください。
調べる気がないなら気にしない方がいいです。
0399デフォルトの名無しさん
2008/05/24(土) 23:14:13自前コンパイルなら機種依存オプションまで付けろ、と。
0400デフォルトの名無しさん
2008/05/24(土) 23:30:40電源ケーブルは材質よりインピーダンスとアース極性チェックが大事。
信号線の方は俺は純銀ケーブルにしてる。無酸素銅とどっちが良いかはなんとも言えんが。
0401デフォルトの名無しさん
2008/05/24(土) 23:38:43うん。そういう風にわかってこだわるのはいいんだ。
>>393は試したって-O2だけかよ、って小一時間問い詰めたい。
実際のところ、カーネルとかマルチメディア系とかはコンパイラの癖にまで
依存したギリギリのチューニングが施されている場合があるから、
コンパイラの能力を評価するにはフェアじゃない。
0402デフォルトの名無しさん
2008/05/25(日) 12:02:120403デフォルトの名無しさん
2008/05/28(水) 22:45:06http://groups.google.com/group/comp.lang.forth/browse_frm/thread/545177ea53944038/eebaa14010b86c61?hl=en#eebaa14010b86c61
gccは2.95が最速、あとは遅くなるだけだぜ、みたいな話
0404デフォルトの名無しさん
2008/06/01(日) 03:00:30自動化してくれる方法はないでしょうか?
0405デフォルトの名無しさん
2008/06/01(日) 03:07:00gdbの起動時にスクリプトを実行する機能があるよ。
詳細はmanでも読んで。
0406404
2008/06/01(日) 03:14:36.gdbinitというファイルをカレントディレクトリに用意して
以下のように書いてうまくいきました。
exec-file ./test.exe
symbol-file ./test.exe
r
b main
0407デフォルトの名無しさん
2008/06/02(月) 02:34:00コンパイルしたソースファイルの名前を、
ディレクトリも含んだ状態でオブジェクトファイルに格納する
らしいのですが、
どこに書かれているのでしょうか?
0408デフォルトの名無しさん
2008/06/02(月) 07:35:540409デフォルトの名無しさん
2008/06/07(土) 02:34:16GCC 4.3.1 has been released.
0410デフォルトの名無しさん
2008/06/09(月) 14:32:10波数とパルスの詳細が知りたいので、教えてください。
4オクターブを想定しています。
0411デフォルトの名無しさん
2008/06/09(月) 14:47:42GCC関係あるのか?
どういうプラットフォームで何からどうやって音を出そうというのかを
はっきりさせて下のスレあたりで聞いたほうがいいように思う。
サウンドプログラミング4
http://pc11.2ch.net/test/read.cgi/tech/1185340076/
0412デフォルトの名無しさん
2008/06/11(水) 12:28:28*.h.gchが作られますけど、release用とdebug用の二つのプリコンパイル済みヘッダを
使いわけたいときなんかは、皆さんどのようにしてますか?
0413デフォルトの名無しさん
2008/06/11(水) 15:48:52コピーしてから使ってるなぁ。
0414デフォルトの名無しさん
2008/06/11(水) 15:58:590415デフォルトの名無しさん
2008/06/11(水) 16:02:27によると、*.h.gch というディレクトリを作って、その中にそれぞれ用のプリコンパイルヘッダを置いておくといいらしい・・・
0416412
2008/06/11(水) 22:22:02*.h.gchディレクトリ以下で、コンパイルオプションが同じものを勝手に使ってくれるようです。
プリコンパイル済みヘッダのファイル名はなんでもいいようです。
0417デフォルトの名無しさん
2008/06/14(土) 17:28:44この度、新しいプロジェクトでlinuxでC++の実装を担当することになったのですが
VisualStudioの生ぬるい環境に、長い間どっぷり浸っていたせいで
いまいち、調子がよくありません
gcc(g++)の環境で、VisualStudioのようなデバッガーって無いのでしょうか?
0418デフォルトの名無しさん
2008/06/14(土) 18:14:020419デフォルトの名無しさん
2008/06/14(土) 19:47:48Thx
Eclipseをインストールして、続けてC++の開発環境もインストールしました
実装に専念できそうです
0420デフォルトの名無しさん
2008/06/14(土) 22:03:300421デフォルトの名無しさん
2008/06/15(日) 00:25:520422デフォルトの名無しさん
2008/06/15(日) 00:46:170423デフォルトの名無しさん
2008/06/15(日) 01:29:330424デフォルトの名無しさん
2008/06/15(日) 03:30:540425デフォルトの名無しさん
2008/06/15(日) 09:16:050426デフォルトの名無しさん
2008/06/15(日) 13:48:10ん?xyzzy が便利なんですが。CL だし。
0427デフォルトの名無しさん
2008/06/15(日) 13:50:55憶えるための最初の一歩を踏み出す気が起きない。
0428デフォルトの名無しさん
2008/06/15(日) 14:49:38最適化オプションを何もつけていないのに
return -1;の部分が最適化されて消えてしまうことってありますか?
int func(void) {
// この関数が呼ばれた時点でバグなのでデバッグ時は無条件にアサートさせる。
assert(false);
// リリース時に万が一呼ばれたときはエラー値を戻す。
return -1;
}
0429デフォルトの名無しさん
2008/06/15(日) 14:51:500430デフォルトの名無しさん
2008/06/15(日) 15:07:12gccは最適化ナシでも簡単なフロー解析(この場合、あからさまに到達不能なブロック)はやっている。
assert() 内部では __attribute__((noreturn)) なファンクションが呼ばれている。
あとはわかるな?
0431428
2008/06/15(日) 15:55:11どうもです。
以下のソースを
gcc -S -o test.s test.c
と
gcc -S -DNDEBUG -o test2.s test.c
とすると挙動がわかりました。
ありがとうございました。
#include <assert.h>
void f(void)
{
assert(0);
int i = 0;
++i;
}
0432デフォルトの名無しさん
2008/06/18(水) 01:00:22後ろの方が強いのですか?
gcc -ggdb -gxxx
0433デフォルトの名無しさん
2008/06/18(水) 22:12:530434デフォルトの名無しさん
2008/06/18(水) 23:56:53ということで3.4使いつづけとります。
0435デフォルトの名無しさん
2008/06/19(木) 00:39:250436デフォルトの名無しさん
2008/06/19(木) 02:02:010437デフォルトの名無しさん
2008/06/19(木) 02:09:27思い出してもageません?
0438デフォルトの名無しさん
2008/06/19(木) 13:22:48http://lwn.net/Articles/286539/
0439デフォルトの名無しさん
2008/06/19(木) 20:38:48これはつまり
gcc cxx.cpp
ができるようにするからくりというわけ?
0440デフォルトの名無しさん
2008/06/19(木) 21:36:180441デフォルトの名無しさん
2008/06/19(木) 21:51:260442デフォルトの名無しさん
2008/06/19(木) 22:14:20そっか逆か。ありがと。
0443デフォルトの名無しさん
2008/06/19(木) 23:08:06混沌としてほしい
0444デフォルトの名無しさん
2008/06/20(金) 08:48:26内部のモジュール化が進むといいなあ。
0445デフォルトの名無しさん
2008/06/25(水) 01:07:280446デフォルトの名無しさん
2008/06/29(日) 23:26:34gcc -S -fverbose-asm の出力を見ると、-mno-sse を付けているにも関わらず -msse が有効になっています
実際、アセンブリを見ても SSE 系の命令が出力されています
0447デフォルトの名無しさん
2008/06/30(月) 01:01:06-mfpmath=387
0448デフォルトの名無しさん
2008/06/30(月) 01:56:55それを付けても駄目みたいです
また GCC 4 系ではそれを付けなくても -mno-sse が有効になります
0449デフォルトの名無しさん
2008/06/30(月) 02:01:23>GCC 3.4 x86_64 で -mno-sse が効かないんですが、理由が分かる人はいますか?
横な質問なんですけどx86_64でSSEの無いCPUって何ですか?
0450デフォルトの名無しさん
2008/06/30(月) 02:28:49あまり詳しいことは書けないけど
XMM レジスタを使わないことが前提のアセンブリコードや CPU エミュレータがあるので
C ソースファイルをコンパイルするときに SSE コードを生成して欲しくない
あるいは浮動小数点演算自体の使用を禁止する運用も可能だけど
その場合、浮動小数点演算を使用しているソースをコンパイルエラーで弾くくらいはする必要がある
0451デフォルトの名無しさん
2008/07/01(火) 16:46:130452デフォルトの名無しさん
2008/07/02(水) 00:25:02GCC 4 なら -mno-sse だけで -mno-sse2 -mno-sse3 まで付きますし
GCC 3.4 はそれらを併用しても駄目ですね
0453デフォルトの名無しさん
2008/07/02(水) 00:51:05windowsだとlong modeでFDP/MMX系のレジスタは一切使わない。
スタックフレームもレジスタ優先でほとんど使わないし、
そのとき実数データの受け渡しにXMMレジスタ使ってる。
XMM使うなというのが無理な話状態なのです。
0454デフォルトの名無しさん
2008/07/07(月) 00:18:00gdbの中でグローバル変数の一覧を取得(表示)する方法はありますかね?
ローカル変数に関してはinfo localsがありますが。
0455デフォルトの名無しさん
2008/07/07(月) 01:05:590456デフォルトの名無しさん
2008/07/07(月) 02:39:050457454
2008/07/07(月) 09:49:28えっとグローバルなbssとdataのシンボルを見ろということですかね?
やってみたんですが、自分がいじってるプログラムではどうもconstな変数が
textにいるように見えるんですが... ldの挙動をコントロールしているようで。
デバッグのときだけ「普通」にリンクするというのはありかもしれませんが...
>>456
やってみるとなんかエントリーが重複して見えるんですが、そんなもんですかね。
ちなみにinfo localsと違って値を表示してくれたりはしないんですね。
0458デフォルトの名無しさん
2008/07/12(土) 17:05:47今はmake時に引数で`date`なんかを渡す方法を使ってるけど
そのdefineを使うソースがコンパイルの対象になっていない限り
反映されないので、いまいち使い勝手がわるいんです
0459デフォルトの名無しさん
2008/07/12(土) 17:12:50それからコンパイル。
0460デフォルトの名無しさん
2008/07/12(土) 17:15:100461デフォルトの名無しさん
2008/07/12(土) 17:26:04その方向でやってみます
となると、次はMakefileスレだな
0462デフォルトの名無しさん
2008/07/12(土) 17:43:50フォーマット考えると自分でやったがいいか
0463デフォルトの名無しさん
2008/07/12(土) 18:08:17hoge:
絶対コンパイルしたいファイルをコンパイル
でいいんじゃね?
0464デフォルトの名無しさん
2008/07/12(土) 20:39:260465デフォルトの名無しさん
2008/07/12(土) 21:02:580466458
2008/07/12(土) 21:20:32コンパイルする必要がないときでもmake叩くと必ずコンパイルされてしまう
というのは俺の精神衛生上よくないことがわかりました
0467デフォルトの名無しさん
2008/07/12(土) 22:36:370468デフォルトの名無しさん
2008/07/13(日) 00:51:20バイナリのMD5ハッシュと時刻をログファイルに記録すればいいんじゃね。
0469デフォルトの名無しさん
2008/07/13(日) 01:02:01インストールしたてのcygwinにgcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
がインストールされているので、gccを最新版の4.3.1にしようと思ったのですが。
configure --prefix=/usr/local とし、
make したら
/home/***/gcc-4.3.1/i686-pc-cygwin/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp:108: error: invalid use of incomplete type 'class __gnu_pbds::detail::thin_heap_<Value_Type, Cmp_Fn, Allocator>'
のところで詰まってビルドが止まってしまいます。
この原因についてご存知の方いらっしゃいませんか?
0471デフォルトの名無しさん
2008/07/13(日) 09:04:25それはmakefileの書き方でいくらでも回避できるんじゃね?
最後のlinkする所のtargetの中で依存関係無しにちょろっとccしてしまえばいいんじゃ
0472デフォルトの名無しさん
2008/07/13(日) 10:07:05とかやって、
strings -a hogehoge
とかやると、読めなくもない。
0473デフォルトの名無しさん
2008/07/13(日) 10:09:39tail -c [文字数] hogehoge
でもいける。
後から偽の時刻を埋め込まれたら知らんけど。
0474デフォルトの名無しさん
2008/07/13(日) 10:36:17コンパイラのほうで実現するのは気持ち悪いとか言ってるから、
スクリプトとか他のもので好きなように実現するのがいいんじゃないのか?
0475デフォルトの名無しさん
2008/07/13(日) 11:08:07領域を確保しておいて、ビルドした後で実行ファイル(ライブラリかも知らんが)を
直接書き換えればいいんでは。
0476デフォルトの名無しさん
2008/07/13(日) 19:12:12$(shell date).c:
0477デフォルトの名無しさん
2008/07/17(木) 04:56:52VC++のソースをGCCでmakeしようとして、
いくつかの違いのエラーで悩まされてしまいました。
それで、どうやっても解決策・代用策が思い浮かばない点を質問させてください。
this->m_char_table[ (add_unsigned<T>::type)c] = this->m_char_table_index;
このように、テンプレートの型をunsignedにキャストして利用したいのですが
GCCではエラーとなります。
こういう使い方は出来ないのでしょうか?
また代用の方法はないのでしょうか?
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
を使用しています。
よろしくお願いします。
0478マイク ◆yrBrqfF1Ew
2008/07/17(木) 07:26:46ちょい書き込みtest
0479デフォルトの名無しさん
2008/07/17(木) 09:13:45エラー張ってくれよ。
0480デフォルトの名無しさん
2008/07/17(木) 09:14:200481デフォルトの名無しさん
2008/07/17(木) 09:51:06__DATE__ __TIME__でいける。
例
const char aaa[] = __DATE__ __TIME__;
0482477
2008/07/17(木) 13:49:10cの型はテンプレート(T)です。
基本的には、char、wchar_t、int、shortなどを取ります。
それ以外の型が入れられる事はないようにはなっていますが
基本的には特定はされません。(自分用のライブラリなので整数以外を取る事はありません)
>>479
error: dependent-name ` add_unsigned<T>::type' is parsed as a non-type, but instantiation yields a type
です。役に立ちますでしょうか?
よろしくお願いします。
0483477
2008/07/17(木) 13:52:17そのエラーメッセージの後に
note: say `typename add_unsigned<T>::type' if a type is meant
と出ており、そのとおりやったら解決しました。
盲点でした。
どうもありがとうございました。
0484デフォルトの名無しさん
2008/07/17(木) 13:55:51英語で書いてあるところか?
0485デフォルトの名無しさん
2008/07/17(木) 14:04:14VC++6.0組?
0486デフォルトの名無しさん
2008/07/17(木) 14:19:246.0、2003、2005、2008で試したけど問題にならんよ。
VC++はなぁなぁだからなぁ・・・。
IEとかと同じで、その辺がMSの製品って好まれるんだろうね。
いいとは思わんけど、ちゃんと規格にそってる方が敬遠される状態は勘弁してもらいたい。
0487デフォルトの名無しさん
2008/07/17(木) 14:23:04普通に考えればtypenameをキャスト時にするのはおかしいもの。
次に>>477が詰まるのは、wchar_tかなw
wchar_tを取りうるって言ってるし。
GCCのwchar_tは欠陥品な上、
文字コードの統一の問題が・・・w
0488デフォルトの名無しさん
2008/07/17(木) 15:02:465.4 Explicit type conversion (cast notation)
8.1 Type names
7.1.5.3 Elaborated type specifiers
くらい読めよ。
あと「GCCの規格」なんてバカな言葉は使うな。
どうせいうなら「GCCの仕様」あるいは「GCCの実装」だ。
wchar_tもいい加減なこと言ってるよなあ。
0489デフォルトの名無しさん
2008/07/17(木) 15:46:450490デフォルトの名無しさん
2008/07/17(木) 15:59:02あれほど必要の無い理解しがたい仕様をつめるのは
頭の悪い俺には理解できんよ(笑)
0491デフォルトの名無しさん
2008/07/17(木) 16:00:39typename 修飾子って本来ライブラリの管轄じゃないだろ・・・
0492デフォルトの名無しさん
2008/07/17(木) 16:03:540493デフォルトの名無しさん
2008/07/17(木) 17:34:460494デフォルトの名無しさん
2008/07/17(木) 17:39:14最初からエラーメッセージ張らない人だから、
そもそもエラーメッセージを読まない人なんじゃないかとw
0495デフォルトの名無しさん
2008/07/17(木) 17:59:12最初の質問で、エラーの内容は理解してると思われる。
ただ、エラー以外をみなかった。ということだろう。
いやね、俺もその傾向あるからわかるんだが
コンパイラってだいたいロクなメッセージ伝えてこないから
エラーそのものしか見る気しないのよ。そのエラーすら別の箇所による問題によって
引き起こされてたりするので、そのまんま信じるわけじゃないし。
1つエラー出ると、大量にどうでもいいメッセージが出るから、頭の中でフィルタかけないとエラーは解決できない。
0496デフォルトの名無しさん
2008/07/17(木) 18:22:530498デフォルトの名無しさん
2008/07/18(金) 10:12:000499デフォルトの名無しさん
2008/07/18(金) 10:25:03Makefileで常にコンパイルするファイルをそれにしておけばいいんじゃね
0500デフォルトの名無しさん
2008/07/18(金) 12:14:13消えろ
0501デフォルトの名無しさん
2008/07/18(金) 12:17:07.oが出来た日時をCのソースから利用したい。
a.outが出来た日時をCのソースから利用したい。
どっちなの? 前者なら>>481でFAでしょ?
後者なら>>464の方法で出来るよね。
もっと違うこと?
0502458
2008/07/18(金) 13:10:48バージョンを取得する関数のあるソースを hoge.c としたとき
hoge.o を他の全オブジェクトに依存させればいいのかな?
やってみるよ。
0504デフォルトの名無しさん
2008/07/18(金) 15:04:3530秒考えてようやく仕様が分かったw
>>501の後者って事だよね。
>>464の言っている別解だが、
.PHONY: hoge.o
これで「hoge.o is up to date」になることなく、
hoge.oが必要とされれば、タイムスタンプ比較をショートカットして、
毎回ルールに基づいて生成しようとする。で、
a.out: $(OBJS) hoge.o
としておけばいい。
0505デフォルトの名無しさん
2008/07/18(金) 15:56:12それソースが更新されてないときでも、生成されね?
0506デフォルトの名無しさん
2008/07/18(金) 16:17:450507デフォルトの名無しさん
2008/07/18(金) 16:50:47$(COMPILE) $(CFLAGS) hoge.c
$(LINK) $(OBJS) hoge.o
0508デフォルトの名無しさん
2008/07/18(金) 17:14:44下のコードって通らない、というか間違った書き方なんでしょうか?
環境はubuntuのg++4.1.3です
template< typename T >
class test
{
friend class test< T >; <<ここで怒られてる
public:
int aaa;
};
0509デフォルトの名無しさん
2008/07/18(金) 17:20:07読んだ?
0510508
2008/07/18(金) 17:38:43と出ていました。
英語もわからずGUIでしか操作したことないとGCCなんて使うこと出来なさそうだなぁ。
0511デフォルトの名無しさん
2008/07/18(金) 17:45:220512デフォルトの名無しさん
2008/07/18(金) 17:51:40・・・実体が違うなら同じクラスでもpraivateに触れないと思ってました。
ありがとう!
0513デフォルトの名無しさん
2008/07/18(金) 20:56:110514デフォルトの名無しさん
2008/07/19(土) 09:00:41ちっとは英語の勉強しようよ。なんだそのスペリングミスは。
0515デフォルトの名無しさん
2008/07/19(土) 09:08:09さすがにキーワード間違えないだろ
0516デフォルトの名無しさん
2008/07/19(土) 09:32:080517デフォルトの名無しさん
2008/07/23(水) 00:32:51あるシンボルの中身が存在するかどうかってソースレベルでチェックできる?
存在しないシンボルを参照してもリンカがエラーを吐かないことが前提で・・・
0518517
2008/07/23(水) 00:47:49サポートしてるのは MacOS X だけっぽい
諦めてほかの方法を探すかな
0519デフォルトの名無しさん
2008/07/23(水) 01:29:49実行時にシンボルの中身が存在するか判定したいんだったら遅延リンクでもいいんじゃね?
0520デフォルトの名無しさん
2008/07/23(水) 01:48:10つ dlopen(3)
0521デフォルトの名無しさん
2008/07/23(水) 06:42:03オブジェクトのリンク状況つうのは、
foo.c
#include <stdio.h>
int bar_magic = 0 __attribute__ ((weak));
int is_bar(void)
{
return 0;
}
int main(void)
{
printf("%d\n", is_bar());
return 0;
}
bar.c
int is_bar(void)
{
return 1;
}
とかやって、
$ gcc -o foo foo.c && ./foo
$ gcc -o foo foo.c bar.c && ./foo
の結果が変わるでいいんですか?
0522517
2008/07/23(水) 19:07:38質問の仕方が下手ですまん。
最終的には組み込む予定のとある関数を、一時的に外したいが #ifdef などでソースを切り分けたくない。
シンボルの中身の有無がプログラム中から判別できれば、 makefile 側でリンクするオブジェクトを
管理するだけなので楽かなと思った。
>>520
条件の後出しで申し訳ないが、組み込み環境なので動的リンクはちょっときつい。
>>521
weak_import じゃなくて weak で良かったのか。どうもありがとう!
int weak_func(void) __attribute__ ((weak));
/* int weak_func(void) { return 1; } */
int main(void)
{
if (weak_func)
{
dbg_print("Function exist\n");
}
else
{
dbg_print("Function not exist\n");
}
return 0;
}
0523デフォルトの名無しさん
2008/07/23(水) 20:59:400524517
2008/07/23(水) 23:48:01俺宛てかな?実はそこが問題になるとはあまり考えてなかった。
中身が無いことを前提にしたシンボル参照をソースで意図出来れば、
当然リンカもエラーは吐かないだろうと思ってたので。(そしてその通りになった)
でも気にしてくれてありがとう。
今後の予定としては、間違えて同名のシンボルを別のソースで定義してしまい
関数が上書きされたことに気づかずバグに苦しむ。というストーリーを計画しています。
0525デフォルトの名無しさん
2008/07/24(木) 17:14:000526デフォルトの名無しさん
2008/07/24(木) 17:17:210527デフォルトの名無しさん
2008/07/24(木) 18:37:23400MHzのアナルスペックで3時間くらい放置してる絶望
0528デフォルトの名無しさん
2008/07/24(木) 19:31:190529デフォルトの名無しさん
2008/07/24(木) 20:51:42もし余ってるマシンがあるなら、distccで分散コンパイルとかどうよ。
C++だとエラー出まくりで、コンパイルできなかったりするけど。(これは俺の設定が悪いのかな?)
0530デフォルトの名無しさん
2008/07/24(木) 22:41:16メインのPCは修理に出してしまったから、400MHzの一台しかないんだよ…
やっと3時間くらいでstage1が終わったから、朝までつけっぱなしで終わりそうかな
マルチコアCPUなら-j 2とか付けたいんだけど…
0531デフォルトの名無しさん
2008/07/25(金) 09:25:12ひとつでも-j 2はこうかてきめんだよ。
HDDに書いてる間CPUひまだし
0532デフォルトの名無しさん
2008/07/25(金) 17:15:29クアッドコア使えるのに。
0533デフォルトの名無しさん
2008/07/25(金) 18:26:220534デフォルトの名無しさん
2008/07/25(金) 19:21:390535デフォルトの名無しさん
2008/07/25(金) 19:33:240536デフォルトの名無しさん
2008/07/25(金) 20:02:57素直にバイナリ落としてきた
0537デフォルトの名無しさん
2008/07/25(金) 20:03:33RPMファイルの作成には長い時間が必要となる。
1GHzのCeleronで実行したところ、14時間以上かかった。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/642opt686.html
0538デフォルトの名無しさん
2008/07/26(土) 21:28:10クロスコンパイルするにはどうすればいいのでしょうか
まず何が必要なのでしょうか?
とりあえずGCC,binutil,glibcを用意してみたのですが…
0539デフォルトの名無しさん
2008/07/26(土) 22:05:49http://linux.bytesex.org/cross-compiler.html
でどうよ?
0540デフォルトの名無しさん
2008/07/27(日) 05:47:44configure --helpすれ。
0541デフォルトの名無しさん
2008/07/27(日) 09:35:55すげーどめいんw
0542デフォルトの名無しさん
2008/07/27(日) 10:15:19ttp://www.catb.org/jargon/html/B/byte-sex.html
0543デフォルトの名無しさん
2008/07/27(日) 15:02:15もしかして:
www.bitesex.com
0544デフォルトの名無しさん
2008/07/27(日) 19:37:15vmware に NetBSD 入れて /usr/src/build.sh -m alpha tools
0546デフォルトの名無しさん
2008/07/27(日) 19:48:130547デフォルトの名無しさん
2008/07/29(火) 00:34:26とりあえずGCC,binutil,glibcだけでなんとかなるor541の方法ってことでOK?
binutils入れてみようとおもったのですがconfigureで HOST=~には使っているマシンの
状況を書けばいいのかな? それともプログラムのバイナリを実行させる先の
事をかけばいいのか…
HOST=CPU-COMPNY-SYSTEM ってことらしのですが
CentOSでPentium4のマシン使っている場合だとx86-centos-linuxで
いいんですかね?
0548デフォルトの名無しさん
2008/07/29(火) 00:46:44カナディアンクロスやるんじゃなければ
ホストは configure が勝手に発見してくれるので
/path/to/configure --target=
で桶
いろいろほげってダメだったらまた濃い
0549548
2008/07/29(火) 00:50:02カナディアンクロスもある程度考慮されてるので
"Linux ホストで、MipsターゲットのCygwinバイナリを作る"
てな感じも(必要な知識があれば)可能。
↑経験談
0550デフォルトの名無しさん
2008/07/30(水) 21:50:200551デフォルトの名無しさん
2008/08/06(水) 07:44:130552デフォルトの名無しさん
2008/08/22(金) 03:13:530553デフォルトの名無しさん
2008/08/27(水) 02:39:23変態なgccだなあ
0554デフォルトの名無しさん
2008/08/28(木) 13:49:350555デフォルトの名無しさん
2008/08/30(土) 01:09:130556デフォルトの名無しさん
2008/08/30(土) 20:49:53ある大きな数値計算プログラムがあって、
全体としては -O や -O2 など最適化はしたい。
けど一部、計算誤差などを考慮した、
計算の順番を変えてほしくないコードがある。
Intel Compiler などは pragma でソコは最適化しないように
回避できるんだけど、GCC はどうしようかと。
なんか手段あります?
ソースを分けて、そこだけ -O0 にするしかないのかな?
0557デフォルトの名無しさん
2008/08/30(土) 21:07:41と思う。
0558デフォルトの名無しさん
2008/08/30(土) 21:17:06-fno-fast-math か?
0559デフォルトの名無しさん
2008/08/31(日) 00:43:26精度は保ちつつ最大限速くしてもらいたいからvolatile使うのも嫌だしとワガママ言ってしまうことはあるね。
Cを高級アセンブラとして使っているときに
局所的に自分でスケジューリングした順序で動いて欲しいこともあるし。
0560デフォルトの名無しさん
2008/08/31(日) 13:43:44研究や業務で使う道具としては悩むよりもicc使っておいた方が良い場合に該当するんじゃなかろうか?
0561デフォルトの名無しさん
2008/08/31(日) 16:33:280562デフォルトの名無しさん
2008/09/02(火) 07:14:380563デフォルトの名無しさん
2008/09/02(火) 07:57:22-fprofile-generate/-fuse-profile
0564デフォルトの名無しさん
2008/09/02(火) 07:57:550565デフォルトの名無しさん
2008/09/02(火) 16:26:380566デフォルトの名無しさん
2008/09/02(火) 18:06:490567デフォルトの名無しさん
2008/09/03(水) 02:16:10あったけどなんかいまいち理解できん。
わかりやすい日本語で解説してくれ!
artificial
This attribute is useful for small inline wrappers
which if possible should appear during debugging as a unit,
depending on the debug info format it will either mean marking
the function as artificial or using the caller location for
all instructions within the inlined body.
0568デフォルトの名無しさん
2008/09/03(水) 03:21:28その関数とはどういうものかというと、デバッグ中には
関数の中に入らずに単体として扱われるのが望ましいもの。
この属性がどう実現されるかというと、
デバッグ情報フォーマットによるが、
関数にartificialというマークをつけるか、
またはインライン化された関数本体中の呼び出し位置を使う
(どう使うのかは書いてない)ことになるだろう。
……と理解した。
デバッグの必要のないような機械的に生成したラッパーインライン関数
なんかに使うといいんでないのかしら。
0569デフォルトの名無しさん
2008/09/03(水) 04:14:540570567
2008/09/04(木) 00:45:24よく分かった!ありがとぅ!
>>569
まさにそれを見てて気になったんで調べてた
とりあえず、*mmintrin.h は非常に使いづらいんで
自前でラッピングしようと思った次第。
それにしても、GCCのアトリビュートは書きにくい。
アトリビュートはC#の書き方がいい感じ。
[Align(16)]
int hoge = 12;
とか。
0571デフォルトの名無しさん
2008/09/04(木) 01:29:140572デフォルトの名無しさん
2008/09/06(土) 03:11:43イミネー
0573デフォルトの名無しさん
2008/09/06(土) 03:21:42GPLなソースが混入してない限り。
だがそれが回避しにくいように念入りに作られてるんだわこれが…
0574デフォルトの名無しさん
2008/09/06(土) 03:29:580575デフォルトの名無しさん
2008/09/06(土) 04:03:45どこでそんな嘘聞いてきたんだ。
0576デフォルトの名無しさん
2008/09/06(土) 04:07:21作られてない。そもそもふつーにコンパイルする範囲ではGPLの影響は受けない。
お前のプログラムにGPLが感染するのは、コンパイラ関係無しにGPLのコードを混入させたときだけだ。
0577デフォルトの名無しさん
2008/09/06(土) 04:12:17なのこの頭の悪いしったか連中…
libcがGPLのときのバイナリと混同でもしているのか?
0578デフォルトの名無しさん
2008/09/06(土) 05:15:05リリースは来年ですかねえ。
>>577
libgccが例外なしGPLとか。
0579デフォルトの名無しさん
2008/09/06(土) 06:12:30Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
and to distribute those combinations without any restriction coming
from the use of this file.
0580デフォルトの名無しさん
2008/09/06(土) 20:32:000581デフォルトの名無しさん
2008/09/07(日) 00:30:47とりあえず、
・GLPのソースを含んだ実行ファイルから利益を得ることは制限されない。
・ただ、ソースを見せろと言われたら全て見せなくてはならない。
・それは不便だからLGPLがあり、その場合は以下の条件を満たせばソースを
見せる必要はない。
・使用しているLGPLなソースを第三者が修正して、再度、配布しているもの
と同等の実行ファイルを作成出来なければならない。
・ダイナミックリンクの場合は特になにもする必要はないが、
スタティックリンクの場合は、リンクに必要なオブジェクトファイル
(具体的には、*.o)を提供しなければならない。
・同等の実行ファイルを作成出来ることが必要という縛りがあるので、
LGPLだからと言ってこっそりコピペするのは(・A・)イクナイ!!
(結局ソースを提供しなければ同等にならない可能性があるので。)
と理解している。
0582デフォルトの名無しさん
2008/09/07(日) 00:37:10LGPLのプログラムのソースの公開の義務は発生しますか?
0583デフォルトの名無しさん
2008/09/07(日) 01:01:470584デフォルトの名無しさん
2008/09/07(日) 01:42:31なんですとぉ!
自作ツールでアーカイバプロジェクトの
スタティックライブラリをリンクしたとする
自分のものでもないしソースもないけど勝手にGPL?
d3d9x.lib とかスタティックライブラリじゃん
困らね?
0585デフォルトの名無しさん
2008/09/07(日) 02:12:44>>582
GPLのプログラムもLGPLのプログラムもソースを公開する義務がある。
悩む必要はまったくない。公開してくれ。
>>584
その自作ツールのライセンスはなんだ?
ソースを公開したくないんだったら、LGPLのライブラリをリンク
してれば大丈夫だ。ライブラリがGPLの場合は無理。
> d3d9x.lib とかスタティックライブラリじゃん
> 困らね?
それはまた違うラインセンスになってるだろ。
詳しくは知らんが、それをちゃんと調べるべき。
0586デフォルトの名無しさん
2008/09/07(日) 02:38:31全体をGPLにできる場合のみ、GPLのコードを基に著作物を形成・複製・頒布することが許諾される
条件を満たせないなら、GPLの使用許諾は得られない
0587デフォルトの名無しさん
2008/09/07(日) 03:26:44勝手じゃないだろ。使うソフトウェアのライセンスは読もうよ。
0588デフォルトの名無しさん
2008/09/07(日) 03:43:21非GPL部分とGPL部分とでプログラムをわけて、
ソケット通信をすればおk
まあGPL部分は諦めて公開する必要があるけど
どうしても非公開にしたいコアな部分は非GPLにできる。
0589デフォルトの名無しさん
2008/09/07(日) 05:51:49いや、d3d9x.libってCygwinかなんかの?LGPLなの?
困るんならMSのライブラリとコンパイラ使いなよ。
または、d3d9x.lib相当の機能は、自分で作らないと。
他人の成果物使ってんだからさ。
ライセンスに従えない人間に使われるのてむしろ困るのは、
ライブラリを作ってる側だし。
0590デフォルトの名無しさん
2008/09/07(日) 06:03:04そのソケット通信は確実に白なの?
前にそんなことが議論になったみたいだけど、
結論がどうなったか知らないんで。
0591デフォルトの名無しさん
2008/09/07(日) 07:42:28派生物としてソースを公開する必要があるという議論だったと思う。
>>589
プロプライエタリなOSにGNUな開発環境を存在させるため
OSが提供するライブラリに関してはプロプライエタリでもGPLの公開義務の
対象外。
0592デフォルトの名無しさん
2008/09/07(日) 07:43:50このライセンスは、GNUが本来目指していた目的に合致するのだろうか・・・・
0593デフォルトの名無しさん
2008/09/07(日) 08:30:23超過激思想だぞ? だからこそこんな感染性のあるライセンスにしたわけで。
0594デフォルトの名無しさん
2008/09/07(日) 15:01:14勝手に話を混ぜ込んでいたりするからなw
0595デフォルトの名無しさん
2008/09/07(日) 15:34:48*フリーではないライブラリを利用するフリーソフトウェアを書いているのですが、GPLを適用した場合どのような法的問題が発生するでしょうか?
http://www.gnu.org/licenses/gpl-faq.ja.html#WritingFSWithNFLibs
*「単なる集積」と「二つのモジュールを一つのプログラムに結合すること」の違いは何ですか?
http://www.gnu.org/licenses/gpl-faq.ja.html#MereAggregation
0596デフォルトの名無しさん
2008/09/07(日) 18:38:50根本はとってもシンプル
結局はバイナリ公開したければソース出せボケ
いろいろな抜け道を塞ぐために条文追加するはめになっただけのこと
ストールマンの最初の動機と何も変わってないw
思想先行どころか実利的なGPL
0597デフォルトの名無しさん
2008/09/07(日) 18:55:43d3d9x.libはOSのライブラリってこと?スタティックなライブラリが?
話が唐突で全然意味がわからん。
てっきり、GCC用のLGPLなライブラリだと思ったんだが。
あと、GPLならGPLが適用されるし、LGPLならLGPLが適用されるっしょ。
OSがプロプラとか関係無い。
0598デフォルトの名無しさん
2008/09/07(日) 19:54:20簡単に言えば、Direct3Dについてくる、MSの3Dライブラリみたいな。
0599デフォルトの名無しさん
2008/09/07(日) 20:26:57Direct3D の組み合わせで計算結果を視覚化するソフトウェアがあるとする
このソフトウェアを α とする
α 内で使用されている D3DX* 系の関数は DirectX SDK の d3dx9.lib スタティックライブラリに含まれている
スタティックライブラリに含まれる部分のソースが無いので
出来上がった α を頒布することはできない
これで合ってる?
0600デフォルトの名無しさん
2008/09/07(日) 20:37:12それが詭弁に過ぎないことは世の中のWebブラウザを見てればわかる
0602デフォルトの名無しさん
2008/09/07(日) 21:23:56わからん。具体的には?
0603デフォルトの名無しさん
2008/09/07(日) 21:46:580604デフォルトの名無しさん
2008/09/07(日) 22:11:014系列だとpchのテストが通らないからとか?
0605デフォルトの名無しさん
2008/09/08(月) 05:30:18あー、d3dx9.libの事を言いたかったのか。
てっきり、d3d9x.libっていうCygwin用のdllラッパーか何かかと思った。
じゃあ、>>584は何を困ってんだ?自作ツールを公開したいってことか?
0606デフォルトの名無しさん
2008/09/08(月) 13:47:08DLL用インポートライブラリじゃなくて?
0607デフォルトの名無しさん
2008/09/08(月) 13:48:050608デフォルトの名無しさん
2008/09/08(月) 14:24:420609デフォルトの名無しさん
2008/09/08(月) 21:32:030610デフォルトの名無しさん
2008/09/09(火) 04:06:100611デフォルトの名無しさん
2008/09/09(火) 05:53:39>どちらにしろOSの機能を使うためにOSベンダが提供しているものは使って大丈夫。
0612デフォルトの名無しさん
2008/09/09(火) 07:41:32ちょっと前のレスも読めないの?
0613デフォルトの名無しさん
2008/09/09(火) 12:00:16>>611はGPLを読んだことすらないだろ。読んだことがあるなら
述べる主題によって項が立てられているのだから>>611みたいなこと
いちいち聞くまでもないと理解しているはずだから。
0614デフォルトの名無しさん
2008/09/15(月) 22:04:22スタティックリンクし、最後にlibxxxx.aを作る利点というと
何が思いつきますか
0615デフォルトの名無しさん
2008/09/16(火) 01:15:360616デフォルトの名無しさん
2008/09/16(火) 01:21:560617デフォルトの名無しさん
2008/09/25(木) 21:01:57よく見るとSTLのヘッダーファイルから発生してるやないかー
俺のせいちゃうやんけー
男は黙って ただの配列
0618デフォルトの名無しさん
2008/09/28(日) 18:19:32export LDFLAGS="-fprofile-genereate"
make
PGOつかいたいんですけど、
上のとおりにやったらcc1.exeっていうのが
-fprofile-genereateなんてしらねーよ!って怒るんです。
0619デフォルトの名無しさん
2008/09/29(月) 00:39:230620デフォルトの名無しさん
2008/09/29(月) 03:46:49構造体の代入はmemcpyを呼んじゃうもんなんですか?
32bitマシンでは4バイトずつのコピーを期待していたので。
0621デフォルトの名無しさん
2008/09/29(月) 05:55:21gcc 4.3 or laterを使いましょう。
0622デフォルトの名無しさん
2008/09/30(火) 07:48:17ずっとないと思ってたけど、気になってきた。
0623デフォルトの名無しさん
2008/09/30(火) 08:33:04何でですか?
0624デフォルトの名無しさん
2008/09/30(火) 08:34:55ありがとうございます。試してみます。
0625デフォルトの名無しさん
2008/09/30(火) 08:38:57-pg
でどう?
0626デフォルトの名無しさん
2008/09/30(火) 09:10:50目が腐ってるの? 頭が腐ってるの?
0627デフォルトの名無しさん
2008/09/30(火) 09:29:350628デフォルトの名無しさん
2008/09/30(火) 11:04:060629Google先生
2008/09/30(火) 11:07:56もしかして: fprofile-generate
0630デフォルトの名無しさん
2008/09/30(火) 15:12:33↓のコピペしたから気付きませんでした><
http://d.hatena.ne.jp/pyopyopyo/20060311/p2
0631デフォルトの名無しさん
2008/09/30(火) 17:12:30stripしてdiffしたら
0632ニート009
2008/09/30(火) 22:34:270633デフォルトの名無しさん
2008/09/30(火) 22:47:340634デフォルトの名無しさん
2008/11/03(月) 13:41:03binutils-2.19 ← 成功
gcc-3.4.6(ブートストラップコンパイラ) ← 成功
glibc-2.5 ←ここでこける
完全なsh4-gccの構築 ← ここへはたどり着けない
CC=sh4-linux-gcc ac_cv_type_long_double=no ../glibc-2.5/configure \
--host=sh4-linux --prefix=/root/sh4/tools/sh4-linux/ \
--enable-add-ons=linuxthreads --with-headers=/root/sh4/tools/include/ \
--disable-sanity-checks --disable-shared | tee sh4config.log
configureは成功するよ
makeすると・・・・
/root/sh4/tools/bin/../lib/gcc/sh4-linux/3.4.6/../../../../sh4-linux/bin/ld: cannot find -lgcc_eh
上のエラーが出てmakeが途中でストップ。
gcc-ehとはldによって呼び出されるもの?と思いました。
どのような役割があるのでしょうか?
gccコンパイルする時に生成されなかったのかな?
既存のshクロスrpmをインスコすればいいのですが、クロス環境の学習目的です。
参考書籍は「組み込みlinuxシステム構築」を読んでます
よろしくおながいいたします。
0635デフォルトの名無しさん
2008/11/03(月) 16:03:020636デフォルトの名無しさん
2008/11/03(月) 16:41:20make lib
0637デフォルトの名無しさん
2008/11/03(月) 17:26:060638デフォルトの名無しさん
2008/11/03(月) 23:40:27コンフィグオプションももっと調べないと・・・
0639デフォルトの名無しさん
2008/11/12(水) 20:15:10gcc hoge.c mylib.a
と
gcc mylib.a hoge.c
ってかいたとき、Darwin の gcc だとどちらの書き方でも a.out ができるんですが、
Ubuntu の gcc だと、後者の書き方ではリンクエラーになるんです。
0640デフォルトの名無しさん
2008/11/12(水) 20:22:44リンク時の名前解決において、先に現れたモジュールで未解決の名前を、
後で現れたモジュールで解決するので、これが逆になって、
先に現れたモジュールに定義があって、後から参照する形になると、
名前が解決できなくなります。
0641デフォルトの名無しさん
2008/11/13(木) 00:06:49Darwinのgccはldとは別のリンカ使ってる。(dyld)
DarwinはELFやBSD a.out形式じゃないから。(Mach-O)
0642デフォルトの名無しさん
2008/11/22(土) 12:58:43じゃあコンパイラとしての能力には深刻な問題があるわけではない?
0643デフォルトの名無しさん
2008/11/22(土) 18:48:12pchの問題は4.3だと解決してるみたい。
0644デフォルトの名無しさん
2008/11/25(火) 20:34:44gcc 3.4.6
やりたいこと
binutils-2.10.tar.gz
gcc-2.95.2.tar.gz
glibc-2.1.3-armlinux.tar.gz
を使ってクロス環境を作りたい
bintilをビルドする時に
./configreでホストのタイプを設定したいのですが、Centの場合
--host=i386-unknown-linux
でいいのでしょうか?
0645デフォルトの名無しさん
2008/11/25(火) 20:42:290646デフォルトの名無しさん
2008/12/01(月) 12:39:070647デフォルトの名無しさん
2008/12/01(月) 17:08:010648デフォルトの名無しさん
2008/12/18(木) 01:48:00コンパイルすると
無効なプリプロセスディレクティヴ #!
ってでるんだ 誰か解決策を教えてください。
0649デフォルトの名無しさん
2008/12/18(木) 02:09:290650デフォルトの名無しさん
2008/12/18(木) 02:23:450651デフォルトの名無しさん
2008/12/18(木) 02:28:220652デフォルトの名無しさん
2008/12/21(日) 15:44:40何がボトルネックになっているのかを調べる(コンパイラ自身のプロファイルみたいなの)
はありますか?
コンパイルしているのは、ユニットテスト的なテストプログラムで、
長さも100行程度です。ひたすら関数の結果をチェックしまくるみたいなもので、
マクロを使いまくっているんですがそれが原因かなぁ・・・
0653デフォルトの名無しさん
2008/12/21(日) 15:45:39コンパイルには3分くらいかかってます。
本体プログラムよりはるかに長い・・・orz
0654デフォルトの名無しさん
2008/12/21(日) 15:51:45それを繰り替えして突き止めるとか。最終手段かもだが。
0655デフォルトの名無しさん
2008/12/21(日) 16:01:170656デフォルトの名無しさん
2008/12/21(日) 16:08:562. cc1内部は-fdump-rtl-allで出力ファイルのタイムスタンプを見る
0657デフォルトの名無しさん
2008/12/21(日) 16:32:33あざっす。いまからいろいろ調べてみます。
0658デフォルトの名無しさん
2008/12/21(日) 17:10:270659デフォルトの名無しさん
2008/12/21(日) 17:21:19テンプレートをガンガン使ってるなら、まぁ遅くなっても納得するんですが・・・
コンパイルしているプログラムが、
ASSERT_TRUE( .xxxx )
ASSERT_TRUE( yyyy )
みたいなものが延々と続いているだけのプログラムなので不可解なのです
0660デフォルトの名無しさん
2008/12/21(日) 18:25:36time コマンドで実行時間を測定しました。
-c 81.34s user 12.30s system 97% cpu 1:35.78 total
-S 82.63s user 11.62s system 99% cpu 1:34.66 total
-E 0.36s user 0.17s system 99% cpu 0.533 total
それぞれ一回しかやってないのでちょっと揺れがありますが…
つまり-Eは一瞬で、asに時間がかかっているという解釈で正しいんでしょうか?
ひょっとしてプリプロセッサによってファイルが膨れ上がっているのかとも思いましたが、
他のファイルでも-E 後の行数はほぼ同じだったので、単純に行数が原因ではないようです。
(すべて 50k〜60k行の範囲内)
次に-fdump-rtl-allを付けてコンパイルしようとしましたが…
ディスク領域不足でコンパイル中断しましたとか出る上に30分経ってもまだ終わらない…
0661デフォルトの名無しさん
2008/12/21(日) 18:30:50どこを減らせばどのくらい時間が変わるか見てみたら?
0662デフォルトの名無しさん
2008/12/21(日) 18:35:33どう見てもcc1だろ時間かかってるのは。
-Q ってオプションがあるので試してみ。
0663デフォルトの名無しさん
2008/12/21(日) 19:00:410664デフォルトの名無しさん
2008/12/21(日) 19:51:110665デフォルトの名無しさん
2008/12/21(日) 20:20:12でかいファイルでインタープロシージャルな最適化まで
やったら結構重くなるだろ。
0666デフォルトの名無しさん
2008/12/21(日) 20:34:10これは誤差範囲だと思います。一回しか測定してないので
>>662
-Q を試してみます。
#if 0 したりしていろいろ測定してみました。どうも、ASSERT_XXXXの個数と
だいたい相関があるようなので、1つ1つのコンパイルが遅いような気配です。
マクロの中身を減らせないかどうか検討中です。
0667デフォルトの名無しさん
2008/12/21(日) 20:35:400668デフォルトの名無しさん
2008/12/21(日) 20:37:50プリプロセス後のコードは50k行程度です。
一般的に見て多いのか少ないのかよくわからないですが、
他の、数秒でコンパイルが終わるような同列のソースファイルも
行数はさほど変わらないので、行数そのものは関係ない気がしています
>>665
autoconfまかせだったので、-O2の最適化がかかってました。
テストコードだし、-O0にしてみます
0669デフォルトの名無しさん
2008/12/21(日) 20:40:14ヘッダファイルの部分を除いた行はどのくらい?
あと、マクロは常に1行に展開されるので、
単に行数だけ見るより、バイト数見た方がいいかもしんない。
0670デフォルトの名無しさん
2008/12/21(日) 21:24:47システムタイム大きすぎ!ほとんどI/Oだろ。
-vでcc1の引数見て、テンポリファイルの中見てみ。
超巨大になっているに違いない。
もしかしてtemplate引数に正定数の荒しで特殊化爆発?
0671デフォルトの名無しさん
2008/12/22(月) 00:29:25I/Oで時間喰ってるんじゃない?コンパイル中にメモリとスワップがどうなってるか見てもいいかも。
今時のマシンでcc1plusに80秒以上とか・・・。gccのinsn-*.cのコンパイルはそのくらいかかってたけど。
0672デフォルトの名無しさん
2008/12/22(月) 08:34:32struct foo;
struct foo { ... };
と構造体の前方宣言があると、先に見つけた定義を見てしまって構造体の中身を
print でダンプできず <incomplete type> になってしまうのだけど、結局
これって解決不能なの?
毎回同じ構造の別名構造体をダミーで仕込んで、変数ごとにキャストして
アクセスとかって超面倒なんだけど。
0673670
2008/12/22(月) 09:53:030674デフォルトの名無しさん
2008/12/22(月) 15:45:05反応遅れましたが、前にも書いているとおりテンプレート一切使ってないんです。
(boost::scoped_ptrは使ってますが、それはほかの異常ない部分でも一緒なので)
特定のどこかが遅いということではなく、調子のってマクロを使いすぎて
ソースの量が爆発しているような気配です。
地道にマクロを削って最適化を抑止して頑張ってます。
0675デフォルトの名無しさん
2008/12/22(月) 23:50:26ちょっと簡単な例でやってみたら別に問題ない。 具体的なサンプルコードよろ。
0676デフォルトの名無しさん
2008/12/23(火) 00:02:54ファイルのはじめの方に書きなと書いてあって笑った記憶があるが…
0677デフォルトの名無しさん
2008/12/23(火) 00:10:56具体的なコードはちょっと出すの難しい。Linuxの動作を
gdb -c /proc/kcoreで追いかけてたら途中で<incomplete type>になる構造体が
出てきたという経緯で、自分のコードじゃないから。
- http://stackoverflow.com/questions/232744/how-to-print-incomplete-type-variable-in-gdb
- http://sourceware.org/ml/gdb/1998/msg00116.html
あたりがソースかな。gdb struct incomplete type でググると同様の話がゾロゾロ出てくる。
0678デフォルトの名無しさん
2008/12/23(火) 01:16:19- http://sourceware.org/ml/gdb/1998/msg00116.html
1998年? お前バカか? そんな古い断片の情報で>>672みたいな結論出すなよ。
その状況は今のgcc/ldでは起こらない問題。 >>675というのはカーネルモジュールとか
特殊なリンク環境で起こるんじゃないか? あと、
- http://stackoverflow.com/questions/232744/how-to-print-incomplete-type-variable-in-gdb
は前方参照のことは何も書いてないぞ。 本当に>>677で見たコードには前方参照があったのか?
単にopaqueな参照だったんでは?
0679デフォルトの名無しさん
2008/12/23(火) 11:23:39古い記事を出してしまったのはすまない。
最近(2006年あたり)でも類似の話があるので出してしまったのだけど、
ちょっと込み入った話なので質問撤回します。お騒がせしてすみません。
0680デフォルトの名無しさん
2009/01/18(日) 15:18:11"-ansi"オプションを指定しても、なぜかC99の機能が使えて困っています。
具体的には、配列の動的確保がなぜかできます。(↓のような機能)
int i = 10;
int array[i];
他のC99の機能(新しいコメント分の書式やfor文での変数初期化)は無効になっていますので
これはバグなんでしょうか?
ちなみにgccのバージョンは、「gcc (GCC) 3.4.5 (mingw-vista special r3)」です。
0681デフォルトの名無しさん
2009/01/18(日) 15:34:24-std=c89
0682デフォルトの名無しさん
2009/01/18(日) 16:04:32むしろこっちの方がバグなんじゃ
0683デフォルトの名無しさん
2009/01/18(日) 16:07:37C89+GCC拡張なんじゃね
0684デフォルトの名無しさん
2009/01/18(日) 16:11:42やはり -pedantic-errors -Wall をつけないとダメなのか。
0685デフォルトの名無しさん
2009/01/18(日) 16:19:34できました!!ありがとうございます!
0686デフォルトの名無しさん
2009/01/18(日) 16:27:040687デフォルトの名無しさん
2009/01/18(日) 16:33:500688680
2009/01/18(日) 16:38:49できたと思ったのですが、またもや可能になってしまいました。
どうやらMinGWではなく、Eclipseのプラグインにバグがある気がします。
お騒がせいたしました。
0689デフォルトの名無しさん
2009/01/18(日) 16:40:100690デフォルトの名無しさん
2009/01/18(日) 16:46:42-std=c89 -pedantic-errors -Wall
0692デフォルトの名無しさん
2009/01/18(日) 17:02:140693デフォルトの名無しさん
2009/01/18(日) 17:21:140694デフォルトの名無しさん
2009/01/25(日) 11:07:080695デフォルトの名無しさん
2009/02/01(日) 04:57:11間違えて、prefix=/usrにしてしまっていたのですが、
一度、アンインストールしたいのですが、
どうすればいいでしょうか?
0696デフォルトの名無しさん
2009/02/01(日) 05:52:470697デフォルトの名無しさん
2009/02/01(日) 17:56:31GCCにあったかどうか記憶してないけど
make uninstall
が効くかもしれない
0698デフォルトの名無しさん
2009/02/01(日) 18:29:08もう一回make installして、何をinstallしたかファイルに保存
↓
手作業
cppに依存しているものも結構あるから、
普及する前にrebootしない方がいい。
0699デフォルトの名無しさん
2009/02/01(日) 20:48:450700デフォルトの名無しさん
2009/02/01(日) 21:13:35まあ結局、目でチェックする必要あるから。
0701デフォルトの名無しさん
2009/02/01(日) 22:26:381) インストールされたファイル/ディレクトリの一覧を作る。
2) 標準のパッケージでインストールされるファイル/ディレクトリの一覧を作る。
3) 標準のパッケージを再インストール。
4) (1)に有って(2)に無いファイル/ディレクトリを消す。
これくらいやる必要あるんじゃない?
0702デフォルトの名無しさん
2009/02/01(日) 23:04:32C++もインストールした場合のlibstdc++くらいじゃないかな。
システムのクリティカルなところに使われてる可能性あるのは。
ld, libcは入ってないし、crt関係はsoじゃないし。
0703デフォルトの名無しさん
2009/02/06(金) 07:01:03ちなみにGCCのmake uninstallは効かない。それとprefix=/usrだったらまずディストリ標準の/usr/bin/gcc同じくg++,c++や
cppやgcjなどが完全に上書きされてる。フォートランは違う名前かもしれん。
一番問題は多分/usr/libのlibstdc++が上書きされてる点かな。下手するとgcc4.3入れたその前後にmakeしたアプリなどが
動かなくなるかも。てか運が悪いと既にそこへ入れた時点でlibstdc++の関連で動かなくなるアプリとか出るときあるお。
結果から言うと自分で手作業で探して削除した後、再度デフォルトで入ってたgcc系とlibstdc++のパッケージを再インスコ。
ぶっちゃけ手作業で削除しなくても多分gcc系とlibstdc++の再インスコで上書きされるから平気だと思うよ。
ただしgcc系ってのはgcc,c++,cpp,gcj,fortlanあとなんかあったような気がするけど忘れたw まあその辺全部再インスコね。
そうすれば手作業で消さなくても問題無い位復旧できるはず。
まあ違うバージョンのgccは/optとかにインスコしといた方が無難。/optにおいてもldがちゃんと機能してればlib関連は
/opt/gcc***/libを見に行くはずだから。
0704デフォルトの名無しさん
2009/02/06(金) 07:52:500705デフォルトの名無しさん
2009/02/06(金) 14:10:12パッケージからgcc関連入れ直して/usr/include/c++/4.3.3、
/usr/lib/gcc/$target/4.3.3、/usr/libexec/gcc/$target/4.3.3を消せば大丈夫。
0706デフォルトの名無しさん
2009/02/07(土) 05:26:51325>>理由教えて。
0707デフォルトの名無しさん
2009/02/07(土) 08:58:49向こう見に行くの面倒だから、聞きたいポイントを整理して書け。
0708デフォルトの名無しさん
2009/02/07(土) 12:22:48double func(double a, double b){double c; return (a+b);}
でreturn (a+b);
とc=a+b;return c;の違いは何?
0709デフォルトの名無しさん
2009/02/07(土) 13:12:02浮動小数点な数値のプロセッサ内での保持方法の差だっけ。
どっかのブログでSunの科学計算の手引きみたいなページが紹介されてた。
0710デフォルトの名無しさん
2009/02/07(土) 13:30:28> gcc
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8828.c
を、これで修正したら動いた理由が知りたいのですが。
http://pc11.2ch.net/test/read.cgi/tech/1232029287/350
0711デフォルトの名無しさん
2009/02/07(土) 14:17:01gcc version 3.4.4 (gcc Win/on Win2000)
では、戻り値がdoubleの関数は、return 文の所で
演算していはいけない。必ずglobalかlocalの変数に結果を入れてから、
return 変数名;
としないと、いけないようだ。
0712デフォルトの名無しさん
2009/02/07(土) 15:03:28無問題。
0713デフォルトの名無しさん
2009/02/07(土) 15:13:020714712
2009/02/07(土) 15:14:010715713
2009/02/07(土) 15:29:08exeか、逆アセンブル結果でも、掲示板に張って送ります?
-O3 無し
=7>=====
00401050 push ebp
00401051 mov ebp, esp
00401053 fld qword ptr [ebp+10h]
00401056 fadd qword ptr [ebp+18h]
00401059 fadd qword ptr [ebp+20h]
0040105C pop ebp
0040105D ret
0716712
2009/02/07(土) 15:53:53--8228.s:total()
_total:
pushl %ebp
movl %esp, %ebp
fldl 16(%ebp)
faddl 24(%ebp)
faddl 32(%ebp)
popl %ebp
ret
--
確かに-O3つけたらインライン展開されるから関数自体見えなくはなるけど。
0717713
2009/02/07(土) 16:01:34fadd の次はpopなので、結果の値が消えるのでは。
0718デフォルトの名無しさん
2009/02/07(土) 16:03:100719デフォルトの名無しさん
2009/02/07(土) 16:04:29・pop ebpは何をどこに戻すか
・doubleの戻り値はどこに格納されるか
少し勉強してこい。
0720713
2009/02/07(土) 16:28:54それで、問題はfunction側に有るのでは無くて、call側です。
戻ってきた直後で、ストアじゃなくてロードすると、以前の内容が
レジスタから消えます。
-O3 無し
00401400 call 00401050h
00401405 fld qword ptr [ebp-10h]
0721デフォルトの名無しさん
2009/02/07(土) 16:35:220722デフォルトの名無しさん
2009/02/07(土) 16:59:47数多の天才が気付かずに使っているコンパイラのバグを、浅学無能非才のあんたに見つけられるというのか?
思慮が足りないにも程があるぞ。
0723デフォルトの名無しさん
2009/02/07(土) 17:07:29http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8840.zip
cygwin1.dll version 1005.25.0.0 (0.156 2008-06-12 19:34)
0724デフォルトの名無しさん
2009/02/07(土) 17:18:270725723
2009/02/07(土) 17:23:24http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8841.zip
0726デフォルトの名無しさん
2009/02/07(土) 17:47:35デバッグだったら一人で勝手にやってろよ。
勿論、その場合はスレ違いだ。
0727デフォルトの名無しさん
2009/02/07(土) 17:51:490728デフォルトの名無しさん
2009/02/07(土) 17:53:05質問の意図は? >723の言っていることなら只の世迷言だから無視しておけ。
0729デフォルトの名無しさん
2009/02/07(土) 17:57:190730711
2009/02/07(土) 19:05:310731デフォルトの名無しさん
2009/02/07(土) 19:47:180732711
2009/02/07(土) 19:57:07354 :325 :2009/02/07(土) 04:54:11
>>326
double a;
do{
while((a=total(st[pl])) > x) pl++;
while((a=total(st[pr])) < x) pr--;
355 :325 :2009/02/07(土) 05:01:10
>>326
double a;
do{
pc = (pl + pr) / 2;
if((a=total(st[pc])) == key)
return pc;
else if((a=total(st[pc])) > key)
0733デフォルトの名無しさん
2009/02/07(土) 19:58:54http://0xcc.net/blog/archives/000164.html
これかな…?
0734デフォルトの名無しさん
2009/02/07(土) 20:08:490735デフォルトの名無しさん
2009/02/07(土) 20:40:060736デフォルトの名無しさん
2009/02/07(土) 21:19:060737デフォルトの名無しさん
2009/02/07(土) 21:47:30いいえ、FPUレジスタ渡しです。
0738デフォルトの名無しさん
2009/02/07(土) 21:50:460739デフォルトの名無しさん
2009/02/07(土) 22:30:25スタック上に利用するようになっている。だからfldを繰り返したら複数のレジスタに順に格納されるわけ。
0740713
2009/02/07(土) 22:36:24double total(){return (st.ascore + st.bscore + st.cscore);}
=7>=====
00401050 push ebp
00401051 mov ebp, esp
00401053 fld qword ptr [ebp+10h]
00401056 fadd qword ptr [ebp+18h]
00401059 fadd qword ptr [ebp+20h] ;;結果はFPUスタックに置く(80bit値)
0040105C pop ebp
0040105D ret
if(st[pc].number == key)
00401153 call 00401050h
00401158 fld qword ptr [ebp+10h] ;;keyメモリ内容をFPUスタックに入れる(sp=sp+1)(64bit値)
0040115B fxch st(1)
0040115D fucompp ;;数値比較(80bit値 : 64bit値)
double a;
if((a=st[pc].number) == key)
00401153 call 00401050h
00401158 fstp qword ptr [ebp-18h] ;;メモリ内容をFPUスタックから出す(sp=sp-1)(64bit値)
0040115B fld qword ptr [ebp-18h] ;;メモリ内容をFPUスタックに入れる(sp=sp+1)(64bit値)
0040115E fld qword ptr [ebp+10h] ;;keyメモリ内容をFPUスタックに入れる(sp=sp+1)(64bit値)
00401161 fxch st(1)
00401163 fucompp ;;数値比較(64bit値 : 64bit値)
0741デフォルトの名無しさん
2009/02/07(土) 23:22:43と
double a = (st.ascore + st.bscore + st.cscore);
return a;
では、吐く汗のコードに違いがあるのですが、何が違うのでしょうか?
0742デフォルトの名無しさん
2009/02/07(土) 23:30:28結果の戻り値の数値が80bit表現
double a = (st.ascore + st.bscore + st.cscore);
return a;
結果の戻り値の数値が64bit表現
0743デフォルトの名無しさん
2009/02/07(土) 23:34:100744デフォルトの名無しさん
2009/02/08(日) 00:03:320745706
2009/02/08(日) 02:51:15ソフト板 http://pc11.2ch.net/software/
0746デフォルトの名無しさん
2009/02/08(日) 04:22:490747デフォルトの名無しさん
2009/02/14(土) 06:48:19オプションってありますか?
0748デフォルトの名無しさん
2009/02/14(土) 07:44:240749デフォルトの名無しさん
2009/02/14(土) 08:43:07ありがとうございます
0750デフォルトの名無しさん
2009/03/05(木) 23:15:00とするとAT&T Syntaxで*.sができますが、Intel Syntaxで出すことはできますか?
0751デフォルトの名無しさん
2009/03/06(金) 02:40:48間違った命令を吐いてしまうという噂を聞いたことがある。
最近の状況はわからん。
0752デフォルトの名無しさん
2009/03/06(金) 11:18:140754デフォルトの名無しさん
2009/03/07(土) 00:03:18欲しい方のシンタックスでダンプさせるのはどう?
0755デフォルトの名無しさん
2009/03/07(土) 01:37:29てことはないと思うが、読みにくくなるからなあ。
0756デフォルトの名無しさん
2009/03/07(土) 05:26:47毎週snapshotが出て、全世界で最も多く使われているコンパイラが、
判りやすいbugをいつまでもほっとくわけ無いだろ。
最も多く使われている筈のOSは、10年もディレクトリ掴んだまま
放さないbugが取れなくて、たまにイライラするけどな。
0757デフォルトの名無しさん
2009/03/07(土) 09:48:260758デフォルトの名無しさん
2009/03/07(土) 11:41:18まあnasmでなんとかなる昨今ですが。
0759デフォルトの名無しさん
2009/03/07(土) 13:12:36なれりゃAT&Tでも特に困らんしなあ。
あれは完全におまけ機能だよなあ。
>>768
たぶんそのmasmは関係無いと思う。
0760デフォルトの名無しさん
2009/03/07(土) 15:14:02gcc -masm=intel → 組み込み評価ボードのアセンブラ(by Intel)
0761デフォルトの名無しさん
2009/03/07(土) 20:13:31767と768に期待
0762デフォルトの名無しさん
2009/03/12(木) 00:59:10gcc -O2でコンパイルする場合と
gcc -m64を付ける場合でゲロったバイナリの内容って異なることは
ありえないですよね?
0763デフォルトの名無しさん
2009/03/12(木) 02:22:11gcc -O2とgcc -m64 -O2が違うのはあり得ないというのならともかく。
0764デフォルトの名無しさん
2009/03/30(月) 18:24:570765デフォルトの名無しさん
2009/04/10(金) 01:21:3210バイトでもメモリ節約したいので何かあれば教えてください
0766デフォルトの名無しさん
2009/04/10(金) 09:32:000767デフォルトの名無しさん
2009/04/10(金) 12:47:10x86 + Linux + gcc でクロスコンパイル環境を作って
AIXやSparc-SolarisやHP-UXなどのプラットフォームで
動く実行形式を生成することはできますか?
日本サイトにはそうした情報がない気がしました
0768デフォルトの名無しさん
2009/04/10(金) 13:39:38きっと可能。
場合によってはGCCのソースを書き換える必要もあるかもしれない。
何にしても、ターゲット環境のライブラリもコンパイル環境に持ってく
る必要はあると思う。
0769767
2009/04/10(金) 13:56:40ありがとうございます
でも、それを実現する方法がネットで見つからないです
SHやARMなどのマイコンへのクロスコンパイルの情報ならあるのですが・・・
もし何かご存知の情報があったら教えて頂けないでしょうか
書籍でも、海外サイトでも、なんでもいいです
0770デフォルトの名無しさん
2009/04/10(金) 14:02:07HP-UXは兎も角、SparcSolarisをクロスで開発する理由が判らん。
それはさて、クロス開発環境には通常、エミュレータが必要になってくるわけだが、
そんなことするくらいならgccをポーティングした方が融通が利くんじゃないのか?
0771デフォルトの名無しさん
2009/04/10(金) 14:27:57gcc/binutilsが対応しているターゲットなら
基本的な手順はそういうのと同じ。
0772767
2009/04/10(金) 14:31:25AIXやHP−UXやSparc-Solarisの3台の開発マシンを
買うことが出来ないので、そうしたいです
プログラムを動かすAIXやHP−UXやSparc-Solarisのサーバは
顧客から提供されます
(開発マシンは提供されない契約です)
x86 + Linux + gccのクロスコンパイル環境で
AIXやHP−UXやSparc-Solarisのバイナリを
生成できたら、とても助かるのですが・・・
もしご存知でしたら、どうぞ教えてください
0773デフォルトの名無しさん
2009/04/10(金) 14:41:220774デフォルトの名無しさん
2009/04/10(金) 14:47:51一発完動で本番稼動させるつもり?
0775767
2009/04/10(金) 14:54:27プログラムを動かすAIXやHP−UXやSparc-Solarisのサーバは
顧客から提供されます
開発マシンは提供されない契約です
保守があるので
永続的に開発環境を作っておく必要があります
でも、開発マシンをレンタルやリースするお金はありません
大手企業とちがって、小さいソフトハウスなので、
こうした条件でしか受注できないです
0776デフォルトの名無しさん
2009/04/10(金) 15:02:210777デフォルトの名無しさん
2009/04/10(金) 16:47:03ターゲットに適した開発環境が無いってのなら判るけど仕様書が心配だよ
0778デフォルトの名無しさん
2009/04/10(金) 17:03:19SparcSolarisなら中古で数万円で買えるんだから買った方がいいって。
# 問題はAIXにHP-UXか……
0779デフォルトの名無しさん
2009/04/10(金) 20:39:54http://www.nongnu.org/qemu/status.html
http://www.claunia.com/qemu/
http://hppaqemu.sourceforge.net/
0780デフォルトの名無しさん
2009/04/10(金) 22:19:450781デフォルトの名無しさん
2009/04/10(金) 22:59:27x86機上からPOWER, SPARC, Itaniumへの
クロスコンパイルの実績がそんなにあるとは思えない。
だから細かいバグが残っている可能性がある。
そういう状況で>>767>>769>>772のような質問をする状態の人が、
うまく仕事をこなせるとは到底思えない。
出来る人は既に取り掛かっていると思われ。
↓辺りのページにたどり着いて。
http://cooltools.sunsource.net/gcc/
素直に開発サーバレンタルルームに出向いて開発すべき。
0782デフォルトの名無しさん
2009/04/10(金) 23:49:34Qemuの0.91以降なら
PPCエミュレーションでAIXとUltra-SparkのSolaris動くよ
5000万ぐらいのやっすい仕事4人で引き受けてやったとき
モノこっちで準備するだけで月のリース料180マソもするから
Qemuで済ませたよ
コンパイル作業もたつくとあれなので
3GhzのCPUにホストマシンを64bitOS+8GBのメモリにすると
いいよ。できれば石2つQuadに16GB以上積んだほうがいい
0783デフォルトの名無しさん
2009/04/11(土) 18:40:06ヤフオクで売ってた。使えるかどうかはわからんけど。
http://page10.auctions.yahoo.co.jp/jp/auction/m54719834
gcc4.5.0のlibstdc++がCygwin, MinGWでコンパイルできないバグ、早く直らないかな。
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39610
SEGVなんで、他の環境だとたまたま動いてるだけっぽいんだけど。
自分で調べて直すのが早いのかな。
0784デフォルトの名無しさん
2009/04/11(土) 20:16:180785デフォルトの名無しさん
2009/04/11(土) 20:49:380786デフォルトの名無しさん
2009/04/11(土) 21:03:02GCCとprintf()に何の関係が?
0787デフォルトの名無しさん
2009/04/11(土) 21:08:060788デフォルトの名無しさん
2009/04/11(土) 21:23:03printfの引数の数、型の検証をする機能はあるから2進表示の知識も加わるんじゃない?
表示自体はlibcの仕事だろうが。
0789デフォルトの名無しさん
2009/04/11(土) 23:02:40昔、留学中にインストレーションドキュメントを訳したのだが、
いまはすっかり便利になったのだなあ。
0790デフォルトの名無しさん
2009/04/12(日) 02:07:180791デフォルトの名無しさん
2009/04/12(日) 02:24:120792デフォルトの名無しさん
2009/04/12(日) 07:59:322進表記自体は4.3で拡張として取り込まれたと思うけど?
http://www.gnu.org/software/gcc/gcc-4.3/changes.html
>Integer constants written in binary are now supported as a GCC extension.
>They consist of a prefix 0b or 0B, followed by a sequence of 0 and 1 digits.
0793デフォルトの名無しさん
2009/04/12(日) 22:11:24お〜、それは便利。 まだまだgcc3でもコンパイルしなければならないから
当分使えないけど。
0794デフォルトの名無しさん
2009/04/12(日) 22:18:570b_0110_1111_0000_0001みたいなね
0795デフォルトの名無しさん
2009/04/12(日) 22:29:05永遠に実装されまい。
0796デフォルトの名無しさん
2009/04/12(日) 23:03:360797デフォルトの名無しさん
2009/04/13(月) 01:41:190798デフォルトの名無しさん
2009/04/13(月) 03:50:21( ゚∀゚ ) まったくだ
し J
| |
| |
し ⌒J
0799デフォルトの名無しさん
2009/04/13(月) 17:28:51awkが見つからないとのエラーが出ます。
もちろんMsysにもパスは通してあります。
MinGW3.4.5にSTLport5.2.1をインストールできた方はどう
やったらできましたか?
0800デフォルトの名無しさん
2009/04/13(月) 21:47:14巣に帰れ馬鹿
0801デフォルトの名無しさん
2009/04/14(火) 00:34:02桁区切り機能はちょっと欲しいかな
0802デフォルトの名無しさん
2009/04/14(火) 01:11:060803デフォルトの名無しさん
2009/04/14(火) 10:23:54xを小文字で書かれると一瞬戸惑う
0804デフォルトの名無しさん
2009/04/14(火) 11:44:21いや8進かと。
古い人はテンキー入力が体に染み付いているので。
0805デフォルトの名無しさん
2009/04/14(火) 11:58:130806デフォルトの名無しさん
2009/04/14(火) 12:14:100807デフォルトの名無しさん
2009/04/14(火) 14:53:03とにかくファンクラブはいりまくるぞ
0808taguti
2009/04/14(火) 15:36:07(x1、y1)(x2、y2)(x3、y3)を頂点に持つ三角形の面積を計算して、その値を表示するプログラムを作成してください。
・公式:底辺x高さ÷2を使って計算してください。
お願いします!!
0809デフォルトの名無しさん
2009/04/14(火) 15:51:50マルチうざい
0810デフォルトの名無しさん
2009/04/14(火) 20:06:04それなんてAda
0812デフォルトの名無しさん
2009/04/14(火) 22:31:31その程度も出来ないのかw
プログラミングの力じゃなくて高校生1〜2年程度の数学の力だろ。
その上マルチなのか。wwwwww
0813デフォルトの名無しさん
2009/04/15(水) 00:17:18いまさらだけど、
gcc -ffunction-sections -fdata-sections ...
ld --gc-sections ...
で未使用関数・変数の分は削れるのかな?
0814デフォルトの名無しさん
2009/04/15(水) 06:38:56平面の問題なら中学生じゃないかな。高校生でできなかったら恥ずかしすぎる。
0815デフォルトの名無しさん
2009/04/15(水) 06:46:540816デフォルトの名無しさん
2009/04/15(水) 15:56:100817デフォルトの名無しさん
2009/04/15(水) 17:28:13はやくおちんちんがむけるとイイネ!
0818デフォルトの名無しさん
2009/04/17(金) 00:27:350819デフォルトの名無しさん
2009/04/18(土) 11:10:56Cという動的ライブラリの関数をコールしてその中からAの関数をコールしようとすると
コールできる関数とUndefined symbolになる関数ができるんですけどどうしてですか?
0820819
2009/04/18(土) 12:15:33CでもUndefined symbolにならないようです
最適化関係のバグですかね…
ちなみに、↓です
gcc version 3.4.6 [FreeBSD] 20060305
0821デフォルトの名無しさん
2009/04/18(土) 12:57:10ポインタ渡してコールバックさせてるなら不具合っぽいけど、Bで呼び出しもポインタの取得もしていないならその関数をリンクしないのは最適化としては自然でしょ。
0822デフォルトの名無しさん
2009/04/18(土) 13:20:54動的ライブラリも独立したプログラムだからこれが自然なのかな
CにもAを静的リンクさせるとか無駄でやりたくないんですけど…
0823デフォルトの名無しさん
2009/04/18(土) 14:47:34(静的リンク|ダイナミックリンク)+(実行時ロード)での話なら
ロード時にシンボルの解決範囲がオプション指定できるからそれかも?
0824デフォルトの名無しさん
2009/04/18(土) 16:04:02A.a内にfunc()
B.out内にmain()
C.so内にhoge()
という関数があって、B.outがA.aを静的にリンクしている状態で、
B.outがC.soを実行時ロードしてhoge()をコールして、
hoge()からfunc()をコールしようとしています
0825デフォルトの名無しさん
2009/04/18(土) 16:55:060826デフォルトの名無しさん
2009/04/18(土) 19:00:41その設計は普通のモジュール構成だし。本体側が提供するAPIを
自由にコールできないなんて聞いたことない。なんだろ?
0827デフォルトの名無しさん
2009/04/18(土) 19:52:560828デフォルトの名無しさん
2009/04/18(土) 20:12:16本体側が(正しく)提供してないからだろう。
そのタイミングで名前をリンカが知っていることが保証されていないと。
0829819(=820=822=824)
2009/04/18(土) 21:00:21gcc -Wl,--export-dynamic
という形ですけど、それは指定してるんですよ
>>820で「Cからコールする前にBで先にコールしておくと」と
書きましたが、実際にはBでのコールは実行される必要はなく、B内で
使用しないダミーの関数を作って、その中に func() を書いておきさえすれば、
C.so内のhoge()からA.a内のfunc()をコールできます
0830sage
2009/04/18(土) 21:22:41A.aをリンクしたつもりでも、A.a内のfunc()はB.outにリンクされていませんでした
これはコンパイラはfunc()の使用を知るすべがないので、やむを得ないですね
0831デフォルトの名無しさん
2009/04/18(土) 21:27:25-Wl,--whole-archive libA.a -Wl,--no-whole-archive ... -ldl
で指定した静的ライブラリのオブジェクトをオブジェクト中シンボルを
実行ファイル側で使っているかどうかに関わらず無条件取り込みできるよ。
0833デフォルトの名無しさん
2009/04/18(土) 23:34:44>>819には実行環境が書いてないけどld.soでしょ。
ld.soのマニュアルも読んでおいた方がいいかと。
GOTやPLTについて。
0834デフォルトの名無しさん
2009/04/20(月) 18:46:23どうにも計算結果が微妙なんで調整してみたいんですが。
0835デフォルトの名無しさん
2009/04/20(月) 23:50:550836デフォルトの名無しさん
2009/04/21(火) 09:53:19情報THX。
色色試行錯誤した結果、今回は-f(no-)float-storeは関係なく、
-msse2 -mfpmath=sseでicc -pc64と(計算結果が)ほぼ一致しました。
うーん、やっぱりアセンブリ出力を比較しないとダメなんだろうか……
0837デフォルトの名無しさん
2009/04/23(木) 00:58:42http://www.gnu.org/software/gcc/gcc-4.4/
0838デフォルトの名無しさん
2009/04/23(木) 03:06:13http://lkml.org/lkml/2009/4/22/78
0839デフォルトの名無しさん
2009/04/23(木) 06:13:53ブラクラはんな死ね
0840デフォルトの名無しさん
2009/04/23(木) 07:11:250841デフォルトの名無しさん
2009/04/23(木) 17:00:100842デフォルトの名無しさん
2009/04/24(金) 00:06:490843デフォルトの名無しさん
2009/04/24(金) 00:13:200844デフォルトの名無しさん
2009/04/24(金) 00:14:430845デフォルトの名無しさん
2009/04/24(金) 01:40:020846デフォルトの名無しさん
2009/04/24(金) 10:32:000847デフォルトの名無しさん
2009/04/24(金) 17:44:35>性能が2割遅くなった
コンパイル速度?
それとも産物の動作速度?
0848デフォルトの名無しさん
2009/04/24(金) 23:42:53もちろんiccには負ける、というブログ記事は見た。
でも、今回のリリースは自動並列化フレームワークの仕込みが目玉でしょう。
まだgcc -ipoできる日は来るのかな?
0849デフォルトの名無しさん
2009/04/25(土) 00:37:00自動並列化は使い物にならないよおもちゃレベルでしかない
IntelのThredBuildingで並列化したほうが性能いいし
0850デフォルトの名無しさん
2009/04/25(土) 22:10:39intel構文から、AT&T構文の拡張インラインアセンブラ構文に
書き換えするサンプルが見つからなくて困っています。
.asmを.sに書き換えるサンプルはいくつか見つかったのですが・・・
Darwinのgccは-MASM=intelが使えない・・・orz。
0851デフォルトの名無しさん
2009/04/25(土) 23:34:23しってるけど土曜日だから教えないw
うひひひ
0852デフォルトの名無しさん
2009/04/25(土) 23:59:530853デフォルトの名無しさん
2009/04/26(日) 00:00:403.4.5
0854デフォルトの名無しさん
2009/04/26(日) 00:18:47ほー。
0855デフォルトの名無しさん
2009/04/26(日) 00:33:31Windows だと難しいポイントとかあるのかね。
むしろ要求される品質レベルの方が違うのかな?
0856デフォルトの名無しさん
2009/04/26(日) 01:07:38個人で4.3系列配ってるひとはいるにはいる
0857デフォルトの名無しさん
2009/04/26(日) 02:32:193系だって3.4.6にしないし。
0858デフォルトの名無しさん
2009/04/27(月) 01:11:320859デフォルトの名無しさん
2009/04/27(月) 08:00:40平日になりましたので回答を頂けると幸いです。
0860デフォルトの名無しさん
2009/04/27(月) 09:58:210861デフォルトの名無しさん
2009/04/27(月) 10:41:51構文の説明なんぞいくらでも出てくるし、
あとはGCC x86の●ーリング●ンベンションをだな
(ヒント:●には同じ文字が入る)
0862デフォルトの名無しさん
2009/04/27(月) 11:17:220863デフォルトの名無しさん
2009/04/27(月) 11:18:560864デフォルトの名無しさん
2009/04/27(月) 11:19:050865デフォルトの名無しさん
2009/04/27(月) 11:23:500866デフォルトの名無しさん
2009/04/27(月) 15:21:450867デフォルトの名無しさん
2009/04/29(水) 08:18:190868デフォルトの名無しさん
2009/04/29(水) 12:31:37gccの改悪版あれすげー遅いな
AMD何がしたいんだ?
0869デフォルトの名無しさん
2009/04/29(水) 20:44:120870デフォルトの名無しさん
2009/05/01(金) 09:51:02もう入ってる
0871デフォルトの名無しさん
2009/05/08(金) 20:09:38ビルドしてインストール(usr/local/)してみたんですが、
アンインストールしたいのですが、
/usr/local/には他にgccは入れていないのですが、
/usr/local/にあるgcc4.4入れた時にできたディレクトリを削除すればOKですか?
他に削除するところはありますか?
0872デフォルトの名無しさん
2009/05/08(金) 22:25:50ですが、
ですが、
0873デフォルトの名無しさん
2009/05/08(金) 22:34:58そうだよ。でも/usr/local配下のbin/ include/ info/ lib/ libexec/ man/ share/には全部関連するものが
入ってると思うよ。
0874デフォルトの名無しさん
2009/05/10(日) 18:41:18C言語の opaque の利用方法についてです。
-- hoge.c --
struct hoge{
int a;
double b;
} __hoge[] = {
{1,2.0},
...
};
--------------
-- hoge.h --
typedef struct hoge hoge;
extern struct hoge __hoge[];
------------
としてやりたいのですが、
上の __hoge[] が error: array type has incomplete element type
こんなことをいわれてしまい、うまくコンパイルできません。
シンボルさえ解決できれば問題なさそうなのですが、
うまく通す方法ご存知の方おしえていただけないでしょうか?
バージョン gcc4.0.1 です。 よろしくおねがいします。
0875デフォルトの名無しさん
2009/05/10(日) 18:51:38hogeの定義もヘッダに書け。
あとそれくらいCのスレで聞けばいい。
0876デフォルトの名無しさん
2009/05/10(日) 19:00:01Cのスレさがしたのですが、なかなか答えがきけそうなところが見つからなかったのでした。
ただ、スレ違いすぎる気がするので、別のところにクロスポストしてみます。
0877デフォルトの名無しさん
2009/05/10(日) 19:14:140878デフォルトの名無しさん
2009/05/10(日) 19:14:19Cygwin+GCCでどうしてもUTF-8を扱いたいので
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
int main(void){
setlocale(LC_ALL, "Japanese_Japan.932");
wchar_t str[]=L"あいうえお";
wprintf("%lc", str[0]);
return 0;
}
のようなコードを書きました。
”あ”と言う文字を表示したいのですが、
wchar.hをインクルードしてるにもかかわらず、wprintfやsetlocaleが無いとコンパイラに言われます。
何をインクルードすればいいのでしょうか?ググってもwprintfに必要なヘッダはwchar.hとしかかかれてませんでした。
ちなみに、GCCのバージョンは3.4.4です。
よろしくお願いします。
0879デフォルトの名無しさん
2009/05/10(日) 19:16:22だから、そういうことはできない。
(配列はポインタではない)
0880デフォルトの名無しさん
2009/05/10(日) 19:19:19>>878
コンパイラが、ヘッダファイルがみつからないので読み込めなかったとか
エラー吐いてないかね?
でなければ wprintf をヘッダファイルが入ってるディレクトリで grep してみれ。
それでもダメなら、なんか #define が必要とかかなぁ。
0881デフォルトの名無しさん
2009/05/10(日) 19:23:54ありがとございます。
>> 配列というのは中身がわからないと作れない。
自分の理解では、構造体の定義情報がないとサイズが計算できないためいくらがんばっても
(配列や1つのインスタンス)であっても計算できず IA32 or IA64 のような
アドレスポインタならばとりあえず参照くらいはできるはずだぜー
っとう感じなのかなと思います。
0882デフォルトの名無しさん
2009/05/10(日) 19:25:150883デフォルトの名無しさん
2009/05/10(日) 19:54:27#include <locale.h> も必要じゃね?
それからソースコード中のワイド文字列リテラルの文字コードを
どう解釈するかは処理系依存だったはず。
gcc の場合は -finput-charset オプションで指定できる。
出力する文字コードの指定は -fwide-exec-charset オプション。
やりたいことがよくわからんが、
「あ」という文字を UTF-8 で出力したいってことなのか?
0884デフォルトの名無しさん
2009/05/10(日) 20:09:27Cygwin 1.5 ならあきらめろ。wchar 系関数は無効にされてる。
Cygwin 1.7 では wchar 実装中だったからもう少し動くようになってるかもしれない。
>setlocale(LC_ALL, "Japanese_Japan.932");
これってどこかから引っ張ってきたコード?
どうせ設定するなら "ja_JP.UTF-8" じゃないの?
で、そもそも論だが UTF-8 使うのに wchar 系の関数が必要か?
入出力は UTF-8 で内部では wchar_t で持つつもりなの?
0885878
2009/05/10(日) 20:23:26Cygwin側の問題でしたか。
あ、localeに関してはlocale.hのインクルードで解決しました。
やりたい事は、1バイト単位ではなく、ユニコード単位で文字列操作を行って
結果を表示したいと言う事です。
なので、内部でcharで持ってしまうと都合が悪いのです。
0886デフォルトの名無しさん
2009/05/10(日) 20:33:22それはおそらくVCの書き方。
だから、たぶんMinGWでいける。
当然、Cygwinでも-mno-cygwinなら使えるのだと思う。
0887デフォルトの名無しさん
2009/05/10(日) 20:56:52それなら内部エンコーディングはUTF-32で保持する必要あるんじゃないの。
0888デフォルトの名無しさん
2009/05/10(日) 22:00:54Unicode だったら UTF-8 以外でもいいのか?
シーケンシャルな操作しかしないなら UTF-8 は扱いやすい符号だけど…。
「やりたいこと」ってのが >>878 から何も具体的になってない。
説明不足。
0889デフォルトの名無しさん
2009/05/10(日) 22:07:24って話なんだから十分だろ。何使おうがどう処理しようが知ったこっちゃねぇ
んで、その答えは
-mno-cygwinを付ける。
ただしGCC-4は対応してません。
0890デフォルトの名無しさん
2009/05/11(月) 03:48:24例えば
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <locale.h>
int main(void){
char str[]="あいうえお";
wchar_t w_str[512];
setlocale(LC_ALL,"ja");
int len=mbstowcs(w_str,str,512);
wprintf(L"%s", &w_str[2]);
return 0;
}
このコードは普通なら、3番目の文字から表示する事を期待するが
実際には、
いうえお
と表示される。これでは何の為にワイド文字に変換したのかw
同じコードは、VC++だと正常に表示される。
悪い事は言わん。お前の知識だとハマるだけだから、素直に回避しとけ。
0891デフォルトの名無しさん
2009/05/11(月) 03:55:59ソ系ダメ文字も相変わらずだし
0892デフォルトの名無しさん
2009/05/11(月) 04:06:43それはオプション正しく設定してないだけだろ
0893デフォルトの名無しさん
2009/05/11(月) 07:48:21cygwinのライブラリがウンコなだけでgccのせいじゃない
0894デフォルトの名無しさん
2009/05/11(月) 16:49:14MLにfujiedaさんがCygwinのI18Nに手をつけるとか投げていたけど、
なしのつぶてだな…
0895デフォルトの名無しさん
2009/05/11(月) 17:37:050896デフォルトの名無しさん
2009/05/11(月) 19:33:31MinGW3.4.5のインストーラで入れた版はダメでした
手で一つ古いcc1.exeとcc1plus.exeを入れたらうまく行きました
ありがとうございました
0897デフォルトの名無しさん
2009/05/11(月) 22:43:130898デフォルトの名無しさん
2009/05/11(月) 23:14:35前のバージョンならリンクしてるからインストーラを使ったのなら
sourceforgeへ行って落とせ
ここが参考になる
http://seclan.dll.jp/dtdiary/2009/dt20090324.htm
0899デフォルトの名無しさん
2009/05/12(火) 00:27:03いや、俺はもう解決してるんだけど、
公式なものでなんでこんなことになってんのかな…と
0900デフォルトの名無しさん
2009/05/12(火) 00:29:520901デフォルトの名無しさん
2009/05/12(火) 00:48:53声出したり手出さないといけないんだろうな。
と思いつつ何もしていないけど。すまん。
0902デフォルトの名無しさん
2009/05/12(火) 15:21:550903デフォルトの名無しさん
2009/05/12(火) 15:42:32経緯とか理屈とかさっぱりわからんし、
英語の文書を追う気にもならん。
0904デフォルトの名無しさん
2009/05/12(火) 16:15:39Cの場合は、gccにはlibcが入ってなくて、
libcの実装はプラットフォーム毎に違うから、
gccの問題じゃないよ。スレ違い。
char str[]="あいうえお";
このmbcs部分のエンコードがおかしいってのなら
gccの問題に他ならないんだけど。
0905デフォルトの名無しさん
2009/05/16(土) 07:17:20この部分が解りません。
%ebxにはある8バイト整数の上位4バイトが入っているところで
sar $0x1f,%ebx
sar $0x1f,%ebx
と、右に31ビットシフトを二回やってます。 SARの定義によると、%ebxが
もし負であったら結果は%ebxが 0xffffffffになって31ビット目がキャリーに。
正であったら0x00000000になってやはり31ビット目がキャリーに。
これの意図もまだ解らないのですが、2番目のSARにどういう意味があるのか全く
検討が着きません。始まる段階で%ebxはすでに2つの値でしかあり得ないのに
なぜまた31ビットもシフトしてるのでしょうか?
0906デフォルトの名無しさん
2009/05/16(土) 10:26:280908デフォルトの名無しさん
2009/05/16(土) 11:34:500909デフォルトの名無しさん
2009/05/16(土) 12:29:180910デフォルトの名無しさん
2009/05/16(土) 20:38:180911デフォルトの名無しさん
2009/05/16(土) 21:59:12なんでマニュアル見ないの?
The 8086 does not mask the shift count. However, all other IA-32 processors
(starting with the Intel 286 processor) do mask the shift count to 5 bits, resulting in
a maximum count of 31. This masking is done in all operating modes (including the
virtual-8086 mode) to reduce the maximum execution time of the instructions.
0912デフォルトの名無しさん
2009/05/18(月) 09:33:470913デフォルトの名無しさん
2009/05/21(木) 10:03:42>http://www.issei.org/diary/_20030224/d200212c.html#21-2
全般的に飲み込めないのですが、特に3で「もし出力後に入力オペ
ランドから読み込む必要があるなら」という箇所があります。
おそらく asm (" " : "=r" (offset) : "0" (offset)); というようなケース
を差しているのだと思うのですが・・・
これは、アセンブラのなかで閉じたループをするなどして、
入力オペランドを書き換え、次のループで再度読み込んでいるケース
などを差しているのでしょうか?
それとも、アセンブラの外で書き換えされるケースについても考慮が
必要となるのでしょうか?
0914デフォルトの名無しさん
2009/05/21(木) 11:26:02int out;
int in = 1;
asm("mov 0,%0; mov %1,%0" : "=r"(out) : "r"(in));
この例文でそうなることはまずありえないけど、レジスタ割付最適化の結果
%0と%1に同一のレジスタv0が割り付けられ
mov 0,v0
mov v0,v0
outの中身が0になるかもしれないよってこと。
"=&r"(out) : "r"(in)なら入力と出力を確実に違うレジスタに振り分けてくれるっていう話。
0915デフォルトの名無しさん
2009/05/21(木) 11:26:04(特に指定がなければ)出力は入力とエイリアスしてるかもしれないから、
出力に書き込んだら入力は読むな、ということで、
ある程度長いコードをインライン化する時に、そうしたいことってたまにあると思うけど。
0916913
2009/05/21(木) 19:28:52ありがとうございます。
最適化で入出力のレジスタが共用されてしまい、意図したように動かない
ことがあると理解しました。
となると、回避するには書き込み側を"+m"にするなどで逃げるのが
安直な回避策となりますか。
0917デフォルトの名無しさん
2009/05/21(木) 23:00:54レジスタ割り付けがどうこう以前に
書いた命令自体もそのまま残るとは限らない。
ちゃんと書こうと思うと結構難しいよなぁ。
(volatile で逃げることは出来るけど… 何か負けた気がする)
0918デフォルトの名無しさん
2009/05/24(日) 18:26:34//const int64_t qword_4354h = 0x4354435443544354LL;
#define qword_4354h "$0x4354435443544354"
// movq mm2,qword_4354h
" movq "qword_4354h", %%mm2 ¥n¥t"
こんな感じで書き換えているのですが、
suffix or operands invalid for `movq'
と怒られます。どのように直せばいいのか調べているのですが、どうしても
見つかりません。アドバイスをいただけませんでしょうか。
0919デフォルトの名無しさん
2009/05/24(日) 18:36:20そもそもmovqのオペランドには即値($...)は使えないのでは?
0920デフォルトの名無しさん
2009/05/24(日) 18:52:58ソース例
void test()
{
const long long int qword_4354h = 0x4354435443544354LL; // int64_tでもよし
asm (
"movq (%0), %%mm2 "
: : "r" (&qword_4354h)
);
}
コンパイル結果 (gcc version 3.4.5) バージョン古いけど勘弁
__Z4testv:
pushl %ebp
movl %esp, %ebp
leal -8(%ebp), %eax
subl $8, %esp
movl $1129595732, -8(%ebp)
movl $1129595732, -4(%ebp)
/APP
movq (%eax), %mm2
/NO_APP
leave
ret
0921デフォルトの名無しさん
2009/05/24(日) 19:48:35ありがとうございます。即値は使えないのですね。
920さんの方法でもOKでしたが、
グローバル変数にしてしまうと変数名自体をソースに直接
埋め込めるみたいです。
それにしても、移植作業では、gcc側でダブルクオートを使うせいで
いろいろマクロの置き換えをしないとならず、かなり面倒ですね・・・。
0922デフォルトの名無しさん
2009/06/10(水) 00:37:38-O2 stripの場合は
最適化度は等価ですよね?
0923デフォルトの名無しさん
2009/06/10(水) 01:26:120924デフォルトの名無しさん
2009/06/10(水) 07:32:34嘘をつくな嘘を
0925デフォルトの名無しさん
2009/06/10(水) 08:05:070926デフォルトの名無しさん
2009/06/10(水) 09:19:130927デフォルトの名無しさん
2009/06/10(水) 10:08:500928デフォルトの名無しさん
2009/06/10(水) 10:32:470929デフォルトの名無しさん
2009/06/10(水) 23:17:150930デフォルトの名無しさん
2009/06/10(水) 23:24:340931デフォルトの名無しさん
2009/06/11(木) 00:08:52そうなの?
昔は-gつけると最適化されないからデバッグ時は要注意なとか
言われてた気がするがそんなことは実はなかったのか
0932デフォルトの名無しさん
2009/06/11(木) 04:27:44GCCは最適化をしてもデバッグが出来る。
GCC allows you to use -g with -O.
(snip)
Nevertheless it proves possible to debug optimized output. This makes
it reasonable to use the optimizer for programs that might have bugs.
0933デフォルトの名無しさん
2009/06/11(木) 08:02:02サイズの最適化、UIの最適化等々
最適化という単語だけで話しても意味ないよ
0934デフォルトの名無しさん
2009/06/11(木) 08:37:30> UIの最適化等々
このスレでこれは無い
0935デフォルトの名無しさん
2009/06/11(木) 18:32:200936デフォルトの名無しさん
2009/06/12(金) 14:01:16lint系のツールが増えて、恒常的にメインテナンスされるかも。
0937デフォルトの名無しさん
2009/06/12(金) 16:04:540938デフォルトの名無しさん
2009/06/18(木) 22:51:3032bitの方が高速なの修正されないの?
0939デフォルトの名無しさん
2009/06/19(金) 19:21:11むしろ大メモリアドレスを扱えるようになるほうがメイン
0940デフォルトの名無しさん
2009/06/21(日) 14:58:36嘘乙
x86とx86_64の違いを考えてみろよ
AMD64は明らかに性能差が出てるだろうが
0941デフォルトの名無しさん
2009/06/21(日) 15:14:200942デフォルトの名無しさん
2009/06/21(日) 15:19:56馬鹿過ぎて話にならん
アーキテクチャの違いを勉強してこい
0943デフォルトの名無しさん
2009/06/21(日) 15:20:09>>939は、まったく逆だよ。
「x86以外では」アドレス空間の増加が主な利点。
0944デフォルトの名無しさん
2009/06/21(日) 16:19:42速くなる遅くなるってのはgcc限定の話?
0945デフォルトの名無しさん
2009/06/21(日) 16:23:540946デフォルトの名無しさん
2009/06/21(日) 16:46:05速度向上するアプリが多いが、GCCはわずかに遅かった。今はどうだか知らん
http://www.scribd.com/doc/363677/Benchmarks-AMD64-in-32bit-mode-vs-64bit-mode-Ubuntu
0947デフォルトの名無しさん
2009/06/21(日) 17:05:110948デフォルトの名無しさん
2009/06/21(日) 18:27:450949デフォルトの名無しさん
2009/06/21(日) 18:59:10出るから利用はやめたほうがいい
0950デフォルトの名無しさん
2009/06/21(日) 19:04:18それはインラインアセンブラやってる人に言ってるのか?
それとも、コンパイラ開発者に言ってるのか?
0951デフォルトの名無しさん
2009/06/21(日) 19:19:13嘘を言うな
0952デフォルトの名無しさん
2009/06/21(日) 19:22:46いやicc以外バグがあるってintelに指摘されてるでしょ
0953デフォルトの名無しさん
2009/06/21(日) 19:24:16ソースは?
0954デフォルトの名無しさん
2009/06/22(月) 01:08:450955デフォルトの名無しさん
2009/06/22(月) 05:23:14CPUもなかったっけ?
0956デフォルトの名無しさん
2009/06/22(月) 05:58:460957デフォルトの名無しさん
2009/06/22(月) 06:41:47CoreMAは最初のころ命令デコーダがEM64Tの命令切りわけ時に
ペナルティがあった。
レジスタが増えた分と実行性能が落ちる分とがあるから、
64bitにしたら単純に性能が上がるとは言えない。
0958デフォルトの名無しさん
2009/06/22(月) 06:58:330959デフォルトの名無しさん
2009/06/22(月) 10:11:04Intel は Core2 でもあまり性能上がらなかったからな。
ネハーレンでやっと最初から64bitをターゲットに設計したCPUになった。
0960デフォルトの名無しさん
2009/06/22(月) 20:34:09上のほうで「速くなる」とか「遅くなる」とか言ってるのがアホってだけで。
んなもん、CPUと対象のプログラムに依存するにきまってんだろ。
0961デフォルトの名無しさん
2009/06/23(火) 00:08:05なぜかgccだけは64bitでもっさりするw
終わってるよな
0962デフォルトの名無しさん
2009/06/23(火) 04:53:200963デフォルトの名無しさん
2009/06/24(水) 02:02:15push/popが実質0クロックで終わるから、レジスタ増えたこと自体は
大した解決にならないんでないの。
push reg/pop regも1バイト命令だし、ALUがボトルネックになるだろうから
今時のx86デコーダの負荷にはならんだろうし。
レジスタリネーミングが無いプロセッサとか、
レジスタ割り当て問題にコンパイラが悩まされてるときなら
レジスタが多いのは役に立ったけど、今となっちゃあ
それだけでパフォーマンスアップしろってのは難しいでしょ。
0964デフォルトの名無しさん
2009/06/24(水) 02:09:10普通、push/popなんてしません。
毎回直接読み書きするし、
それがアドレスを示すものならば、必ずレジスタにロードしてから(アドレス先に)アクセスします。
0965デフォルトの名無しさん
2009/06/24(水) 02:12:59「レジスタ変数に割り当て可能なレジスタ」が増えた場合の話だけね。
局所的な計算に用いる「レジスタの増加」とはあまり関係ない。
0966デフォルトの名無しさん
2009/06/24(水) 02:45:08でもやっぱりmovも0クロックじゃね?
ほとんどのケースで演算に隠れちゃいそうだけど。
0967デフォルトの名無しさん
2009/06/24(水) 03:08:16メモリの読み書きとレジスタじゃ速度が違うんだよ。
そうでなければレジスタの存在意義が半減する。
だからこそRISCとかは沢山のレジスタを持ってるし
x86だってレジスタリネーミングとかを駆使して補おうとしている。
補えないから、一時変数としてのメモリの読み書きが発生してるんだがね。
0968デフォルトの名無しさん
2009/06/24(水) 03:58:11いや、だから今時のx64積んでるようなx86ってその「レジスタの存在意義が半減」してるから、
単にレジスタ増えただけじゃあんまり変らなくね?って話ですよ。
キャッシュアクセスのスループットがいくら悪くても、
前後の演算なりイテレーションなりに隠せないようなケースってのは
ほぼ無いと見ていいんじゃないかと。
もちろん、裏付けがあるわけではないので、
「んなわけねーよ、メモリ待ちでストールしまくりだよ」
と言われるとそれまでです。
0969デフォルトの名無しさん
2009/06/24(水) 04:28:09これだけは絶対ありません。
そして、(対32bitにおけるデコーダ等の不利の無い場合)
64bitで再コンパイルしたコードの速度が実際に速くなっているという事実が
全てを物語っていますけど。
0970デフォルトの名無しさん
2009/06/24(水) 09:37:160971デフォルトの名無しさん
2009/06/24(水) 13:17:590972デフォルトの名無しさん
2009/06/24(水) 16:33:04開発費を湯水のように使って高速なプロセッサの設計が出来、
開発費の回収も出来たからだろうな。
現状はレジスタ数を増やした方が早くなっているものの、早くなっていないアプリもある。
演算やポインタの単位が64ビットになって、キャッシュに対する影響が出ているのではないかと
思われるが、本当の理由についての解析は完璧に進んでいるのかな?
32bitでレジスタ増えるモードがあれば、相当に高速であるだろうとは思うが
そんな命令セットになってないし…
0973デフォルトの名無しさん
2009/06/24(水) 16:41:49http://www.amazon.co.jp/Computer-Architecture-Quantitative-Approach-Kaufmann/dp/0123704901
0974デフォルトの名無しさん
2009/06/24(水) 17:55:27ものか。あれでSTLを使うのに恐れをなす初学者は多いだろうな。
0975デフォルトの名無しさん
2009/06/24(水) 18:17:530976デフォルトの名無しさん
2009/06/24(水) 18:19:42ttp://www.bdsoft.com/tools/stlfilt.html
0977デフォルトの名無しさん
2009/06/24(水) 18:37:27おお?
何じゃこれは?
0978977
2009/06/24(水) 18:38:43ttp://natu.txt-nifty.com/natsutan/2007/08/stlfilt.html
あまり変わらないような気もするな。
0979デフォルトの名無しさん
2009/06/24(水) 18:42:18一時期使ってたことあったのだが、何でやめたのか思い出せない。
また使ってみるか。
0980デフォルトの名無しさん
2009/06/24(水) 21:05:49使えないので使い勝手が悪かったので俺はやめた
0981デフォルトの名無しさん
2009/06/26(金) 00:46:51make[2]: *** [configure-stage1-target-libgcc] エラー 1
make[2]: 出ます ディレクトリ `/***/src/gcc-4.3.3'
make[1]: *** [stage1-bubble] エラー 2
make[1]: 出ます ディレクトリ `/***/src/gcc-4.3.3'
make: *** [all] エラー 2
てな エラーが出るんだが、これってどう意味?
ググったけどあんまり参考にならなかった。
0982デフォルトの名無しさん
2009/06/26(金) 00:55:10もうちょっと上のほうで xgcc だかなんだかがエラーはく
→ それを起動してた make がエラーになる
→ その make を起動してた make がエラーになる
って感じになってて、そのメッセージじゃその最後の2つだけしかわからないから、根本的な原因がわからない
0983デフォルトの名無しさん
2009/06/26(金) 01:21:23もう一回makeしたらこういうのが出ました。
checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile
0984デフォルトの名無しさん
2009/06/26(金) 01:27:060985デフォルトの名無しさん
2009/06/26(金) 01:27:19なんて事もあったりする。
RH8じゃ元々入ってるのはかなり古くないかい?
0986デフォルトの名無しさん
2009/06/26(金) 01:33:22diskはフルじゃないこと確認した。
>>985
調べてみたけどgcc バージョン 3.2だ。2002年だけど、これってかなり古い部類?
0987デフォルトの名無しさん
2009/06/26(金) 01:57:570988デフォルトの名無しさん
2009/06/26(金) 02:04:32それは両方とも最新のをインストールしてあります。
0989デフォルトの名無しさん
2009/06/26(金) 02:09:430990デフォルトの名無しさん
2009/06/26(金) 04:31:46gcc-3.4.6でgcc-4.1.1のクロスコンパイラ作ろうとしたら、
libgcc作る所でxgccがInternal Error吐いたことがあった。
gcc-4.3.3にしたら問題なし。
0991デフォルトの名無しさん
2009/06/26(金) 07:24:070992981
2009/06/26(金) 16:39:35configure:3251: checking whether the C compiler works
configure:3257: ./a.out
configure:3260: $? = 0
configure:3277: result: yes
configure:3284: checking whether we are cross compiling
configure:3286: result: no
configure:3630: gcc -c -g -O2 conftest.c >&5
conftest.c:2: parse error before "me"
configure: failed program was:
| /* confdefs.h. */
|
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h. */
|
| int
| main ()
| {
| exit (42);
| ;
| return 0;
| }
0993デフォルトの名無しさん
2009/06/26(金) 19:55:130994デフォルトの名無しさん
2009/06/26(金) 21:00:16>>983のエラーの後にfor more detail see cofig.logとか何とか書いてあったので見てみたわけです。
0995デフォルトの名無しさん
2009/06/26(金) 22:22:41とかやって、コンパイラ本体が動くか確認してみては?
0997デフォルトの名無しさん
2009/06/27(土) 00:09:590998デフォルトの名無しさん
2009/06/27(土) 04:53:120999デフォルトの名無しさん
2009/06/27(土) 08:29:201000デフォルトの名無しさん
2009/06/27(土) 08:31:0410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。