GCCについて part9
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/06/27(土) 08:34:50GNU本家の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について part8
http://pc12.2ch.net/test/read.cgi/tech/1192201659/l50
0002デフォルトの名無しさん
2009/06/27(土) 23:54:040003デフォルトの名無しさん
2009/06/28(日) 01:06:560004デフォルトの名無しさん
2009/06/28(日) 14:46:01//||
|| /( (・゚))
. |:| //
. | | | | |
| | |. | .||
| | / | , _____ .||
| | / | / ____ / .||
| | /. | / / / / |:|
| || | -‐-| / / / / | |
| ||\ / / / / | |____/ .|
| :| \ \/ | / / \.______/
| | \ ゝノ /
| | /) /
. .|| / / |
| (_/ \
/ /⌒\ \
(___/ \__)
0005デフォルトの名無しさん
2009/06/28(日) 14:51:27ミギーか。
懐かしい。
0006デフォルトの名無しさん
2009/06/28(日) 14:54:59\ 、・、 .,
. . .`、 、`・、 . .,
. \ .`・x、 ., .‐ヤTTTTTTTTTTTTTT_ニ‐!
. .\ 、`ー、_ . . .i _.‐“゜
\ 、`・、 } _.‐“´
ヘ_ . . . ./ . .i . 、、・゛
._.^ . . . ._.″ . 、} . . . ._.^ 、
゙_.・´ . . . ._.・′ 、i . ノ゜ ゙’
. ._.・^ . . ._、‐?´ . . .′ ゙/` 、1
. . ..ヤ´ . 、・^` .(_ ,
. . .`¨“〜-=.、_ ._.
. `¨“?〜---・^`
0007デフォルトの名無しさん
2009/06/29(月) 13:17:44ググってみたが解決策が見つからないです。ヒントをください。
const short x_limit_min[8] = {i, i-1, i-2, i-3, i-4, i-5, i-6, i-7};
__asm__ volatile (
:
" movdqu %[x_limit_min], %%xmm3 ¥n¥t"
:
:: ..., [x_limit_min] "m" (x_limit_min), ...
: ... );
こう書いてみたところ、(Xは数字)
error: memory input X is not directly addressable
と警告されてしまう。
ローカル配列のアドレスを渡すだけなので
:: [x_limit_min] "m" (&x_limit_min)
としてみても、同じエラーだった。どうするのが正解でしょう?
0008デフォルトの名無しさん
2009/06/29(月) 13:57:07x_limit_minのポインタをレジスタに入れて間接アドレッシングで書いてみたら?
0009デフォルトの名無しさん
2009/06/30(火) 04:44:30置き換えてしまっても大丈夫なのでしょうか?
0010デフォルトの名無しさん
2009/06/30(火) 05:15:54おまけにスレ違い。最悪だよな。
0011デフォルトの名無しさん
2009/06/30(火) 10:23:330012デフォルトの名無しさん
2009/06/30(火) 11:50:01マジレスすると、No。
MacOS Xについているgccは、Apple Extensionがいくつか
入っている。だから、置き換えるんじゃなくて別のパスに
バイナリを置いて、環境変数CCとかにフルパスを埋め込んで
きりかえる。例えば、/opt/local/bin/とか/usr/local/bin/とか。
Xcodeがデフォルトでgcc4.0.1と4.2.1、llvm-gccを入れるけど、
MacPortからすっぴんgccをバージョン指定で落としてきて入れるっ
てのが可能らしい。試したことは無いけど。
0013デフォルトの名無しさん
2009/06/30(火) 20:29:2200147
2009/06/30(火) 20:32:48まあまあ。Appleのllvmとかclangへの貢献度は高いと思うし。
>8
解決しました。vectorを使ってあげればそのまま行けました。こんな感じです。
v8hi x_limit_min = {i, i-1, i-2, i-3, i-4, i-5, i-6, i-7};
0015デフォルトの名無しさん
2009/06/30(火) 20:50:48>>12が言ってるが、フレームワークをリンクしたりするなら止めたほうがいい。
binutils相当がかなり違うし、GCC自体も独自拡張の部分が多いから。
gccのmanページで"APPLE ONLY"を検索してみると違いがよく分かる。
0016デフォルトの名無しさん
2009/06/30(火) 21:21:30mac使ったことないけど。
0017デフォルトの名無しさん
2009/07/01(水) 03:07:10次の無かったNeXTならともかくw
結局、Solarisに成る前のSUNが一番良かったな。
0018デフォルトの名無しさん
2009/07/01(水) 05:15:07Mac OSってGPLなの?
コンパイラ作る技術が無いから利用してるだけでしょ。
00197
2009/07/01(水) 05:39:33んなこたあない。
http://arstechnica.com/apple/news/2007/03/apple-putting-llvm-to-good-use.ars
OpenCL、CUPS、WebKitとか、それなりにOpenSourceな世界にも貢献
してる。パッチも投げてるし、別におかしくないかと。
0020デフォルトの名無しさん
2009/07/01(水) 06:29:24いや、結構オープンソース嫌いなイメージがあるのだが。
当てつけのように暗号化したりして邪魔してるじゃん。
0021デフォルトの名無しさん
2009/07/01(水) 07:27:00http://www.opensource.apple.com/
技術がどうとかよりNeXT時代からGCCベースだし、ObjC/ObjC++サポート以外
にもGCCに様々な貢献をしていると思うが。
変な独自コンパイラを作られるよりGCCの方がずっと良いと思う。
0023デフォルトの名無しさん
2009/07/01(水) 08:39:120024デフォルトの名無しさん
2009/07/01(水) 13:17:34自分とこでも動くようにパッチ投げてるだけで、最初のソース本体を
GPLで公開してない。それどころか自社独自ハードのデバドラは
ソース非公開だし。そこに挙がってるような上っ面のソフトなんて、
別にソース公開してくれなくても、見た目が似たようなのは幾らでも
作れる。必要なのはハードウェアのデバドラをOSS化すること。
そもそもOS X 自体を再コンパイル出来ないし。
>>21
GCCは利用するが、貢献はしてない。むしろあからさまにGPLを
成果物から避けてる。Takeはするけど、Giveはしない。
>>22
voidウザい。
0025デフォルトの名無しさん
2009/07/01(水) 13:24:240026デフォルトの名無しさん
2009/07/01(水) 13:28:240027デフォルトの名無しさん
2009/07/01(水) 13:38:070028デフォルトの名無しさん
2009/07/01(水) 13:39:14GCCへの貢献が無いだとか、嘘もいいところだ
0029デフォルトの名無しさん
2009/07/01(水) 16:19:510030デフォルトの名無しさん
2009/07/01(水) 16:22:56置いてあるのにな
0031デフォルトの名無しさん
2009/07/01(水) 19:29:49http://sourceforge.jp/magazine/09/07/01/0714255
>GCCをインタラクティブなマシン学習対応研究ツールに変換する「Milepost Framework」を利用、それぞれの設定に応じてコンパイラを開発することなく、自動的に最適化するコンパイラを生成する。
>ターゲットアーキテクチャ向けにアプリケーションを迅速にチューニングするため、再設定して構築するシステムの開発期間を短縮できるという。
>「IBM System p」で行った組み込みアプリケーションのベンチマークテストでは、性能が平均18%改善されたという。
まーたこの人誤訳してそうだなぁ…。
0032デフォルトの名無しさん
2009/07/01(水) 20:38:000033デフォルトの名無しさん
2009/07/01(水) 20:41:26>Takeはするけど、Giveはしない。
Give を強要するのがオープンソースじゃないでしょ。
それに、Apple 由来のソースコードは沢山見掛けるよ。
俺は意識的に GPL 物を避けてるけど、ライセンスの選択は
プログラマの自由だから他人にとやかく言われたくないし。
0034デフォルトの名無しさん
2009/07/01(水) 21:44:00貢献しているっていうなら、Darwinじゃなく、Mac OS XをGPLで配布すればいいじゃん。
MSもアップルもSUNも同じ穴の狢で、ただの独占を狙ってる企業って事実を認識しろよ。
0035デフォルトの名無しさん
2009/07/01(水) 21:55:35穴の見分けもつかない奴が同じ穴の狢とか言ってんなよw
CDDL は『GPL がコンフリクトを起こしている』だけで、
オープンソースライセンスとしては何の問題も無いぞ。
現に BSDL な環境に持って行っても問題は出ていないし。
0036デフォルトの名無しさん
2009/07/01(水) 22:16:50「GCCに貢献してない」と言い出したのはテメーだろうが
それを論破されたからと言って無関係な事を言い出すなよ、気違いが
0037デフォルトの名無しさん
2009/07/01(水) 22:23:39もういいです。Appleとまかが死ぬほど嫌いなのは良くわかりました。
お願いですからトリップつけてください。あぼーんするから。
0038デフォルトの名無しさん
2009/07/01(水) 23:14:33RMSがAppleをdisって以来の筋金入りのRMS信者かなw
0039デフォルトの名無しさん
2009/07/01(水) 23:57:48禿同!
>>36
違う違う。それ俺。
とにかくマカーが狂ってるのは分かったから>>37は
トリップ付けろ。アボーンするから。<言い出しっぺの法則
0040デフォルトの名無しさん
2009/07/02(木) 00:01:300041デフォルトの名無しさん
2009/07/02(木) 05:22:04論破とか言って勝利宣言かよ。
マカー的には「アップルはgccに多大な貢献しているから多少のスレチは
我慢しろボケ」ってことかよ。意味わかんねー。
0042デフォルトの名無しさん
2009/07/02(木) 06:31:180043デフォルトの名無しさん
2009/07/02(木) 08:04:41糞レスしてる暇あったらGCCのChangeLog見てみろよ
ソースも無しに貢献してないしてないとわめくなクソガキが
0044デフォルトの名無しさん
2009/07/02(木) 09:13:45話。 ttp://journal.mycom.co.jp/special/2004/gnu/004.html
こういう貢献もあるってことで。
>>38
この頃はジョブズは NeXT で Apple に居なかったのでルック&フィール訴訟は関係なく、
現在ジョブズ信者である分には RMS 信者と対立しないとかw
0045デフォルトの名無しさん
2009/07/02(木) 20:15:58そのとおりですね。
パッチポストしてる人のメールアドレス見てみれば
>41とか>39とかがおばかさんなのは良くわかります。
きっと39とか41とかはchangelogもMLも見たことさえ
ないのでしょう。
0046デフォルトの名無しさん
2009/07/02(木) 21:11:14今からAppleスレね。
gccの話もしてもいいよ。
0047デフォルトの名無しさん
2009/07/02(木) 21:20:110048デフォルトの名無しさん
2009/07/02(木) 21:56:330049デフォルトの名無しさん
2009/07/03(金) 13:29:28PGIやwindows SDKのコンパイラなら問題なく通るのだけど、なにか間違ってる?
T::size_type is parsed as a non-typeとか言ってくるし。
でも、
void func(const T&) [with T=std::vector<double, std::allocator;double> >]と、Tがvector型だとわかってインスタンス化してるんですがねぇ。
当然、vector<double>::size_typeは存在するのでテンプレートとして書かなければgccでも通ります。
バグ?
#include <iostream>
#include <vector>
using namespace std;
template <class T>
inline void func(const T& a)
{
T::size_type length = a.size();
cout << length << endl;
}
int main(int argc, int argv)
{
vector<double> a(5);
func(a);
return 0;
}
0050デフォルトの名無しさん
2009/07/03(金) 13:32:43typename T::size_type としてみれ
0051デフォルトの名無しさん
2009/07/03(金) 13:32:58http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus
> You must now use the typename and template keywords to disambiguate dependent names, ...
0052デフォルトの名無しさん
2009/07/03(金) 13:54:30lengthの定義のところにtypenameを入れたら通りました。
C++って元からそんな仕様だったっけ?
まあ通ったからいいや。
0053デフォルトの名無しさん
2009/07/03(金) 23:20:260054デフォルトの名無しさん
2009/07/03(金) 23:36:16GEANT4というシュミレーションコードのコンパイルがうまくいかず、困っています。
3ヶ所ほどコンパイル中にエラーが出ていて、2つは潰したのですが…
最後に残った
Compiling G4ScoreLogColorMap.cc ...
src/G4ScoreLogColorMap.cc: In member function 'virtual void G4ScoreLogColorMap::DrawColorChartText(G4int)':
src/G4ScoreLogColorMap.cc:157: error: 'sprintf' is not a member of 'std'
gmake[2]: *** [/home/xxxxxxxxxxxxx/geant4/tmp/Linux-g++/G4detutils/G4ScoreLogColorMap.o] エラー 1
というエラーが取り除けなくて困っています。
読み込んでいるヘッダーがおかしいんだろうなぁとは思うのですが…
ネットで調べて、色々読み込んでみました。
(1) ttp://www.drk7.jp/MT/archives/001498.html
ここを参考に…(ここはatoiが読み込めませんと出ていた。)
#include <cstdlib>
#include <cstring>
(2) ttp://code.google.com/p/pyminuit/issues/detail?id=8
を参考にして…
#include <algorithm>
(3) ttp://simd.jugem.jp/?eid=73
を参考にして、また、c++がcを下位互換でサポートしている事を踏まえて
#include <stdio.h>
これだけ加えてみましたが、同じエラーが続いています。
どのヘッダーに含まれているのか、ご存知の方いらっしゃいましたら、ご教示いただけませんか?
宜しくお願いいたします。
0055デフォルトの名無しさん
2009/07/03(金) 23:45:050057デフォルトの名無しさん
2009/07/16(木) 06:54:06自分のHOMEにライブラリをインストールしたのですが、コンパイル時には
システムに標準で入っている古いライブラリのヘッダを観に行ってしまって
失敗するようです。
/usr/localを見ないようにはできませんか?
0058デフォルトの名無しさん
2009/07/16(木) 09:52:14-I-
0059デフォルトの名無しさん
2009/07/16(木) 11:36:330060デフォルトの名無しさん
2009/07/16(木) 15:01:160061デフォルトの名無しさん
2009/07/18(土) 03:22:210062デフォルトの名無しさん
2009/07/18(土) 03:27:360063デフォルトの名無しさん
2009/07/18(土) 03:40:41ググって解決しました
0064デフォルトの名無しさん
2009/07/23(木) 20:30:200065デフォルトの名無しさん
2009/07/24(金) 18:25:360066デフォルトの名無しさん
2009/08/01(土) 17:02:450067デフォルトの名無しさん
2009/08/01(土) 17:21:130068デフォルトの名無しさん
2009/08/01(土) 19:39:47006968
2009/08/01(土) 19:52:060070デフォルトの名無しさん
2009/08/01(土) 20:02:18保護期間が50年なのは財産権であって、人格権は含まれない。
パブリックドメインは人格権に相当するものも含めパブリックと解される。
0071デフォルトの名無しさん
2009/08/01(土) 20:26:150072デフォルトの名無しさん
2009/08/01(土) 20:38:510073デフォルトの名無しさん
2009/08/04(火) 20:44:15る。誰か報告してくれ。
#include <stdio.h>
// gcc version 4.2.1 20070719 [FreeBSD]
// gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)
typedef enum {
// e_X = -1,
e_a,
} enum_t;
void
foo(enum_t e) {
printf("e %s\n", e < 0 ? "< 0" : ">= 0");
}
int
main() {
enum_t e = -1;
foo(e);
return 0;
}
0074デフォルトの名無しさん
2009/08/04(火) 20:56:33> unsigned integer type. The choice of type is implementation-defined,108) but shall be
> capable of representing the values of all the members of the enumeration.
意訳) enum の型は処理系定義だよ、ただしメンバの値はすべて表現できなければならない
なので、メンバに負の値がなければ、処理系によっては unsigned を選ぶかもしれない
unsigned になった場合は e = -1 は e = (unsigned) -1 のことだから、
なんというか、まぁ、仕方ないんじゃないか
0075デフォルトの名無しさん
2009/08/04(火) 20:57:19printf("e %s\n", e < 0 ? "< 0" : ">= 0");
が
printf("e %s\n", ">= 0");
に最適化されてるみたい。
0076デフォルトの名無しさん
2009/08/04(火) 21:14:59マジか…int とコンパチだと思ってたよ。
0077デフォルトの名無しさん
2009/08/04(火) 21:16:170078デフォルトの名無しさん
2009/08/04(火) 21:26:09GCC4.4を--prefix=/opt --program-suffix=-4.4のOPTで自己ビルドインスコ。
これでいくとlibstdc++.so.6とlibgcc_s.so.1が/opt/lib64ディレクトリにできるんだけど、
問題はコンパイルしたアプリがこれらを参照しないでUbnuntu9.04のGCC4.3とセット物の/usr/lib配下の
物を参照してる。アプリをコンパイル時にLD_RUN_RATHに/opt/lib64をつけても変わらない。
ちなみに/opt/lib64/libstdc++.so.6は/opt/lib64/libstdc++.so.6.0.12へ、/usr/lib/libstdc++.so.6は
/usr/lib/libstdc++.so.6.10へのリンクだからバージョン違ってる・・
/etc/ld.so.confに/opt/lib64を追記すると両方共それを参照するけど、そうなるとシステム全部のアプリが
(Ubuntuのgcc4.3でコンパイルされてる)全部gcc4.4のを読んでしまう(lddコマンドの結果)。
そうなるとよくないですよね。なのでやめました。
実行アプリ毎にLD_LIBRARY_PATHをつける管理が面倒なのでGCC4.4でコンパイルしたアプリも現状の
GCC4.3のlibstdc++とlibgcc_sを読ませておく状態で使用して何か後々問題出る可能性ありますか?
0079デフォルトの名無しさん
2009/08/04(火) 21:26:54アセンブリコード出力して比較してみろよ
0080デフォルトの名無しさん
2009/08/04(火) 21:34:59リンク時に
-Wl,-rpath,/opt/lib64
とかいう話かね?
0081デフォルトの名無しさん
2009/08/04(火) 21:38:09LD_RUN_RATH→LD_RUN_PATH
0082デフォルトの名無しさん
2009/08/04(火) 21:46:19揺れていいみたいだね。
99)An implementation may delay the choice of which integer
type until all enumeration constants have been seen.
0083デフォルトの名無しさん
2009/08/04(火) 21:47:42お、や。もしかしてそれをコンパイル時にコンパイラフラグで渡せばいいのでしょうか。
やってみます^^
>>81
すまそ、タイプミスです。
0084デフォルトの名無しさん
2009/08/05(水) 00:21:35> /etc/ld.so.confに/opt/lib64を追記すると両方共それを参照するけど、そうなるとシステム全部のアプリが
> (Ubuntuのgcc4.3でコンパイルされてる)全部gcc4.4のを読んでしまう(lddコマンドの結果)。
それほんと?埋め込まれたバージョン番号が違うから、そのへん良きに計らってくれると思ったんだけど。
0085デフォルトの名無しさん
2009/08/05(水) 01:11:13そういうもんだ。Ubuntuのg++-4.2も4.3のlibstdc++使ってるし、PPAにある
g++-4.4を入れるとlibstdc++も4.4にアップグレードされる。
0086デフォルトの名無しさん
2009/08/05(水) 16:46:340087デフォルトの名無しさん
2009/08/27(木) 18:58:19あれをつけるのとつけないとで違いってでる?
0088デフォルトの名無しさん
2009/08/27(木) 23:14:48してないソースだと無意味。
0089デフォルトの名無しさん
2009/09/03(木) 22:11:25Windows以外で採用不可能なんだね
0090デフォルトの名無しさん
2009/09/04(金) 00:12:270091デフォルトの名無しさん
2009/09/04(金) 01:22:030092デフォルトの名無しさん
2009/09/04(金) 02:02:510093デフォルトの名無しさん
2009/09/04(金) 05:53:280094デフォルトの名無しさん
2009/09/04(金) 10:08:460095デフォルトの名無しさん
2009/09/10(木) 22:31:170096デフォルトの名無しさん
2009/09/11(金) 09:45:57リンクするって出来るものなの?
0097デフォルトの名無しさん
2009/09/11(金) 09:59:010098デフォルトの名無しさん
2009/09/11(金) 11:50:22まあMajorが同じなら大丈夫か。
0099デフォルトの名無しさん
2009/09/11(金) 13:38:45ありがとうございます。やってみたら出来ました。
0100デフォルトの名無しさん
2009/09/12(土) 08:47:460101デフォルトの名無しさん
2009/09/12(土) 09:14:460102デフォルトの名無しさん
2009/09/12(土) 20:19:01シェルは解放してないからクロスコンパイル環境を作って対応したことはある。
(鯖は無料だからその程度の手間は仕方ないんだが。)
最近の GCC ならそんなに難しいことではない。
でも、ライブラリ類はコンパイル済みのをどこかからもってきた方がいいぞ。
0103デフォルトの名無しさん
2009/09/12(土) 23:55:37boost 使ったソースをコンパイルしようとしたら遅すぎてやっとれんです。
0104デフォルトの名無しさん
2009/09/13(日) 00:24:160105デフォルトの名無しさん
2009/09/13(日) 00:25:09ccacheで我慢するくらいしか思いつきません
0106103
2009/09/13(日) 00:38:06とりあえずあとはぐぐってみます。
0107デフォルトの名無しさん
2009/09/26(土) 23:08:03vc++にある
wmain( int argc, wchar_t *argv[ ])
みたいに引数をwchar_tにすることはできるでしょうか?
0108デフォルトの名無しさん
2009/09/26(土) 23:13:13main関数内でargvをワイド文字列の配列に変換してwmainに渡すという手が有る
0109デフォルトの名無しさん
2009/09/26(土) 23:15:140110デフォルトの名無しさん
2009/10/01(木) 18:52:06コンパイルオプションとして-Werrorをつけたいのですが、
実装上どうしても、取り除くことができない警告があります。
この警告だけはWerrorの対象からはずすということができますでしょうか?
もしできるならその方法を教えてください。
0111デフォルトの名無しさん
2009/10/01(木) 19:29:470112デフォルトの名無しさん
2009/10/01(木) 20:24:23外したい警告がどういう警告なのか書けよ。
0113デフォルトの名無しさん
2009/10/01(木) 22:47:25http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html
なんてのもある
0114110
2009/10/01(木) 23:00:07返答ありがとうございます。
Werrorの非対象にしたいのは-Wをつけた際に出力される、longjmp関連の警告です。
-Wは複数の機能を持つオプションなので、-W自体を無効化はできない状況です。
0115デフォルトの名無しさん
2009/10/01(木) 23:21:56にある通り、-Wは-Wextraの別名で、含まれる警告オプションのうち
longjmpが関連しそうなのは-Wclobberedと-Wuninitializedだから、
-Wno-clobbered -Wno-uninitializedをつけてみたらどうか
0116デフォルトの名無しさん
2009/10/01(木) 23:23:490118デフォルトの名無しさん
2009/10/12(月) 00:59:234.4だと引数が多すぎって言われてコンパイル出来ない事があるな
4.5になると引数の最大値が大きくなったりするんだろうか…
というかしてくれないと困る。
-combine -fwhole-program -ftoでビルドしたいんじゃー
0119デフォルトの名無しさん
2009/10/16(金) 05:13:280120デフォルトの名無しさん
2009/10/16(金) 09:29:17> 4.4だと引数が多すぎって言われてコンパイル出来ない事があるな
これってどういうメッセージ?
0121デフォルトの名無しさん
2009/10/16(金) 11:16:120122デフォルトの名無しさん
2009/10/16(金) 22:28:44cc1: error: too many filenames given. Type cc1 --help for usage
0123デフォルトの名無しさん
2009/10/17(土) 04:15:110124デフォルトの名無しさん
2009/10/18(日) 17:31:01----------------------------
#include <stdio.h>
int main(int argc, char** argv) {
printf("HelloWorld!");
return (0);
}
-----------------------------
WinXPは正常に実行できたけど、Ubuntuのgccがうまくいかない。
/tmp/ccaeafnN.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld はステータス 1 で終了しました
バージョンは4.3.3。
上記のようにリンクでエラーがでる。
コンパイラはもともと入ってたやつだから、導入に失敗したわけではなさそうだけど。
オプションも出力先以外は指定してないし。
原因が分かるエスパーな方はいませんか?
0125デフォルトの名無しさん
2009/10/18(日) 17:40:09を
#include <cstdio>
に
printf
を
std::printf
に替えてみたらどうなる?
0126デフォルトの名無しさん
2009/10/18(日) 17:46:22g++標準のライブラリがリンクされてないように見える。
g++ hello.cc ではなく gcc hello.cc でコンパイルしてない?
0127デフォルトの名無しさん
2009/10/18(日) 18:06:18gccを使っていてリンクエラーが出る場合、大抵は>>126だよな。
普通にg++とするか、あるいは-lstdc++とかでもなんとかなるもんだけど
意外にそこでひっかかる人も多いよね。
まあ>>124の原因は知らないけど。
0128124
2009/10/18(日) 18:44:08ありがとう。
それにしてもアホすぎる……。
TDM/Mingwだと「gcc hello.cpp」は通るけど「g++ hello.cpp」がリンクエラー。
\(^o^)/
0129デフォルトの名無しさん
2009/10/18(日) 19:27:04か?
0130デフォルトの名無しさん
2009/10/18(日) 19:32:55通常の関数のreturnに相当する記述ってどうやって書けばいいのでしょうか?
0131デフォルトの名無しさん
2009/10/18(日) 19:34:070132デフォルトの名無しさん
2009/10/18(日) 19:44:13まさか知らないのですか?
バカなんですか?
0133デフォルトの名無しさん
2009/10/18(日) 19:56:480134デフォルトの名無しさん
2009/10/18(日) 20:16:45http://cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/gccextend.html
ここでも読んだらいいよ
もっとも僕は、-pedantic-errorsを付けてコンパイルしているから無縁だけど
0135デフォルトの名無しさん
2009/10/19(月) 02:34:19要するに、GCCでは拡張子で動作が変わるってことか。
0136デフォルトの名無しさん
2009/10/19(月) 06:36:28拡張子を識別して使う言語を選択する。
0137デフォルトの名無しさん
2009/10/19(月) 08:03:15の利かなさ。
0138デフォルトの名無しさん
2009/10/19(月) 08:12:59とかあるしね。言語と実行環境を分けているんだと思う。
0139デフォルトの名無しさん
2009/10/22(木) 22:46:09必要に成るライブラリがどちらかなんて ld には分からない。
増改築を繰り返した田舎の温泉旅館みたいなc++は捨てて、
ISO C(c99)でええやん。
0140デフォルトの名無しさん
2009/10/22(木) 22:49:080141デフォルトの名無しさん
2009/10/23(金) 18:22:280142デフォルトの名無しさん
2009/10/23(金) 21:12:36//コメントとか、変数定義の混在とかは割と使ってるんじゃないか?
0143デフォルトの名無しさん
2009/10/23(金) 21:37:37変数はなるべく使い棄てにしたほうがコンパイラもフロー解析しやすいらしいし。
0144デフォルトの名無しさん
2009/10/23(金) 22:44:44<fenv.h>がないとどうしようもない。
0145デフォルトの名無しさん
2009/10/24(土) 01:03:11レジスタ割り付けも楽。最適化もやりやすく成る。
0146デフォルトの名無しさん
2009/10/24(土) 11:44:010147デフォルトの名無しさん
2009/10/24(土) 11:54:24Fortran使えよ
0148デフォルトの名無しさん
2009/10/25(日) 00:51:59だってベースポインタ一緒なんだぜ?
0149デフォルトの名無しさん
2009/10/25(日) 02:41:360150デフォルトの名無しさん
2009/10/25(日) 02:50:570151デフォルトの名無しさん
2009/10/25(日) 03:03:23そういう最適化はどこで宣言しようと同じだろ
0152デフォルトの名無しさん
2009/10/25(日) 08:52:0940年くらい前の最適化の話みたいですね。
0153デフォルトの名無しさん
2009/10/25(日) 09:41:30変数に代入する=メモリ上に書き込む
こんな基本も分かってないようじゃ駄目だろ。
でも、キャッシュから追い出される前に破棄できるデータ領域は重要だよな。
1ms以下で終わる関数は終了までキャッシュメモリから追い出されない可能性あると思うし、
使い終わったらすぐ破棄すれば、その分多くグローバル/スタティックデータをキャッシュで保持できるようになる。
ところで、CPUロジック的には破棄したデータ領域の変更内容ってメインメモリに反映されるんだっけ?
キャッシュが破棄されるのって内容が同一のときだけだろ?
じゃあいくら破棄しても中身書き換えた以上はメインメモリに書き込むんじゃね?
メインメモリへの書き込みを減らすには、できるだけ同じデータ領域を使いまわすのがいいんじゃないかな。
ヒープ領域とかなら繰り返し使われるよね。
でもJavaの場合で最小値が2MBだって。
優先的に実行されるアプリじゃない限り使い回しは難しいね。
確実に使いまわせるのはやっぱりスタック領域だよね。
直近の4kByteが必ず1次キャッシュに入る。
スタックに確保するには、引数渡ししたデータと普通に宣言した変数だよね。
少々のデータなら参照渡しするより値渡ししたほうがキャッシュ効率がいい事になる。
わけないか。
使った分だけ古いのがキャッシュから追い出されるんだ。
だから、ループで散らばったデータを使うくらいなら、ループだけを関数宣言してでもデータを一箇所に集めることが重要なのかな。
あ、そこで書き込みしないデータをループの直前でフォーカス作って変数宣言してコピーしたらいいわけだ。
結局おんなじか。
何度もスタックをキャッシュから追い出すくらいなら普通にヒープにまとめて領域取ったほうがいいな。
変更しなければ書き戻されはしないんだし。
結局小さいデータはオート変数ででっかいデータはアロケート・・ごく普通だな。
0154デフォルトの名無しさん
2009/10/25(日) 09:48:420155デフォルトの名無しさん
2009/10/25(日) 09:57:23ICCを少しは見習えつーんだよ
0156デフォルトの名無しさん
2009/10/25(日) 10:59:3835年くらい前の知識で停まってるね。
register宣言が出てきた頃かな?
0157デフォルトの名無しさん
2009/10/25(日) 10:59:520158デフォルトの名無しさん
2009/10/25(日) 11:53:01スタックをどういう風に使うかなんて部分では大差ないよ
0159デフォルトの名無しさん
2009/10/25(日) 12:23:370160デフォルトの名無しさん
2009/10/25(日) 12:59:090161デフォルトの名無しさん
2009/10/25(日) 13:05:18頭の悪さが丸出しw
0162デフォルトの名無しさん
2009/10/25(日) 14:10:45http://multimedia.cx/eggs/wp-content/uploads/2009/05/64-bit-performance-2009-05-04.png
0163デフォルトの名無しさん
2009/10/25(日) 14:35:520164デフォルトの名無しさん
2009/10/25(日) 20:50:2764Bitだと偉い差だ。そうえいばx264なんかもビルドしてバイナリ配ってる人なんか32Bitは
gcc3.4.6なんだけど64Bitはgcc4.4を使ってる。
ちょっとgcc4.4.2を落として来るわw ffmpeg自己ビルドなのでw
0165デフォルトの名無しさん
2009/10/25(日) 21:06:59ライセンス問題もあるから使わないほうがいいぞ
0166デフォルトの名無しさん
2009/10/25(日) 21:10:400167デフォルトの名無しさん
2009/10/25(日) 21:15:05でgcc4.4.2を気合のシステム上書き(現状4.3.4)の--prefix=/usrインスコでコンパイルスタートして
5分くらい経ってやっぱダメだろって思ってCTL+C押して--prefix=/opt/gcc-4.3 --program-suffix=-4.3
にしたヘタレです・・・
今コンパイル中、CPUフェノムなんで--with-tune-32=k8 --with-tune-64=amdfam10こんなのもつけてみました。
0168デフォルトの名無しさん
2009/10/25(日) 21:16:54--prefix=/opt/gcc-4.4 --program-suffix=-4.4ですねw
変なとこからコピペしたから4.3になってた。本当に4.3のままconfigしちゃったかと思って自分でビビったわ
0169デフォルトの名無しさん
2009/10/25(日) 21:28:09グラフの目盛りよく見ろ。そのうえでえらい差って感じたんならいいけどさ。
0170デフォルトの名無しさん
2009/10/25(日) 21:30:37ああああああああああああああああああああああああぁぁぁぁ
0171デフォルトの名無しさん
2009/10/25(日) 21:52:36$ /opt/gcc-4.4/bin/gcc-4.4 -v
Using built-in specs.
Target: x86_64-linux-gnu
コンフィグオプション: ../configure --prefix=/opt/gcc-4.4 --program-suffix=-4.4 --enable-shared --with-system-zlib
--without-included-gettext --enable-threads=posix --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
--enable-objc-gc --enable-mpfr --with-gmp --with-tune-32=k8 --with-tune-64=amdfam10
--with-multilib-list=x86_64-linux-gnu,i386-linux-gnu --build=x86_64-linux-gnu --host=x86_64-linux-gnu
スレッドモデル: posix
gcc version 4.4.2 (GCC)
0172デフォルトの名無しさん
2009/10/26(月) 20:19:45http://i.msdn.microsoft.com/Aa290049.vcia64alignment_fig2(ja-jp).gif
0173デフォルトの名無しさん
2009/11/14(土) 21:57:31C/C++フンパイラだけいろいろあるけど
何がどう違うの。
0174デフォルトの名無しさん
2009/11/14(土) 23:20:150175デフォルトの名無しさん
2009/11/14(土) 23:28:55C++ のコンパイラやコンパイラドライバではない。
システムによってはコマンドに + の文字が使えないことがあるので、
便宜上用意されているのが cxx 。
たぶん、中身は一緒だと思う。
0176デフォルトの名無しさん
2009/11/15(日) 00:23:33LinuxなどGCCを標準のコンパイラとして採用していると、GCCへのシンボリックリンクになっているけど。
0177デフォルトの名無しさん
2009/11/15(日) 03:47:24よぉ、AMD使い!
0178デフォルトの名無しさん
2009/11/16(月) 00:13:000179デフォルトの名無しさん
2009/11/16(月) 01:14:480180デフォルトの名無しさん
2009/11/16(月) 08:35:20参考 http://www.linux-kongress.org/2009/slides/compiler_survey_felix_von_leitner.pdf
0181デフォルトの名無しさん
2009/11/16(月) 11:15:090182デフォルトの名無しさん
2009/11/16(月) 19:54:02ピーロピーローリーローリロ
ででーででーででー
パスーン
ピンポロピンポロピンポロピロピロプー
未だに自作のプログラムでダウボーイを作ってやろうと思っているのにできねえ俺は
もうだめだ
0183デフォルトの名無しさん
2009/11/19(木) 12:27:58-lXm -lXt -lSM -lICE -lXpm -lXext -lX11 -lm
とか必要なライブラリ全てを記述しなくても
-lXm
だけでOKでした。
何か指定したライブラリ(この場合 /usr/lib/libXm.so.2.0.1) の依存ライブラリを調べてリンクしてくれるようですが、これって昔からそうだったのでしょうか?
10年近く前は、一つでも指定を忘れると駄目だったので、よく知らないライブラリも呪文のように指定していたような記憶があるのですが。
0184デフォルトの名無しさん
2009/11/19(木) 19:08:48ライブラリが収まってるディレクトリに libXm.la ってファイルがないか?
それ読んでみ
0185デフォルトの名無しさん
2009/11/21(土) 01:34:350186デフォルトの名無しさん
2009/12/01(火) 20:54:52なんかいい方法ある?
最後にリンクするときに日時がわかるものを埋め込みたい
0187デフォルトの名無しさん
2009/12/01(火) 21:22:47前者は__DATE__とか__TIME__とかあるけど
0188デフォルトの名無しさん
2009/12/01(火) 21:36:38Makefile で、リンクの直前にそれかけるしか無いんじゃないかな。
0189デフォルトの名無しさん
2009/12/01(火) 21:56:37オブジェクトをリンクごとに生成して埋め込めば?
0190189
2009/12/01(火) 21:58:390191デフォルトの名無しさん
2009/12/06(日) 13:41:22Linux@i386(IA-32)のgccでC言語とアセンブラを組み合わせて使っています。
ebx, esi, ediは通常ならcallee-saveですが、
アセンブラ側の都合でcaller-saveとして扱わなければならない箇所があります。
今はmanを参考に-fcall-used-〜オプションを付け
プログラム全体でcaller-saveとして扱っています。
関数ごとにcallee-save, caller-saveを切り替えて速度を稼ぐことは可能ですか?
可能なら方法を教えてください。
0192デフォルトの名無しさん
2009/12/06(日) 14:57:42特殊な ABI を要求する部分だけ別モジュールにして、
そこだけ CFLAGS 切り替えればいいんじゃない?
昔組み込みでそんな感じにしてたけど。
0193デフォルトの名無しさん
2009/12/06(日) 15:19:44どう呼び出かってのがあるね。どうやってたかな…。
0194デフォルトの名無しさん
2009/12/06(日) 15:22:57この中になければないと思う
0195デフォルトの名無しさん
2009/12/06(日) 15:28:050196デフォルトの名無しさん
2009/12/06(日) 15:31:40どうにかしていたと思う。
ただ 個別に -fcall-used-REG を保守するのも段々面倒
になってきて、最後は「えいや」で setjmp ばりに保存
する hook にしちゃった気がする。
0198デフォルトの名無しさん
2010/01/08(金) 15:41:53gccでjavaの練習をやろうと思うのですが、
gcc -vで
--enable-languagesにjavaが含まれていれば大丈夫でしょうか
gcj -vだとcommand not foundになります
0199デフォルトの名無しさん
2010/01/08(金) 16:54:23Sun の JDK をインストールして勉強しれ。
# command not found に対処できない人が使えるようなものじゃないから…
0200198
2010/01/08(金) 19:20:48もう少しgccを触って駄目だったらJDK逝きます
0201デフォルトの名無しさん
2010/01/09(土) 09:12:510202デフォルトの名無しさん
2010/01/12(火) 07:23:45この警告だけ消す方法ないですか?
戻り値はインラインアセンブラ内で書いてる
0203デフォルトの名無しさん
2010/01/12(火) 10:03:10int
hoge(void)
{
int ret;
asm ("hoge":"=r"(ret));
return ret;
}
みたいに書いてみたら
0204デフォルトの名無しさん
2010/01/12(火) 19:10:060205デフォルトの名無しさん
2010/01/12(火) 19:16:31やっぱそれしかないですか
その方法だと余計なレジスタが増えるのがどうも
ありがとうございました
0206デフォルトの名無しさん
2010/01/12(火) 19:25:26-fomit-frame-pointer付きでコンパイルしてみたら
0207デフォルトの名無しさん
2010/01/12(火) 20:28:58にしたら指定のレジスタ使ってくれました
gccのバージョンで変わったりしないか不安ですけど
0208デフォルトの名無しさん
2010/01/12(火) 21:01:150209デフォルトの名無しさん
2010/01/13(水) 07:17:49asmで破壊されるレジスタに指定するという方法もあるのでは
0210デフォルトの名無しさん
2010/01/13(水) 09:52:26その仕様は今まで変わったことないから大丈夫でないかとは思うが。
>>209
clobberしすぎるとcc1が文句言ってくるので程々にしませう。
ということで妙なコードを書くときは、その関数を
__asm__(
"func:\n\t"
:
"ret");
みたいに書かないとダメだと思う。
0211デフォルトの名無しさん
2010/01/13(水) 11:25:560212デフォルトの名無しさん
2010/01/19(火) 22:22:38下記のような XXX.so の中の関数を dlopen、dlsym を使ってよびだせるようにコンパイル
すればどうすればいいのでしょうか?
XXX.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
調べて、-m32 -ldl をオプションに指定するようにしてみましたが segmentation fault になってしまいます。
アドバイスいただけないでしょうか?
0213デフォルトの名無しさん
2010/01/19(火) 22:42:400214デフォルトの名無しさん
2010/01/20(水) 01:30:21作って何とかするしか。
0215デフォルトの名無しさん
2010/01/20(水) 10:29:140216デフォルトの名無しさん
2010/01/22(金) 06:11:120217デフォルトの名無しさん
2010/01/29(金) 12:28:56http://sourceforge.jp/magazine/10/01/29/0250228
0218デフォルトの名無しさん
2010/02/02(火) 19:20:20ブランチ、既にできてるよ。> gccgo
0219デフォルトの名無しさん
2010/02/02(火) 19:21:420220デフォルトの名無しさん
2010/02/02(火) 20:11:270221デフォルトの名無しさん
2010/02/02(火) 20:12:430222デフォルトの名無しさん
2010/02/02(火) 20:22:230223デフォルトの名無しさん
2010/02/02(火) 23:11:44ライセンス的にllvmの方が好まれると思ったんだが
0224デフォルトの名無しさん
2010/02/02(火) 23:26:35金さえ出せばなんでも入れてもらえるんじゃない?
0225デフォルトの名無しさん
2010/02/03(水) 00:01:390226デフォルトの名無しさん
2010/02/03(水) 00:12:26llvmはgccのbackendに出来るし。
0227デフォルトの名無しさん
2010/02/03(水) 00:54:01カネじゃダメだろ
人とコードを出さないと
0228デフォルトの名無しさん
2010/02/03(水) 00:55:220229デフォルトの名無しさん
2010/02/03(水) 01:10:110230デフォルトの名無しさん
2010/02/03(水) 01:23:58と、マジレス
0231デフォルトの名無しさん
2010/02/04(木) 23:09:070232デフォルトの名無しさん
2010/02/05(金) 10:16:350233デフォルトの名無しさん
2010/02/09(火) 10:45:29IARとか、RVDSはもっと速いのかな?
0234デフォルトの名無しさん
2010/02/11(木) 15:55:300235デフォルトの名無しさん
2010/02/11(木) 15:57:470236デフォルトの名無しさん
2010/02/11(木) 19:55:210237デフォルトの名無しさん
2010/02/11(木) 20:15:07まあ今となっては良い思い出
0238デフォルトの名無しさん
2010/02/11(木) 21:40:15コンパイラとライブラリは切れば切れる関係。
例えば同じ Windows 上の gcc でも、Cygwin と MinGW で使える関数が
違うでしょ。
0239デフォルトの名無しさん
2010/02/11(木) 23:17:07こういうネーミングはやめてほしいんだが
このセンスはさすがに引く
古くなったらどうすんだよ
0240デフォルトの名無しさん
2010/02/12(金) 11:09:270241デフォルトの名無しさん
2010/02/12(金) 17:00:110242デフォルトの名無しさん
2010/02/16(火) 17:56:290243デフォルトの名無しさん
2010/02/17(水) 02:55:25STRing Ignore Compareってw
センスの悪い命名…
0244デフォルトの名無しさん
2010/02/17(水) 14:11:16case Insensitive の i だと思った
悪い命名なのは疑いようがないけど
0245デフォルトの名無しさん
2010/02/17(水) 23:46:25gccだけおせーんじゃ
なんとかしろ
0246デフォルトの名無しさん
2010/02/17(水) 23:53:270247デフォルトの名無しさん
2010/02/18(木) 00:29:39関数作るんじゃねーよ
0248デフォルトの名無しさん
2010/02/18(木) 03:13:31何のプラットフォームでどんなものを作ってるのか、大体予想つくな
0249デフォルトの名無しさん
2010/02/18(木) 21:20:29こういう発言ってついったの方が楽しいのにね
0250デフォルトの名無しさん
2010/02/19(金) 07:09:000251デフォルトの名無しさん
2010/02/19(金) 14:34:01笑うなよ
0252デフォルトの名無しさん
2010/02/19(金) 18:55:540253デフォルトの名無しさん
2010/02/20(土) 16:26:44ARM固有の最適化部分のメインコミッターのほとんどはARM社からお金もらっている人々だよ
最適化で、いつまでたってもARM純正に勝てないのはARM社がコントロールしてるから
ARMのプラットホーム使わないといけない人のほとんどは、gccの中身なんて弄ってる余裕が無いよ
ARMを使ったPCが普及すれば、変わると思うけど
0254デフォルトの名無しさん
2010/02/20(土) 22:12:55状況変わらず?
ARMの命令セットがやや特殊なせいなのかな
0255デフォルトの名無しさん
2010/02/20(土) 22:21:04自社のコンパイラより効率的なバイナリを
生成するコンパイラは、排除するって明言しているから
どうにもならないよ。
0256デフォルトの名無しさん
2010/02/24(水) 07:57:43なんでgcc3.4でSSE4.2に対応してねーんだよバカ
0257デフォルトの名無しさん
2010/02/24(水) 08:01:100258デフォルトの名無しさん
2010/02/24(水) 12:45:50gcc4使えばいいじゃん。
0259デフォルトの名無しさん
2010/02/25(木) 02:57:512.95.3
3.3.6
pc2:
4.3.4
4.4.3
二つずつ入れてて計4つ
>>256
使い分けりゃいいじゃん。
0260デフォルトの名無しさん
2010/02/27(土) 14:06:450261デフォルトの名無しさん
2010/02/27(土) 16:41:370262デフォルトの名無しさん
2010/03/03(水) 10:12:29printfの警告とか。
0263デフォルトの名無しさん
2010/03/03(水) 13:27:360264デフォルトの名無しさん
2010/03/10(水) 00:17:34char buf[256] = {0};って記述しても
0に初期化されることはない
腐ってやがる
0265デフォルトの名無しさん
2010/03/10(水) 00:31:09バージョンはいくつですか
0266デフォルトの名無しさん
2010/03/10(水) 03:05:210267デフォルトの名無しさん
2010/03/10(水) 04:30:310268デフォルトの名無しさん
2010/03/10(水) 18:19:47いつの時代のgcc?
0269デフォルトの名無しさん
2010/03/10(水) 18:20:46で、後ろの255バイトも自動的にゼロクリアされるのは
Cの仕様?それともgccのやさしさ?
0270デフォルトの名無しさん
2010/03/10(水) 19:20:51Cの仕様
0271デフォルトの名無しさん
2010/03/10(水) 22:41:05{1}のケースもどうなるか理解しといた方がいいよ。
> the remainder of the aggregate shall be initialized implicitly
> the same as objects that have static storage duration.
0272デフォルトの名無しさん
2010/03/14(日) 05:07:160273デフォルトの名無しさん
2010/03/14(日) 07:47:110274デフォルトの名無しさん
2010/03/14(日) 13:40:410275デフォルトの名無しさん
2010/03/14(日) 13:53:06callocなら0フィルされると思うけど
0276デフォルトの名無しさん
2010/03/14(日) 13:53:090277デフォルトの名無しさん
2010/03/14(日) 23:21:50は、何を使ってるのよ
0278デフォルトの名無しさん
2010/03/15(月) 00:00:29かな?
0279デフォルトの名無しさん
2010/03/15(月) 00:17:30自分で実装するとき、.init_arrのグローバルコンストラクタを呼び出す以外にやることありますかね?
あと、libc(newlib)の初期化とかもやらないといけなさそうですが、方法がわからない。
codesourceryでstl使ったプログラムかけた人いたら教えてください。
0280デフォルトの名無しさん
2010/03/15(月) 10:56:04無い。
セキュリティホールになるってんでゼロ梅してた時期もあったけど。
0281デフォルトの名無しさん
2010/03/15(月) 11:08:150282デフォルトの名無しさん
2010/03/15(月) 11:37:41それはない。
それはただのバグだ。
0283デフォルトの名無しさん
2010/03/16(火) 18:31:560284デフォルトの名無しさん
2010/03/16(火) 18:48:520285デフォルトの名無しさん
2010/03/16(火) 19:00:57上位権限のプロセスが開放したメモリにある情報を読めるかもしれないとい問題
0286デフォルトの名無しさん
2010/03/16(火) 19:01:250287デフォルトの名無しさん
2010/03/16(火) 19:06:260288デフォルトの名無しさん
2010/03/16(火) 19:09:27そりゃライブラリ側の仕事でなくOSの仕事だろう
0289デフォルトの名無しさん
2010/03/16(火) 19:14:240290デフォルトの名無しさん
2010/03/17(水) 00:23:13ってやるとgccだとmemset関数を呼び出す
糞実装になってるw
アホだろw
0291デフォルトの名無しさん
2010/03/17(水) 00:24:540292デフォルトの名無しさん
2010/03/17(水) 00:29:330293デフォルトの名無しさん
2010/03/17(水) 01:22:05gcc-4.3は呼び出さない
0294デフォルトの名無しさん
2010/03/17(水) 01:33:320295デフォルトの名無しさん
2010/03/17(水) 01:51:04どうしてほしいの?rep stosdにでもしてほしいとか?
0296デフォルトの名無しさん
2010/03/17(水) 03:38:41含まねーよ。物事を区別して考えられないバカっているんだねえ。
0297デフォルトの名無しさん
2010/03/17(水) 07:31:27いい悪いってか、用途によるでしょ。
バイナリはでかくなるよ
0298デフォルトの名無しさん
2010/03/17(水) 07:33:10>>297の答えに自信ない
0299デフォルトの名無しさん
2010/03/17(水) 14:11:140300デフォルトの名無しさん
2010/03/17(水) 15:57:20あるライブラリ関数について、
C標準では定義されてないことを、
OSの方で定義していることは良くあること。
たとえばスレッドセーフかどうか。
0301デフォルトの名無しさん
2010/03/18(木) 09:48:55>>285のは他プロセスないしカーネルにとっての関心事項。
別の話だね。
0302デフォルトの名無しさん
2010/03/18(木) 10:28:130303デフォルトの名無しさん
2010/03/19(金) 07:04:48OSじゃなく処理系だろ
0304デフォルトの名無しさん
2010/03/20(土) 09:55:190305デフォルトの名無しさん
2010/03/20(土) 10:10:300306デフォルトの名無しさん
2010/03/23(火) 22:46:45gccでも可能でしょうか?
Visual C++ では #pragma message("msg") などと書けばできたのですが。
0307デフォルトの名無しさん
2010/03/24(水) 00:12:02http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas
によると、
#pragma message "Compiling " __FILE__ "..."
とか出来るっぽいぜ
0308デフォルトの名無しさん
2010/03/24(水) 17:22:22今はだめだろ。CPUいっぱいあるから。
0309デフォルトの名無しさん
2010/03/24(水) 19:57:17数百クロックを要する。
だがそのような環境では逆に全コアでタイマカウンタが一貫してたりする。
0310306
2010/03/25(木) 21:44:47ありがとうございます。しかし試してみたところダメでした。
-Wunknown-pragmasでコンパイルしたら「無視しました」みたいなメッセージが出ました。
gccのバージョンによるんですかね。4.3.2でした。
0311デフォルトの名無しさん
2010/03/27(土) 00:23:57#warningで出来るかなと思ったら引数のマクロ展開はしないとか
ふざけた事を抜かしているのであまり使えないな。 この程度は
出来るけど。
#warning Message
$ gcc -c source.c
source.c:1:2: warning: #warning Message
waring:#warning が冗長で醜いなあw
0312デフォルトの名無しさん
2010/03/27(土) 09:37:530313デフォルトの名無しさん
2010/04/01(木) 23:33:33nocona?
core2?
0314デフォルトの名無しさん
2010/04/02(金) 07:35:10たしか〜
nehalem-exかNorthwood
0315デフォルトの名無しさん
2010/04/02(金) 10:42:05SSE2を使うだけで十分だと思う
0316デフォルトの名無しさん
2010/04/02(金) 21:31:490317デフォルトの名無しさん
2010/04/07(水) 10:20:400318デフォルトの名無しさん
2010/04/14(水) 15:49:00自動ベクトル化されるが、整数演算はベクトル化されない。整数移動はベクトル化
されるが、float用SSE命令が使われていた。GCCはMMXや3DNOWコードを吐かないの?
0319デフォルトの名無しさん
2010/04/14(水) 21:08:150320デフォルトの名無しさん
2010/04/14(水) 21:43:24飽和演算とか利用してこそだし
あまり自動最適化には向かないんじゃない
0321デフォルトの名無しさん
2010/04/15(木) 01:44:020322デフォルトの名無しさん
2010/04/15(木) 07:15:210323デフォルトの名無しさん
2010/04/15(木) 12:53:50単なるコピーならfloat32でも同じことだし。
0324デフォルトの名無しさん
2010/04/15(木) 22:23:12SSEで全部まかなえるわけだし
0325デフォルトの名無しさん
2010/04/15(木) 23:35:38普通のSSEには整数命令入っていないよ
-mmmxや-m3dnowでもMMXレジスタは使っていなかった。
0326デフォルトの名無しさん
2010/04/15(木) 23:52:090327デフォルトの名無しさん
2010/04/16(金) 00:02:000328デフォルトの名無しさん
2010/04/16(金) 20:29:370329デフォルトの名無しさん
2010/04/17(土) 19:38:110330デフォルトの名無しさん
2010/04/18(日) 01:19:500331デフォルトの名無しさん
2010/04/18(日) 02:33:27よる整数SIMDの需要が少なかったからか?さらに、GCC4登場初期はスマートフォンや
PDAにiwmmxtが搭載されていたが、そもそも当時はスマートフォンが普及しておらず
MMX系の需要は少なかったからか。で、今ではスマートフォンが普及しgccに
armの128bit自動ベクトル化が搭載されたが、既に時代遅れのiwmmxtは対象外
という事か。
0332デフォルトの名無しさん
2010/04/18(日) 14:05:300333デフォルトの名無しさん
2010/04/18(日) 14:06:59一生懸命対応するメリットが少ないんじゃないの
0334デフォルトの名無しさん
2010/04/19(月) 03:58:34あらゆるCPUに同じコアで対応しているから、乗算結果の上位の取り出しや飽和演算で
最適コードを吐かない、MMXのように切り替えが必要な処理は実装されないんじゃね?
>>333
iwmmxtならそもそもfpu搭載していないので切り替え不要だし、加減算やshort乗算には効果あるよ
0335デフォルトの名無しさん
2010/04/19(月) 17:17:45プロプライエタリの工作員が本気出し始めたのかな
0336デフォルトの名無しさん
2010/04/19(月) 17:19:450337デフォルトの名無しさん
2010/04/19(月) 21:03:17http://www.phoronix.com/scan.php?page=article&item=gcc_45_benchmarks
0338デフォルトの名無しさん
2010/04/21(水) 02:45:57a[2][8];}*aのようにして、a->a[i][j]でアクセスしないとアライメントデータとして扱われない。
ソース冒頭で構造体型定義を使っても可。もっと簡単にポインタがアライメントされて
いる事をgccに分からせる方法はないの?
また、func(struct{long __attribute__((aligned(16))) a[2][32];}*__restrict a,
struct{long __attribute__((aligned(16))) a[2][32];}*__restrict b, int *__restrict c){
int i;for (i=0;i<8;i++){a->a[0][*c*4+i]=b->a[0][i];a->a[1][*c*4+i]=b->a[1][i];} }
のように二次元配列を2つ受け取り、ポインタ渡しで指定されたオフセット分ずらして
転送する関数を書くと、versioning for alias requiredとなり非SIMDコードも生成
されるが、[*c*4+i]を[(*c+=0)*4+i]とすると非SIMDコードは生成されない。
>>335
OSSへの破壊工作ってあるの?
0339デフォルトの名無しさん
2010/04/21(水) 09:15:330340デフォルトの名無しさん
2010/04/21(水) 10:53:16マクロ使えよ
0341デフォルトの名無しさん
2010/04/21(水) 11:15:06のコードを g++ 4.3.2 で最適化なしコンパイルして実行したら,
--Start 1--
Destructor
Destructor
--End 1--
--Start 2--
Destructor
--End 2--
Destructor
という結果になった.
(Start 2 と End 2 の間にもう1つの"Destructor"があることを期待していた)
G++ だと,返されるオブジェクトが関数のローカル変数の場合は,
戻り値用の一時オブジェクトは作成されない仕様なの?
0342デフォルトの名無しさん
2010/04/21(水) 11:33:58Start 2 〜のように戻り値と同じ型のローカル変数を return した場合、
C++ の規格でコピーの省略が許されている。 (ISO C++ 12.8 p15)
これに対して Start 1 〜のほうで必要になる、既存の変数から関数引数への
コピーは省略できない。
コピーの省略が許されているだけなので、実際にコピーされるかどうかは
コンパイラやコンパイルオプションやコードの複雑さなどで変わる可能性がある。
0343デフォルトの名無しさん
2010/04/21(水) 11:38:09コピーの省略が認められているとは知りませんでした
大変勉強になりました
どうもありがとうございます
0344デフォルトの名無しさん
2010/04/21(水) 11:44:51http://en.wikipedia.org/wiki/Return_value_optimization
0345デフォルトの名無しさん
2010/04/21(水) 12:09:15g++ の場合、それで困るようなら -fno-elide-constructors を使うという手がある。
http://gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/C_002b_002b-Dialect-Options.html
0346デフォルトの名無しさん
2010/04/21(水) 15:53:02分かりにくいオプション名だなあ。
RVO(Return Value Optimization)を使うべきだよね。
0347デフォルトの名無しさん
2010/04/21(水) 16:03:12じゃあyea-があるのか?と思ったらないし
0349デフォルトの名無しさん
2010/04/21(水) 21:33:42http://www.phoronix.com/scan.php?page=article&item=gcc_llvm_clang
0350デフォルトの名無しさん
2010/04/26(月) 19:48:31反転するコードもSIMD化されない。a[i]やb[i]への書き込みが禁止されているのなら、
for (i=0;i<128;i++)c[i]=a[i]*b[i];for (i=0;i<64;i++){buf=c[i];c[i]=c[127-i];
c[127-i]=buf;}としなければならない。
0351デフォルトの名無しさん
2010/04/26(月) 20:02:490352デフォルトの名無しさん
2010/04/26(月) 20:10:51マジ?
swap処理なんて最悪に遅いのだけど。sizeof(* c)が判らないからなんとも言えないけれど、
a*bを別に保存しておいて転送した方が速い希ガス。
0353デフォルトの名無しさん
2010/04/26(月) 20:30:010354デフォルトの名無しさん
2010/04/29(木) 02:14:24どのようにすればよいのでしょうか?
0355デフォルトの名無しさん
2010/04/29(木) 02:24:370356デフォルトの名無しさん
2010/04/29(木) 05:05:380357デフォルトの名無しさん
2010/04/29(木) 05:20:550358デフォルトの名無しさん
2010/04/29(木) 13:00:520359デフォルトの名無しさん
2010/04/29(木) 16:38:25アホか
0360デフォルトの名無しさん
2010/04/29(木) 16:42:380361デフォルトの名無しさん
2010/04/29(木) 16:47:11でググれ
0362デフォルトの名無しさん
2010/04/29(木) 16:56:36x86用で個別にtuneしてもあんまりかわらんだろ
0363デフォルトの名無しさん
2010/04/29(木) 17:24:23自分で「やれ」
0364デフォルトの名無しさん
2010/04/29(木) 17:46:22必死で探せばな
0365デフォルトの名無しさん
2010/04/29(木) 17:54:580366デフォルトの名無しさん
2010/04/29(木) 18:19:12ある程度までならあるってことだ。
判別不能な分はunknownでいいだろ。
細かいところはあとでなんとかしろ。
0367デフォルトの名無しさん
2010/04/29(木) 20:44:540368デフォルトの名無しさん
2010/04/29(木) 21:35:410369デフォルトの名無しさん
2010/04/30(金) 00:09:29でも90MHz Pentium で受け入れられるのに 550MHz K6-3 で蹴られるのは悲しい。
0370デフォルトの名無しさん
2010/04/30(金) 11:32:430371デフォルトの名無しさん
2010/04/30(金) 11:51:080372デフォルトの名無しさん
2010/05/01(土) 05:50:200373デフォルトの名無しさん
2010/05/01(土) 07:21:14Intel みたいに gcc にコミットできないから、
最適化できないのだよ。
Windows 以外では、gcc を1割最適化できれば、
クロックを1割早くするのと同じなのにな。
0374デフォルトの名無しさん
2010/05/01(土) 11:57:230375デフォルトの名無しさん
2010/05/01(土) 18:24:01(Intelはフル機能と機能限定の組み合わせで省電力&面積削減の分キャッシュ増量可能に振ってる)
x86一般最適化がしてあればそれ以上は大して高速化しないと思われ
0376デフォルトの名無しさん
2010/05/01(土) 19:18:08印�р�1割早くなる気がする
0377デフォルトの名無しさん
2010/05/02(日) 12:40:22Intelへの最適化は結構進んでるよ。
もちろん icc ほどじゃないが。
0378デフォルトの名無しさん
2010/05/03(月) 02:52:03gccぐらい夢みさせてあげてえ
0379デフォルトの名無しさん
2010/05/03(月) 16:00:400380デフォルトの名無しさん
2010/05/03(月) 18:05:00もっさり、じゃないぶんましではないかと。
0381デフォルトの名無しさん
2010/05/04(火) 18:16:27__fastcall の指定で大量のワーニングが出たのでびっくりして調べてみたら
x64は基本レジスタ渡しで __fastcall とかは指定しても意味がないということを初めて知った
レジスタ渡しの方法がVC++と非互換らしいけどいつかどっちかに統一されるんだろうか
0382デフォルトの名無しさん
2010/05/04(火) 18:55:520383デフォルトの名無しさん
2010/05/04(火) 19:07:42デカくなるんですが、単純にアセンブルだけしてくれるようなパラメータが
あったら教えてください。スレちだったらスマン。。
0384デフォルトの名無しさん
2010/05/04(火) 19:34:18gccなんて意味があるのだろうか?
0385デフォルトの名無しさん
2010/05/04(火) 20:02:400386デフォルトの名無しさん
2010/05/04(火) 20:14:09非互換ってそれgcc for Linux/x86-64と VC++ for Windows x64それぞれのことを言ってたりしないか?
例えば↓こことか
http://homepage1.nifty.com/herumi/prog/x64.html
0387デフォルトの名無しさん
2010/05/04(火) 20:32:110388デフォルトの名無しさん
2010/05/04(火) 22:48:06ffmpeg
インラインアセンブラに対応できないと思う
gccに依存してるffmpegが糞とも言う
0389デフォルトの名無しさん
2010/05/08(土) 11:08:450390デフォルトの名無しさん
2010/05/08(土) 13:10:040391デフォルトの名無しさん
2010/05/09(日) 00:27:44そういえばリリース版に入れ直してなかった。
0392デフォルトの名無しさん
2010/05/10(月) 20:22:24どのようなワードで検索してよいのかわかりません。
具体的には、自作した仮想マシン向けのアセンブリ言語を吐かせたいとおもっております。
アセンブラとアセンブリ言語は適当にでっち上げた物がありますので、
ぜひGCCを利用してCやC++でプログラムを組めるように仕立て上げたいです。
0393デフォルトの名無しさん
2010/05/10(月) 20:27:51あとは時代遅れの Xbyak とか。
0394デフォルトの名無しさん
2010/05/10(月) 20:37:040395デフォルトの名無しさん
2010/05/10(月) 20:40:48調べるなら >>391 やLLVMとか。pccいじるのも楽でいいかもね。
0397デフォルトの名無しさん
2010/05/10(月) 20:42:40特定アセンブラを吐くドライバだけを作成できれば、
目的が達成できそうな感じでしょうか?
斜め読みしかしていないので、もっと深くよんでみます。
Xbyakは動的にx86のバイナリを吐くライブラリでしょうか?
ソースは見てないのでなんともいえませんが、x86バイナリ生成部を
オレオレバイナリに置き換えればよさそうですね。
いろいろありがとうございます。
0400デフォルトの名無しさん
2010/05/11(火) 01:00:09gccを改変する話に戻すと、検索ワードは「バックエンド」な
0401デフォルトの名無しさん
2010/05/11(火) 17:36:51http://gcc.gnu.org/onlinedocs/gccint/Back-End.html#Back-End
0402デフォルトの名無しさん
2010/05/14(金) 18:50:030403デフォルトの名無しさん
2010/05/14(金) 19:06:290404デフォルトの名無しさん
2010/05/15(土) 06:26:37とりあえず聞くだけ聞いて、それから誘導されるがよい
0405デフォルトの名無しさん
2010/05/16(日) 20:35:56exeファイルのバイナリーに含まれる文字が原因のようなのですが。
http://pc11.2ch.net/test/read.cgi/mysv/1245157265/770
0406デフォルトの名無しさん
2010/05/16(日) 20:38:590407デフォルトの名無しさん
2010/05/16(日) 20:42:18apachとのバイナリーレベルでの相性のようです。
0408デフォルトの名無しさん
2010/05/16(日) 21:14:230409デフォルトの名無しさん
2010/05/16(日) 21:52:11Windowsなら、"\n"と"\r\n"は、同じ"\r\n"を出力します。
0410デフォルトの名無しさん
2010/05/17(月) 20:19:00Windowsの場合"\n"だけでCRLF(復帰改行)が出力されるから"\r\n"を明示する意味はない
0411デフォルトの名無しさん
2010/05/17(月) 20:57:56どうも405の問題は、Windows上においても処理系によっては
¥nがLFであってCRLFで無いという問題の様に思える。
0412デフォルトの名無しさん
2010/05/18(火) 04:55:080413405
2010/05/18(火) 20:11:57http://pc11.2ch.net/test/read.cgi/mysv/1245157265/770-786
C言語でstdoutをbinモードにするには?
http://www.tohoho-web.com/lng/200003/00030242.htm
解決しました。
0414デフォルトの名無しさん
2010/05/18(火) 20:23:130415409
2010/05/22(土) 22:05:47違ってた、GCCの場合だけは "\n" なら、\n しか出力しないようなEXEを作る。
実験はWINのサクラエディタで実行してみた。
0416デフォルトの名無しさん
2010/05/23(日) 10:11:53The GNU project and the GCC developers are pleased to announce the release of GCC 4.3.5.
This release is a bug-fix release, containing fixes for regressions in GCC 4.3.4 relative to previous releases of GCC.
http://gcc.gnu.org/gcc-4.3/
0417デフォルトの名無しさん
2010/05/24(月) 18:06:000418デフォルトの名無しさん
2010/05/24(月) 18:49:240419デフォルトの名無しさん
2010/05/24(月) 18:58:160420デフォルトの名無しさん
2010/05/24(月) 19:22:270421デフォルトの名無しさん
2010/05/24(月) 20:27:020422デフォルトの名無しさん
2010/05/25(火) 10:41:11異論はまったく認めない。
0423デフォルトの名無しさん
2010/05/25(火) 12:28:09心配性だな、とっても大人数でいじらなければいけない案件なのか?
0424デフォルトの名無しさん
2010/05/25(火) 18:15:080425デフォルトの名無しさん
2010/05/25(火) 20:36:12かなり同意。 OllyDBG になれたら GDB なんて使う気にならん。
symdeb に疑問を感じなかった昔の自分が信じられん。
0426デフォルトの名無しさん
2010/05/26(水) 02:17:03そう後輩に言った10分後、おれは「すまんかった、ちょっとこれマジで教えてくれ…。」と言っていた。
0427デフォルトの名無しさん
2010/05/26(水) 06:57:24そんなこと思っていたらGDB/MIなんてないだろ。
0428デフォルトの名無しさん
2010/05/27(木) 19:14:57キャッシュサイズとかどこで取得するのかなー?
0429デフォルトの名無しさん
2010/05/28(金) 15:30:28ラムダ式つかいたいから開発保留してるんだけど。
0430デフォルトの名無しさん
2010/05/29(土) 01:30:350431デフォルトの名無しさん
2010/06/01(火) 00:42:37http://news.ycombinator.com/item?id=1392601
0432デフォルトの名無しさん
2010/06/01(火) 01:28:580433デフォルトの名無しさん
2010/06/01(火) 07:15:10> The goal is a better compiler for users, not a C++ code base for its own sake.
とか言ってるわりに、とりあえずどの機能が欲しくて使うことにしたのか、よくわからんな。
0434デフォルトの名無しさん
2010/06/01(火) 10:09:500435デフォルトの名無しさん
2010/06/01(火) 11:36:30継承や多態性も実現できるが・・・。
まあコード量がおおくなって手続きがうざくなるからな。
0436デフォルトの名無しさん
2010/06/01(火) 16:56:310437デフォルトの名無しさん
2010/06/01(火) 21:19:390438デフォルトの名無しさん
2010/06/01(火) 21:52:210439デフォルトの名無しさん
2010/06/02(水) 07:33:00クロスが基本となるだろう。
0440デフォルトの名無しさん
2010/06/02(水) 13:57:57昔はクロス環境作るの大変だったけど、今は普通だし、
開発環境そこらじゅうにあるし、問題にならないんじゃね
0441デフォルトの名無しさん
2010/06/02(水) 19:31:490442デフォルトの名無しさん
2010/06/02(水) 21:30:05ついでにどうでもいいことだがRMSがこの決定に同意しているのか気にならんでもない。
0443デフォルトの名無しさん
2010/06/03(木) 09:55:20ループに入れる事に成功したw 以下のコードをg++でコンパイルしてみてくれ。
g++ 4.0.1, g++ 4.1.2で再現された。 gccではすぐに止る。
struct {
int value;
union {
int value2;
struct {
int value3;
int value4;
} s;
} u;
} local = { value : 0,
u : s: { value3 : 3, value4: 4 }};
こういう無限エラーループに入る.
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
init.c:11: error: ‘<anonymous struct>::<anonymous union>’ has no non-static data member named ‘u’
0444デフォルトの名無しさん
2010/06/03(木) 10:19:07...
local = { value : 0, u : { s : { value3 : 3, value4 : 4 }}};
0445デフォルトの名無しさん
2010/06/04(金) 17:27:310446デフォルトの名無しさん
2010/06/04(金) 17:29:15∞ループに入る最小の構造を作るためにもうちょっと単純化してみたら面白いかもよ。
0447デフォルトの名無しさん
2010/06/04(金) 20:57:180448デフォルトの名無しさん
2010/06/08(火) 06:25:05http://sourceware.org/gdb/wiki/STLSupport
試したらこんな事が出来て涙が出た。
(gdb) list
7 map<char*, int> test;
8
9 test["hoge"] = 111;
10 test["mage"] = 222;
11 test["moge"] = 333;
12 }
(gdb) p test
$1 = std::map with 3 elements = {
[0x8049760 "hoge"] = 111,
[0x8049765 "mage"] = 222,
[0x804976a "moge"] = 333
}
0449デフォルトの名無しさん
2010/06/08(火) 06:33:01$2 = {_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<char* const, int> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<ch¥
ar* const, int> > >> = {<No data fields>}, <No data fields>},
_M_key_compare = {<std::binary_function<char*, char*, bool>> = {<No data fields>}, <No data fields>}, _M_header = {
_M_color = std::_S_red, _M_parent = 0x804b028, _M_left = 0x804b008, _M_right = 0x804b048}, _M_node_count = 3}}}
0450デフォルトの名無しさん
2010/06/29(火) 22:13:29gcc 4.5.0で-O2で最適化したら例外をキャッチできないケース見つけた。-O1だとOK。
再現できるか試して欲しい。
再現パターンはこんな感じ。
分岐の中にthrowがあって、最適化の結果throwにあたるコードが関数のエピローグコードの
後ろに移動してしまった場合にたまに発生。
bool flag = true;
void f()
{ if(flag) throw 1; }
int main()
{
try{ f(); }catch(...){ cout << "ok" << endl; }
}
0451デフォルトの名無しさん
2010/06/30(水) 08:36:050452デフォルトの名無しさん
2010/06/30(水) 10:26:360453デフォルトの名無しさん
2010/06/30(水) 10:40:310454デフォルトの名無しさん
2010/06/30(水) 11:36:410455デフォルトの名無しさん
2010/06/30(水) 16:40:24http://ftp.riken.go.jp/の.tbzと野良の両方で再現した。
ただ、OSXからのFreeBSDクロスコンパイル→転送して実行、ではAdaのほうでも再現したのに、
FreeBSD上のセルフコンパイルでは野良ではAdaでは再現しない(C++では再現、gcjはビルドできなかった……)と
結構ばらつく。よくわからん。
0456デフォルトの名無しさん
2010/07/02(金) 17:51:110457デフォルトの名無しさん
2010/07/21(水) 08:25:11cとc++は少々経験あります。
ロボットを動かすために、マイコンボードのレジスタに書き込むのですが、
サンプルにDDRx |= (1 << PC0)という部分があり、こちらはDDRx(8bit)の0000 0000に書き込むということだと思います。
0000 0001みたいな感じに
次のPORTx &= ~(1 << PC0)が良く分からないのですが、
こちらは初回は動作させないために0にして動かないようにしておくだと思うのですが、その場合
PORTx &= (0 << PC0)ではないのでしょうか?
~をつけてNOTにしてしまうと ↑の例だと1111 1110になってしまうと思います。
どうしてここはNOTになっているのでしょうか?
それとも初期値のレジスタは1111 1111(FullBit)と決まっているのでしょうか?
ちなみにPC0にはサーボモーターが接続されています。
0458デフォルトの名無しさん
2010/07/21(水) 08:52:480 はシフトしても 0 でしょう?
おかしいと思いませんか?
0459デフォルトの名無しさん
2010/07/21(水) 09:21:16んー…となると動きとしてはどうなってるんでしょう?
0000 0001に対して 左シフトで 0000 0010にして、それをPORTx 0000 0000だとした場合
1111 1101にするってことですよね
ん…違うのか、 PC0の場所が最初、 PC1が次だと仮定して
0000 0001を左シフト 0000 0010 PC1が0000 0010左シフトで 0000 0100
で、現在のPORTx が0000 0110になっているからこれをNOTしてあげれば
1111 1001で、使用するPC0とPC1は停止状態になりますよってことか
でもその場合残りの部分がビット立っている状態になってますが、問題ないのですか?
使わないのであれば全てビットをlowにしておかないと何かもやっとするのですが
0460デフォルトの名無しさん
2010/07/21(水) 09:27:03PORTxっていうのは、常時フルビット0xFFになっていて
例えばPORTAであれば、対応するのはPA0〜7になり
0xFFの0ビット=PA0, 1=PA1 ... 7=PA7って割り当てられている…?
シフトする理由が分からない…シフトする場合↑の通りであるのならば
PA7はオーバーフローして、消えてなくなってしまうし、循環シフトになっているのなら
シフトしてけばしていくほどおかしくなるような…
0461デフォルトの名無しさん
2010/07/21(水) 09:34:17それから、他人とのコミュニケーションにフルビットとか妙な用語は使わないように。
運転免許マニアの間では全ビットが立ってる、という意味で使われるようだけど。
0462デフォルトの名無しさん
2010/07/21(水) 09:47:44フルビットって使わないの?すまん、知らなかった
&=ってANDって意味じゃないの?
cで言えば、 a = a & b;といった形だと思ってたんだけど
PORTx = PORTx & ~(1 << PCx);
今回チルダが付いているから、NOTANDだと思うけど
基本情報とか、c勉強した時に例えば2の補数とか説明する・されるときに
フルビットって使ってたんで一般的だと思ってました。
0464デフォルトの名無しさん
2010/07/21(水) 10:01:53ここまで解ってて何故わからないのかがわからない
そのまま「PORTx の PCx ビット目を0にする(PCxビット目以外はそのまま)」って読めるだろ
うーん…
何となくこのやり取りをしている間に、考えてたら分かってきたような
気もするのだけれども、
NOTANDがかかるのはPORTx全体ではなくて、 & ~(1 << PCx)と書かれているPCxの場所
だけをNOTANDするってことで大丈夫? PORTxに対して行っているからPORTx全体にNOTANDがかかってると思ってた。
後は、シフトする部分がいまいち…
これは、0001を0010にするとかではなくて、ビットをずらすのではなく
0000を0001にしますよ、的な感じでいいです?(1を立てる
&~がかかる部分は、PCxの場所だけで
シフトするというのは倍々にしていくシフトと違い
1であれば、その場所に1ビットを立てるということで問題ないでしょうか?
ぐむむ、でもそれだとやっぱり(1 << PCx)の1が1を立てるであれば、
へし折るという意味で(0 << PCx)でもいけるような…orz
テンプレっていうか、こういうものだっていう意味で0を作るのならばチルダ(NOT)して
作れってことでしょうか?orz
0468デフォルトの名無しさん
2010/07/21(水) 10:43:57gccでのプログラミングでしたので、ここで質問したのですが、
c / c++の方でしたでしょうか?
それとも、また別な場所です?
0470デフォルトの名無しさん
2010/07/21(水) 10:48:338ビットで PORTx : 0x0f, PCx : 3 と仮定するね。
「(1 << PCx)」 ってのは (1 << 3)だから 00000100 になるよね?すると
「~(1 << PCx)」 は 11111011 と 3ビット目だけが0の値になる。
「PORTx & ~(1 << PCx)」 は 00001111 & 11111011 だから 00001011 でこれをPORTxに代入する。
PORTx の値は 00001111 だったものが 00001011 になってる。つまり3ビット目が0になった。
あとはPORTxやPCxの値をいろいろ変えながらノートに書いて考えてくれ…
# これでわからないなら適当な初心者スレでたのむ
0471デフォルトの名無しさん
2010/07/21(水) 10:48:510472470
2010/07/21(水) 10:51:390473デフォルトの名無しさん
2010/07/21(水) 10:52:25やっと理解した、ありがとう
シフト演算激しく勘違いしてたわ (1 << PCx)の1は1ビットずらすのではなく
1をPCx分ずらすでしたね。過去ログ見てると恥ずかしい
>>470見て、テストケースで100を2ビットシフトして400作って見てやっと分かった
NANDに関しても、0シフトすればいいんじゃね?って思ってたのが非常に恥ずかしい
0した後に残った結果は0じゃないか…0x0F & 0x00 = 0
もやもや解消されました。頑張る
id出てないから分からないけど答えてくれた人たちthx
>>473
ロボに罪ハナイ…
0475デフォルトの名無しさん
2010/07/21(水) 11:53:10がんがれ。ロボがコサックダンス踊れるようになるくらいまで。
0476デフォルトの名無しさん
2010/07/21(水) 18:42:36PS3やWii、Androidの開発もこのスレになるな
0477デフォルトの名無しさん
2010/07/21(水) 19:00:18ずれるかずれないかわかる。
0478デフォルトの名無しさん
2010/07/30(金) 21:54:57TOPPERSって言うフリーの組込みOSがあるのですけど、そのソースコードの一部に
こんなマクロが定義してあってチンプンカンプンです。
IA-32の命令に"s"とか"d"ってあったっけ?
#define OBJECT(x,y) __asm("d" #x "," #y "@");
#define MEMBER(x,y) __asm("s" #x "::" #y ",(%0),(%1)@" ::\
"i"(sizeof(((struct x *)0)->y)), "i"(&((struct x *)0)->y));
#define VAR(x) __asm("s" #x ",(%0),(0)@" :: "i"(sizeof(x)));
#define EVAR(x,y) __asm("s" #y ",(%0),(0)@" :: "i"(sizeof(x)));
#define SVAR(x) __asm("s" #x ",(%0),(0)@" :: "i"(sizeof(x[0])));
#define DEFS(x) __asm("s" #x ",(%0),(0)@" :: "i"((unsigned long)x));
0479デフォルトの名無しさん
2010/07/30(金) 22:17:38__asm の内側はアセンブラの世界。
gas の擬似命令を含むことも出来る。
C/C++ では隣接する文字列リテラルは連結される。
0480デフォルトの名無しさん
2010/07/30(金) 22:18:18ttp://www.ne.jp/asahi/hishidama/home/tech/c/preproc.html
この辺りの「文字列化」を参照してください。
gcc の -E オプションもマクロの理解を助けてくれると思う。
0481デフォルトの名無しさん
2010/07/30(金) 22:28:390482デフォルトの名無しさん
2010/07/30(金) 22:41:17あくまでも gcc 側の機能についての質問だからこっちでいいような気もする。
0483478
2010/07/30(金) 23:38:46文字の連結は理解しているつもりですが、IA-32の命令や疑似命令のようにも思えない。
と言う訳で手元のMacOSXでTOPPERSをコンパイルしてそのマクロを使うkernel_chk.cを
生成しようと思ったけど、LINUXではないのでやはりできず。
来週、会社へ行くまでkernel_chk.cを生成できそうにありません
>>481
TOPPERSの機能に関する質問ではないのでそれはできません
0484デフォルトの名無しさん
2010/07/30(金) 23:44:50インテルのCPUで組み込みってあまり聞かない気がします。
私も仕事でTOPPERSを触りましたけど、そのときはルネサスのSHでした。
コンパイルに使用したコンパイラは、もちろんSH用のgccです。
0485デフォルトの名無しさん
2010/07/30(金) 23:49:01単純にそのマクロ定義部と呼び出している箇所いくつかを拾い出して
それをcppかければ良いだけでは。
0486デフォルトの名無しさん
2010/07/30(金) 23:49:48評価版のVMwareを手元のMacにインスコしてLinuxインスコしろ。
0487478
2010/07/30(金) 23:50:04Linuxのシミュレーション環境に対応しています。
このパッチをあてて
http://www.northern-cross.info/download.html
$ perl ../jsp/configure -C linux
$ make depend
$ make
これで動かせます。
0489デフォルトの名無しさん
2010/07/30(金) 23:52:380490デフォルトの名無しさん
2010/07/31(土) 00:02:41いやLinuxでなくてもGCCは使える
っていうか、プリプロセッサの出力、というだけなら
機能を持たないC/C++コンパイラは皆無だろ。
cppを別途持っているかは別として
0491デフォルトの名無しさん
2010/07/31(土) 00:31:270492478
2010/07/31(土) 00:32:17というかTOPPERSで実際にどのようにマクロが使われているのを調べるにはGCCが使えるだけではダメなんです。
cfg,chkというTOPPERS独自のバイナリプログラムがアプリケーションの設定ファイル*.cfgを参照して
kernel_cfg.cとkernel_chk.cを生成するんです。
kernel_chk.cが実際の使用例になるのですが、これを生成するにはLINUXが必要なんです。
手元のMacOSX(FreeBSDベース)だと生成できなくて・・・
0493478
2010/07/31(土) 00:36:13みなさんお騒がせしました
0494デフォルトの名無しさん
2010/07/31(土) 00:39:45そういう状況では、さすがにスレ違いですね。
空きマシンにUbuntuなどをインストールして
Linux環境を構築する以外に、抜け道はないと思います。
0495デフォルトの名無しさん
2010/07/31(土) 01:32:24Macは知らんけど。
0496デフォルトの名無しさん
2010/07/31(土) 07:37:260497デフォルトの名無しさん
2010/07/31(土) 09:49:46TOPPERSのソースコードの質問をTOPPERSのメーリングリストでしてはいけない理由がわからん。
0498デフォルトの名無しさん
2010/07/31(土) 10:18:060499デフォルトの名無しさん
2010/07/31(土) 10:21:44>>479に書いてあるし、>>483を見る限り理解してるでしょ。
0500デフォルトの名無しさん
2010/07/31(土) 10:46:480501デフォルトの名無しさん
2010/07/31(土) 15:53:56やるにはどうしたらできますか?
0502デフォルトの名無しさん
2010/07/31(土) 16:03:570503デフォルトの名無しさん
2010/07/31(土) 16:08:570504デフォルトの名無しさん
2010/07/31(土) 18:00:12wstring s = L"あいうえお";
これで何か不満か?
0505デフォルトの名無しさん
2010/07/31(土) 18:52:41教えてください。
0506デフォルトの名無しさん
2010/07/31(土) 20:24:390507デフォルトの名無しさん
2010/08/01(日) 01:29:14gcc をビルドするときに iconv がリンクされていない場合には使えないけど。
あと、ライブラリ側も貧弱なことがある。
0508デフォルトの名無しさん
2010/08/01(日) 23:30:53できないというなら、やってみてどうなったのか言ってみろよ。
0509デフォルトの名無しさん
2010/08/02(月) 09:10:370510478
2010/08/02(月) 21:14:16>>478のマクロだけど__asmを使っているだけでアセンブラではなかった。
もちろんIA-32のオペコードでもなかった。
ただgccを利用した文字列処理をするために利用しているだけだった。
例えば、kernel_chk.cではこういう風に使われていて
void checker_function(void)
{
DEFS(TMAX_TPRI);
MEMBER(queue,next);
OBJECT(task_6,LOGTASK);
}
これらをコンパイルして.sファイルに変換すると
#APP
sTMAX_TPRI,($16),(0)@
squeue::next,($4),($0)@
dtask_6,LOGTASK@
#NO_APP
となるけど、もちろんこれをアセンブルすると当然エラーになる。
TOPPERSはこれをアセンブルしないで、jsp/utils/gencheckというツールにかけて
jsp.chkという静的APIファイル(カーネルの設定ファイル)の設定チェックファイルを生成する。
最終的にこういうテキストになる。
sTMAX_TPRI,16,0
squeue::next,4,0
dtask_6,LOGTASK
C言語の関数の中でこのマクロを使っているのは、Cとして定義された関数名、変数名、型名などを使えるからC言語にしているだけ。
まさか__asmにこういう使い方があるとは・・・
0511デフォルトの名無しさん
2010/08/04(水) 15:21:05何がしたいのかというと,コンパイル時に-Dオプションでパラメタを与えていて
パラメタを書き忘れた場合にずらずらと大量のエラーが表示されるのを防ぎたいのです.
#ifndef 〜
#error 〜〜〜 <-- ここに到達したら即座に停止する
#endif
0512デフォルトの名無しさん
2010/08/05(木) 01:25:320513501
2010/08/05(木) 12:46:21wstring=u"あいう"とやったらエラーになりました
uをLに変えてもエラーになりました。
const char*=u8"あいう"とやったらエラーにならないけれど
文字コードはSJISでした。
ユニコードにするにはどうしたらいいですか?
0514デフォルトの名無しさん
2010/08/05(木) 19:24:48Visual C++マジおすすめ
0515デフォルトの名無しさん
2010/08/07(土) 13:26:30strings<T>のTを変えるだけで出来るようにプログラムを作っておけばいいんですか?
それとも他に何か必要ですか?
0516デフォルトの名無しさん
2010/08/07(土) 16:05:100517デフォルトの名無しさん
2010/08/07(土) 16:08:220518デフォルトの名無しさん
2010/08/07(土) 18:27:200519デフォルトの名無しさん
2010/08/08(日) 00:22:290520デフォルトの名無しさん
2010/08/18(水) 02:39:23--input-charsetと--exec-charsetは指定している?
Cygwin 1.7で動いているよ。
0521デフォルトの名無しさん
2010/08/31(火) 00:45:42ぐぐったところgccのバグの可能性もありますが、プログラムやstlportの方が問題でどこを見ればよいか教えて頂けないでしょうか。
gcc:4.1.2
ld:2.17.50
ccache g++ -fcommon -fPIC -DLINUX -DCENTOS -DLYNX386
-D_MULTITHREADED -DLYNX386_V230_SOURCE -D_POSIX_SOURCE
-DECC_MC_IF_VME -DPOSIX1B_SOURCE -DPOSIX1C_SOURCE
-DLYNX386_V310A_SOURCE -D_XOPEN_SOURCE -D_SVID_SOURCE
-D_REENTRANT -D_GNU_SOURCE -D_BSD_SOURCE -o
../../../XMLPROG -g
-Wall -Wno-format -I. -I../.. -I- -I../../include
-I../../include/stlport -D_STLP_NO_STATIC_TEMPLATE_DATA
xml_prog.cpp -L../../../libfile -lmxmllib -lmxmlpath
-lmxmllib -lxslt -lxml2 -liconv -lstlport_gcc -lz -lm
cc1plus: note: obsolete option -I- used, please use
-iquote instead
`.gnu.linkonce.t._ZNK4_STL9money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERiRNS_12basic_stringIcS3_NS_9allocatorIcEEEE'
referenced in section `.rodata' of
../../../libfile/libstlport_gcc.a(monetary.o): defined in
discarded section
`.gnu.linkonce.t._ZNK4_STL9money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_bRNS_8ios_baseERiRNS_12basic_stringIcS3_NS_9allocatorIcEEEE'
of ../../../libfile/libstlport_gcc.a(monetary.o)
`.gnu.linkonce.t._ZNK4_STL9money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERiRNS_12basic_stringIwS3_NS_9allocatorIwEEEE'
referenced in section `.rodata' of
../../../libfile/libstlport_gcc.a(monetary.o): defined in
discarded section
`.gnu.linkonce.t._ZNK4_STL9money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_bRNS_8ios_baseERiRNS_12basic_stringIwS3_NS_9allocatorIwEEEE'
of ../../../libfile/libstlport_gcc.a(monetary.o)
0522521
2010/08/31(火) 21:34:15XML関係のプログラムをコンパイルするため、STLportのヘッダーファイルを変更したのですが、
その時STLport自体を再ビルドしていなかったのが原因でした。
0523デフォルトの名無しさん
2010/10/01(金) 20:53:32やりたいことはROM焼きの時とモニタ上で動かす時で各セクションのアドレスを変えたいのですが
リンカスクリプトをコピーして書き換えるのは嫌だなぁと・・・
0524デフォルトの名無しさん
2010/10/01(金) 21:14:470525デフォルトの名無しさん
2010/10/01(金) 22:30:48条件式とDEFINED組み込み関数があるじゃん。
0526デフォルトの名無しさん
2010/10/01(金) 23:53:46makeするときに、
ROM焼きとモニタの二つが出来るようにしておくとか
0527デフォルトの名無しさん
2010/10/02(土) 22:08:06>>524
単なるテキスト整形ツールとしてcppを使うわけですね
diffとpatchでとは思っていたんですがそれは思いつきませんでした
>>525
DEFINEDを見落としていました
まだ成功してませんがこれでいけそうな・・・感じ
>> 526
2つ用意するのが面倒という話でして
0528デフォルトの名無しさん
2010/10/02(土) 22:24:030529デフォルトの名無しさん
2010/10/03(日) 12:55:25以下の所とエラーの表示内容は同じで
ttp://mingw-w64.pastebin.com/N1ancXbR
Verify that you have permission to grant a GFDL license for all new text in tm.texi, then copy it to (中略) doc/tm.texi.
って最後に表示される
ヽ(`Д´)ノウワァァァン
0530デフォルトの名無しさん
2010/10/05(火) 14:55:59-Osの指定でいくつかの関数がインライン展開されてしまい、コードサイズがgcc3.4の時より
明らかに大きくなってしまいます。
で、gccのソースを見てみると以下のようなコードが・・・
プロセッサに関係なく、ほとんどの場合にインライン展開はコードサイズは大きくなると
思うのですが、なぜかこうなっています。
==================== gcc/opts.c ==========================
void
decode_options (unsigned int argc, const char **argv)
{
:略
if (optimize_size)
{
/* Inlining of functions reducing size is a good idea regardless of them
being declared inline. */
flag_inline_functions = 1;
:略
==========================================================
-fno-inline-functionsで問題は回避できるのですが、なぜ-Osで-finline-functionsを
許可しているのか腑に落ちません。
なぜこうなっているのかご存知の方、いらっしゃいませんでしょうか?
0531530
2010/10/05(火) 15:01:14インライン展開されている関数は(staticのついてない)globalな関数なので、インライン
展開されたコードだけでなく、独立したコードも生成されています。
また、クロスコンパイラだけでなくネイティブ(i686-pc-cygwin-gcc)でも同様の現象を
確認しています。
0532デフォルトの名無しさん
2010/10/05(火) 15:18:59実際のところは判りませんが、非常に小さな関数の場合はインライン展開した方がサイズが小さくなります。
例えば、x86で次のようなソースを-Osでコンパイルするとその下のリストのようになります。
--
static int func(int d) {return d * d;}
int ff(int d) {return func(d);}
--
_ff:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
popl %ebp
imull %eax, %eax
ret
--
因みに、staticを外したらこうなりました。
--
_func:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
popl %ebp
imull %eax, %eax
ret
--
_ff:
pushl %ebp
movl %esp, %ebp
popl %ebp
jmp _func
--
staticじゃない関数もインライン展開してしまうのは、確かにちょっと腑に落ちませんね。
0533530
2010/10/05(火) 16:18:19早速のレス、ありがとうございます。
-param max-inline-insns-auto (デフォルト値=90)を超えなければ、staticの無いそこそこ大きな関数でもインライン展開されるようです。
下記は、その例です。
ttp://219.94.194.39/up2/src/fu25205.zip
0534デフォルトの名無しさん
2010/10/05(火) 17:33:28必要に応じて制限すればよかろ。
それにしても、>532の最後のjmpは秀逸だな。
0535デフォルトの名無しさん
2010/10/05(火) 17:45:570536530
2010/10/05(火) 17:57:06>まぁあれだ、-Osはそこまで厳密に実装(カスタマイズ?)されていないに違いない。
そうなんですかねえ。
コメントに"good idea"とまで書かれているから単純なバグじゃないと思うんですけど・・・
-Osなんて組み込み以外では使わないだろうから、だれも気に留めてないのかなあ?
0537デフォルトの名無しさん
2010/10/05(火) 19:19:27誰がいつ改変したかはわかるでしょ。その情報を元にgccのmlのlogを漁ってみたら、何かわかるかもね
0538530
2010/10/05(火) 22:55:52ChangeLogでは見つけることができませんでしたが、コメントの
/* Inlining of functions reducing size is a good idea regardless of them
で検索して下記を見つけました。
ttp://gcc.gnu.org/ml/gcc/2005-07/msg00547/optimize_size
元々、max-inline-insns-autoでサイズが大きくならないようにしていたものを
+ if (optimize_size
+ && newsize > to->global.insns)
と、サイズを厳密に比較するようにこのパッチで変更したようです。
ところが、gcc4.4.3のソースにはこれに該当する部分が見つかりません。
どうも、インライン関係をipa_inline.cに分離したときのドサクサで、この
部分のコードが失われてしまっているようです。
0539デフォルトの名無しさん
2010/10/06(水) 09:58:000540デフォルトの名無しさん
2010/10/15(金) 01:50:36バカなの?技術力ないからなの?
0541デフォルトの名無しさん
2010/10/15(金) 01:51:590542デフォルトの名無しさん
2010/10/15(金) 07:55:150543デフォルトの名無しさん
2010/10/15(金) 08:19:41gmp
0544デフォルトの名無しさん
2010/10/15(金) 10:52:16OpenMP自体は実装してるでしょw
Clusterの方はIntelの(R)だし、
Intelのコンパイラで使えるから、
やる気のある人が出にくいんじゃないの?
一応TODOに入ってるみたいだけど。
0545デフォルトの名無しさん
2010/10/15(金) 11:57:380546デフォルトの名無しさん
2010/10/15(金) 23:30:480547デフォルトの名無しさん
2010/10/16(土) 01:21:00(´・ω・)やっとこ原因がわかったかも・・・orz・・・イマゴロカヨ
問題の部分は、下記の tmp-tm.texi から tm.texi を作成して、後にソース元にある tm.texi と cmp する所でした
改行コードが違う?為に error になっていたらしいです(゚∀゚)
修正して make ・・・今度は lto-plugin の所で sys/wait.h 無い言われて error ・・・アッヒャッヒャ!ヽ(゚∀゚)ノアッヒャッヒャ!
関係無い?けど target.def のディレクトリ先が間違ってるよね?
Makefile.in
----------
s-tm-texi: build/genhooks$(build_exeext) $(srcdir)/doc/tm.texi.in
$(RUN_GEN) build/genhooks$(build_exeext) \
$(srcdir)/doc/tm.texi.in > tmp-tm.texi
$(SHELL) $(srcdir)/../move-if-change tmp-tm.texi tm.texi
@if cmp -s $(srcdir)/doc/tm.texi tm.texi; then \
$(STAMP) $@; \
elif test $(srcdir)/doc/tm.texi -nt $(srcdir)/doc/tm.texi.in \
&& test $(srcdir)/doc/tm.texi -nt $(srcdir)/doc/target.def; then \
echo >&2 ; \
echo You should edit $(srcdir)/doc/tm.texi.in rather than $(srcdir)/doc/tm.texi . >&2 ; \
false; \
else \
echo >&2 ; \
echo Verify that you have permission to grant a GFDL license for all >&2 ; \
echo new text in tm.texi, then copy it to $(srcdir)/doc/tm.texi. >&2 ; \
false; \
fi
----------
0548デフォルトの名無しさん
2010/10/16(土) 03:30:060549デフォルトの名無しさん
2010/10/19(火) 05:09:23とりあえず disable-lto & CFLAGS へのオプション無し(-O2 とかやると error になった)で一応ビルドは出来た(gcc-4.6-20101016 rev.165566)
0550デフォルトの名無しさん
2010/10/20(水) 06:39:46sys/wait.hをコメントアウトして
WIFEXITED(status)
WEXITSTATUS(status)
をmingw用のを作れば、コンパイルは通りそうだけど
(´・ω・)にはわかんないかな?
0551デフォルトの名無しさん
2010/10/20(水) 09:39:330552デフォルトの名無しさん
2010/10/20(水) 19:46:23(´・ω・)レスありなと
取りあえず msys のを参考に wait.h を作成して対応しますた
一応 build は出来た・・・動作は未確認・・・
4.5.x は特に wait.h 対策しなくても build 出来たのに
4.6.x は開発途中だからなんかな(´・ω・`)
最近、Core2 & i の最適化パッチが投げ込まれて、今後も+(0゚・∀・) + ワクテカ +
0553デフォルトの名無しさん
2010/10/25(月) 23:09:39とりあえずおまえはコテつけろ、(´・ω・)をあぼーんすると他で支障が出るだろ
0554デフォルトの名無しさん
2010/10/27(水) 10:08:21貴様もコテつけろうぜえ
0556デフォルトの名無しさん
2010/10/27(水) 23:43:26スレの内容に関係ないから、ケンカするなら他所でやれ。
0557デフォルトの名無しさん
2010/10/28(木) 08:11:52スレの内容に関係ないレスすんな!どっか逝け基地害
0558デフォルトの名無しさん
2010/10/28(木) 09:29:54スレの内容に関係ないレスにレスすんな!どっか逝け基地害
0559(´・ω・) ◆e9bOsFqMug
2010/10/28(木) 14:33:010560デフォルトの名無しさん
2010/10/28(木) 14:36:430561(´・ω・) ◆DPjwQhNza.
2010/10/28(木) 15:03:330562デフォルトの名無しさん
2010/10/30(土) 04:42:030563デフォルトの名無しさん
2010/11/21(日) 17:37:27こちらへ誘導していただいたので来ました。
gcc(4.5.1)のc-parser.cだけを利用しようと思っています。
で、VC++でコンパイルしているんだけど、
gimple
という構造体の宣言、この構造体が未定義のようでエラーが出てます。
gccのフォルダ丸ごと検索してみたけど、自分の能力では見つからず。。。
例えば、
gimple stmt;
というステートメントでエラーが発生してます。
どうやりゃ解決できるんでしょうか?
おながいします。
やったこと:
VC++の新規プロジェクトに、パーサのコードおよび関連ヘッダを入れてコンパイル。
コンパイラにヘッダがないと言われれば、追加してあげる。
0564デフォルトの名無しさん
2010/11/21(日) 18:17:56gcc/vec.h
0565デフォルトの名無しさん
2010/11/21(日) 18:39:26が本体みたいだけど
0566デフォルトの名無しさん
2010/11/22(月) 06:21:22>>565
ありがと。何とかなりました。
現在、bitmap.hにて、同様に今度は
bitmapという構造体(識別子)がないとのたまわれてます。
確かにないし。
どうすればこのエラーを解決できるんですか?
0567デフォルトの名無しさん
2010/11/22(月) 10:16:22最終的にgcc全体を取り込む結果になったりして
0568デフォルトの名無しさん
2010/11/22(月) 13:02:35(w
いやさすがにそれはないなぁ
でも、やりたいことは、
Cからデータフローグラフを作る
なので、パーサをおさえた後が大変、
というのは自覚してまふ
#というかDFG生成のフリーウェアあったな
0569デフォルトの名無しさん
2010/11/22(月) 13:40:57>>566
GTY/gengtypeは理解したの?
gimple.hで出てきたでしょ。
doc/gty.texi, doc/gccint.texi読まないと、gccの改造なんて無理。
パーザ借りるだけだとしても。
>>568
それこそgimple使えば簡単なのに…
そのためにあるgimpleなんだけど…
0570デフォルトの名無しさん
2010/11/22(月) 14:28:210571デフォルトの名無しさん
2010/11/22(月) 17:06:35データフロー解析するんでしょ?
0572デフォルトの名無しさん
2010/11/22(月) 19:59:33おまいはとりあえず、gccをビルドしたときのログを全部残しておいて、
関連するファイルをコンパイルしている行をコピペして-Eオプション追加して
走らせてみろ。何がどうインクルードされてマクロ展開されるか全部出てくる。
0573デフォルトの名無しさん
2010/11/22(月) 20:21:10なんでgccでコンパイルせずにVC使うの?それだけでかなり難易度上がってるとおもうが。
失礼なこと言うようだが、あなたには難しすぎることにように見えます。
>>572
そんな面倒なことしなくても、-save-tempsオプションつけてビルドすればいいんでない?
0574デフォルトの名無しさん
2010/11/22(月) 21:26:55c-parser.cってだだの入り口でしょ
0575デフォルトの名無しさん
2010/11/27(土) 13:36:58VCみたいに直接バイナリ吐いて必要になったらときに逆汗した方が速くない?
0576デフォルトの名無しさん
2010/11/27(土) 13:40:02ニーモニックがUNIX形式。
ただし全てのコンパイラ@UNIXがこのスタイルなわけではありません。
ちなみに現代のコンパイラでアセンブラが消費する時間は些細なものです。
0577デフォルトの名無しさん
2010/11/27(土) 13:45:30実はマンパワーが相当有り余っててそんなの全然問題じゃないとか?
0578デフォルトの名無しさん
2010/11/27(土) 13:52:440579デフォルトの名無しさん
2010/11/27(土) 13:53:31VCが逆アセンブルするの? んな馬鹿な。
リスト出力オプションを指定したときにそんな胡乱なことをするとでも思っているのか?
0580デフォルトの名無しさん
2010/11/27(土) 13:53:53通常の環境ではbinutilsを使ってます。
0581デフォルトの名無しさん
2010/11/27(土) 18:13:450582デフォルトの名無しさん
2010/11/27(土) 18:56:26そのままアセンブラに丸投げしているわけじゃない。
0583デフォルトの名無しさん
2010/11/27(土) 20:02:36引数に関しては最適化してるけど
0584デフォルトの名無しさん
2010/11/27(土) 23:21:02ていうかとうとうbinutilsの置き換えにも走りだした。
スレチスマソ
0585デフォルトの名無しさん
2010/11/27(土) 23:36:380586デフォルトの名無しさん
2010/11/28(日) 03:48:09人間が計算機と比べてバカだからしょうがなく作ったものなのに
GCCとbinutilsのインターフェイスになってるとかどうも違和感ある
0587デフォルトの名無しさん
2010/11/28(日) 04:15:57gas経由でやってるから、inline asmが使いやすくなってる感じだけどね
0588デフォルトの名無しさん
2010/11/28(日) 08:51:44するよ。
0589デフォルトの名無しさん
2010/11/28(日) 08:57:13どんな書き方だとしますか?
0590デフォルトの名無しさん
2010/11/28(日) 08:58:210591デフォルトの名無しさん
2010/11/28(日) 23:16:45なくしてもいいことないしね。
0592デフォルトの名無しさん
2010/11/28(日) 23:18:17LLVMはそもそもVMの中間言語があるじゃない。
0593デフォルトの名無しさん
2010/12/09(木) 17:09:040594デフォルトの名無しさん
2010/12/09(木) 17:48:180595デフォルトの名無しさん
2010/12/12(日) 21:02:45#define HOGE 1
#define PIYO HOGE+1
こんな感じで値は展開されてない。これを
#define HOGE 1
#define PIYO 1+1
こんな感じに展開してくれるオプションってないん?
0596デフォルトの名無しさん
2010/12/12(日) 21:11:260597デフォルトの名無しさん
2010/12/12(日) 21:18:120598デフォルトの名無しさん
2010/12/12(日) 21:30:45あー、実際に使うときに展開するのか orz
>>597
ど、どうすれば
もしかして、gcc -E -dM で出てきた結果を実際に使ってもう一回プリプロセッサに通せばいいのか
#define HOGE 1
#define PIYO HOGE+1
HOGE;
PIYO;
↓ gcc -E
1;
1+1;
0599デフォルトの名無しさん
2010/12/12(日) 21:40:00展開された結果のソースを欲しがる理由が想像できない。
0600デフォルトの名無しさん
2010/12/12(日) 22:12:18質問者じゃないけど俺は長ったらしいマクロを書いてコンパイル通らないときに重宝してる
BOOST_PPとか-Eないとデバッグ不能だotx
0601デフォルトの名無しさん
2010/12/12(日) 22:14:36こんなID的なものの実際の数値を知りたいとき
#define MSG_ID_BASE 1000
#define MSG_ID_HOGE (MSG_ID_BASE+1)
#define MSG_ID_PIYO (MSG_ID_BASE+2)
>>598のやりかたで一手間かかるけどいけそうだ。おまいらサンクス
0602デフォルトの名無しさん
2010/12/12(日) 22:43:010603602
2010/12/12(日) 22:45:41なるほど、そうすると#warning辺りにprintf的出力でマクロ展開後の値を出力できる
機能があると便利になりそうですね。
0604デフォルトの名無しさん
2010/12/13(月) 22:14:13#define PRAGMA( x ) _Pragma( #x )
#define MESSAGE( x ) PRAGMA( message( x ) )
#define A 1
#define B (A + 1)
MESSAGE( B ) // (1 + 1) と展開
出て来るのは 2 でなく (1 + 1) だからいまいちかもしれんが
0605デフォルトの名無しさん
2010/12/14(火) 09:27:35利用できるのでしょうか?
ワンキーでステップ実行しながら、これに連動して対応するソースコードの(前後含めて)表示や、
複数の変数・構造体のメンバーの値を連動表示できるような機能のあるもの(必然的にGUI?)を希望。
0606デフォルトの名無しさん
2010/12/14(火) 10:37:53http://hibari.2ch.net/test/read.cgi/tech/1269400706/
0607デフォルトの名無しさん
2010/12/17(金) 17:34:440608デフォルトの名無しさん
2010/12/17(金) 23:04:49知らんかった。
今後よろ
0609デフォルトの名無しさん
2010/12/22(水) 13:34:24GJ
0610デフォルトの名無しさん
2010/12/30(木) 16:22:52x86 Open64 Compiler Suiteというコンパイラが使われていますがこれは何なの?
GCCとは別物?
0611デフォルトの名無しさん
2010/12/30(木) 16:24:13http://developer.amd.com/cpu/open64/pages/default.aspx
0612デフォルトの名無しさん
2011/01/01(土) 11:31:510613デフォルトの名無しさん
2011/01/01(土) 14:47:390614デフォルトの名無しさん
2011/01/03(月) 12:24:220615デフォルトの名無しさん
2011/01/08(土) 07:52:050616デフォルトの名無しさん
2011/01/08(土) 13:34:060617デフォルトの名無しさん
2011/01/09(日) 03:45:180618デフォルトの名無しさん
2011/01/09(日) 05:23:23ゲーツェーツェー
0619デフォルトの名無しさん
2011/01/09(日) 06:06:35と呼ぶ人がいました
実際C(C++)以外で使ってる人に出会ったことないけどさ
0620デフォルトの名無しさん
2011/01/09(日) 08:29:200621デフォルトの名無しさん
2011/01/09(日) 08:35:170622デフォルトの名無しさん
2011/01/09(日) 10:04:340623デフォルトの名無しさん
2011/01/09(日) 15:24:42違いがサッパリわからん
0624デフォルトの名無しさん
2011/01/11(火) 07:24:490625デフォルトの名無しさん
2011/01/12(水) 23:48:02遅レスだが、過去スレで同じ質問したことがある。
$ cat hoge.h
#define FOO 1
#define BAR FOO+1
$ cat hoge.c
#include "hoge.h" // その調べたいマクロが入ってるヘッダやコードをとにかくincludeするダミーコードを作る
int main(void) { return 0; }
$ gcc -g3 -fno-eliminate-unused-debug-types -fno-eliminate-unused-debug-symbols -o hoge hoge.c
$ gdb hoge // ダミーバイナリをロードしてgdbに値を出させる
(gdb) b main
(gdb) run
(gdb) p FOO
$1 = 1
(gdb) p BAR
$2 = 2
(gdb)
これでどうだろう?ただし大き目のプログラムはチョー巨大になる。
0626デフォルトの名無しさん
2011/01/13(木) 10:12:36その方法を手元にある以下の組み合わせで試したところ
p FOO が No symbol "FOO" in current context. となってしまいました。
gcc version 4.2.1 (Apple Inc. build 5664)
GNU gdb 6.3.50-20050815 (Apple version gdb-1510)
私がやり方を間違えているか、gccやgdbのバージョンに依存する方法だったりしますでしょうか?
0627デフォルトの名無しさん
2011/01/13(木) 10:50:43俺んち core2duo とかなんだけど。
0628デフォルトの名無しさん
2011/01/13(木) 10:55:33runして途中で止めた状態でそうなる?
未実行のロードしただけだとこっちでもそうなるけど、実行中の
コンテキストだとちゃんと見える。
0629デフォルトの名無しさん
2011/01/13(木) 23:26:25-march=core2とするより-march=i686とするほうが速かったりはするが
意味が無いわけではない
0630デフォルトの名無しさん
2011/01/14(金) 01:49:29あ どもです。
i686 で言いわけね。
最近の COREi7 とかもi686でいいのですか?
このオプションがわかるアプリつくりタイです。
$ chkmarch
core2duo:i686
$
みたいなのありますか?
0631デフォルトの名無しさん
2011/01/14(金) 01:56:420632デフォルトの名無しさん
2011/01/14(金) 02:27:10ぐぇ これでいんですか?
知りませんでした。orz
0633デフォルトの名無しさん
2011/01/17(月) 13:39:54するときに中で使ってるでしょ
0634デフォルトの名無しさん
2011/01/17(月) 13:57:270635デフォルトの名無しさん
2011/01/17(月) 14:13:050636デフォルトの名無しさん
2011/01/17(月) 14:22:35スレ違いだと思います。
0637デフォルトの名無しさん
2011/01/17(月) 17:24:000638デフォルトの名無しさん
2011/01/19(水) 21:25:560639デフォルトの名無しさん
2011/02/10(木) 12:10:040640デフォルトの名無しさん
2011/02/24(木) 22:19:58.35SandyBridgeのAVX拡張
パッチ対象のGCCが遅くなってる、、、
0641デフォルトの名無しさん
2011/02/24(木) 23:05:42.390642デフォルトの名無しさん
2011/02/25(金) 18:55:32.37GCCでは当分使わない方がいいってこと?
0643デフォルトの名無しさん
2011/03/01(火) 11:33:24.32規定の実引数拡張をK&Rスタイルにしたいので。
0644デフォルトの名無しさん
2011/03/01(火) 12:13:41.550645デフォルトの名無しさん
2011/03/01(火) 13:59:04.71無理。
>>643
最近はcppの標準化以前の機能くらいしか残ってないはず。
0646デフォルトの名無しさん
2011/03/03(木) 18:53:04.85GCCのx86-64の数学ライブラリ遅すぎ
x86-64ではSSE2で演算するするのとSSE2が超越関数などの命令を持ってないから
それらがライブラリ依存になるからかな
0647デフォルトの名無しさん
2011/03/07(月) 02:33:49.36最近Linuxでプログラム初めてg++でprintf("Hello World!");ってやってみたんですけど、表示されません
gdbで実行すると出るんだけど、そういうもんなんですか?
コンソールなんだからgdb使わなくてもHello World!って表示されてくれよと思うのですが
0648デフォルトの名無しさん
2011/03/07(月) 02:40:27.840649デフォルトの名無しさん
2011/03/07(月) 03:28:10.22試してみましたが、ダメでした。
0650デフォルトの名無しさん
2011/03/07(月) 03:31:11.80$ uname -rm
$ g++ --version | head -1
$ echo ${LD_LIBRARY_PATH}
0651デフォルトの名無しさん
2011/03/07(月) 03:38:17.16端末(tty)のバッファリングだっけ?
stty raw で、無効になったと思う
http://archive.linux.or.jp/JM/html/GNU_sh-utils/man1/stty.1.html
0652デフォルトの名無しさん
2011/03/07(月) 03:41:38.99main関数にコメントあるね。
0653デフォルトの名無しさん
2011/03/07(月) 03:51:56.67termios.hに、cから直接端末設定する関数もあるけど、めんどくさい。
0654デフォルトの名無しさん
2011/03/07(月) 04:22:30.152.6.18-194.32.1.el5 x86_64
g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)
出力なし
#include <iostream>
int main()
{
printf("Hello World!\n\n");
return 0;
}
g++ test.cpp -o test
0655デフォルトの名無しさん
2011/03/07(月) 04:27:37.68testにしているのが悪いんだよ
testはコマンドとして存在している
$ which test
0656デフォルトの名無しさん
2011/03/07(月) 04:32:59.830657デフォルトの名無しさん
2011/03/07(月) 05:32:06.740658デフォルトの名無しさん
2011/03/07(月) 05:53:17.850659デフォルトの名無しさん
2011/03/07(月) 08:04:58.49たとえばダウンロードしたアーカイブを展開した中のディレクトリで、意図しないコマンドを
実行させられるかもしれない。
0660デフォルトの名無しさん
2011/03/07(月) 13:27:00.65test.cpp:5: error: ‘printf’ was not declared in this scope
0661デフォルトの名無しさん
2011/03/07(月) 13:37:29.950662デフォルトの名無しさん
2011/03/07(月) 20:13:24.29だよなぁ。
msys 環境だとデフォルトで PATH の先頭にカレントディレクトリが付いててブチ切れそうになったわ
0663デフォルトの名無しさん
2011/03/07(月) 21:05:58.260664デフォルトの名無しさん
2011/03/07(月) 22:18:16.19駄目なんだけど対応するのめんどくさい
http://slashdot.jp/security/article.pl?sid=10/08/27/0822219
0665647
2011/03/08(火) 00:46:04.66$ hello
としてもダメでした。
$ ./hello
で、しっかりHello World!と出力されました。
結局、Linux的にはどのように実行するのが正しいんですか?
上記のようにドット付けて実行するのはダメなんですか
わざわざ絶対パスで実行するんですか?
0666デフォルトの名無しさん
2011/03/08(火) 00:47:00.27PATH環境変数に.を追加するなんてことはするべきでない。
0667デフォルトの名無しさん
2011/03/08(火) 00:55:58.56わかりました。ありがとうございました。
0668デフォルトの名無しさん
2011/03/08(火) 16:10:45.73ファイルであると認識させたいときはパスが必要。
よって、カレントディレクトリにあるもの実行したいときは
"Fuckin' Macin'" ではなく、 "./Fuckin' Macin'" でないとダメ。
融通が利かんアスペルガー相手にしてると思えばよい
0669デフォルトの名無しさん
2011/03/08(火) 16:13:21.780670デフォルトの名無しさん
2011/03/08(火) 16:16:43.33「カレントディレクトリにその名前の実行ファイルやフォルダがあるかないか先に探してから」
「なければ環境変数に記された場所の下」
って親切な設計だが、Linuxはそんな配慮なんかしない。
0671デフォルトの名無しさん
2011/03/08(火) 16:55:49.62最近もライブラリパスで問題になったばかり。
http://technet.microsoft.com/ja-jp/security/gg557854
http://blogs.technet.com/b/jpsecurity/archive/2011/01/20/3381400.aspx
safe search modeってw
今までのはunsafeだったわけで。
何でこんなバカな設計が出来るのか分かりません。
0672デフォルトの名無しさん
2011/03/08(火) 17:18:04.29シングルユーザー前提で基本設計がされちゃったものの違い、だろ単に。
それを「親切」とか言っちゃうのははっきり言ってどうかとだが。
0673デフォルトの名無しさん
2011/03/08(火) 17:25:48.860674デフォルトの名無しさん
2011/03/08(火) 19:14:00.350675デフォルトの名無しさん
2011/03/08(火) 19:17:12.66そんときの動作を引き継いでるんでしょ。
0676デフォルトの名無しさん
2011/03/08(火) 20:15:43.69評価すべきだと思う
0677デフォルトの名無しさん
2011/03/08(火) 20:32:00.37実行ファイルの区別がつけられなかったから、拡張子に.com付けてたろうが
0678デフォルトの名無しさん
2011/03/08(火) 20:58:54.060679デフォルトの名無しさん
2011/03/08(火) 21:00:44.91とりあえず動いてるがそれは表面的な所だけで
ファイル名にスペース含められなかったり
ロングファイルネームが使えなかったり
2GB以上のファイルにアクセスして壊したり
そのまま使ったら色々トラブルぞ
0680デフォルトの名無しさん
2011/03/08(火) 21:04:06.540681デフォルトの名無しさん
2011/03/09(水) 04:41:07.620682デフォルトの名無しさん
2011/03/09(水) 15:35:30.890683デフォルトの名無しさん
2011/03/09(水) 16:01:03.080684デフォルトの名無しさん
2011/03/10(木) 13:47:25.280685デフォルトの名無しさん
2011/03/10(木) 14:48:37.32Gentooならなんとかしてくれると思ったら、やっぱりなんとかしてくれていた
0686デフォルトの名無しさん
2011/03/10(木) 16:23:45.210687デフォルトの名無しさん
2011/03/10(木) 16:43:47.84ありがとう調べてくるよ
Gentooでもまだチルダ付きなんだよね
>>686
最初から入ってるディストリが知りたかっただけだから
0688デフォルトの名無しさん
2011/03/10(木) 17:09:23.330689デフォルトの名無しさん
2011/03/10(木) 17:25:20.310690デフォルトの名無しさん
2011/03/10(木) 17:41:13.294.4.Xと共存できるやつ選んだほうがいいよ。
その辺調べるより、/usr/localとか/optに自前で作る方が簡単だけどね。
0691デフォルトの名無しさん
2011/03/10(木) 17:41:56.75The following distributions include gcc version 4.5.2:
• AgiliaLinux: 8.0-beta2
• Arch Linux: current
• ArchBang Linux: 2011.02
• Ark Linux: dockyard
• AUSTRUMI: 2.3.0
• Debian GNU/Linux: unstable
• Frugalware Linux: current, 1.4
• Gentoo Linux: unstable, 11.0
• Linux From Scratch: unstable, 6.8
• Lunar Linux: moonbase
• Mageia: 1-alpha1
• Mandriva Linux: cooker
• PLD Linux Distribution: 3.0
• Slackware Linux: current
• Superb Mini Server: 1.5.6
• T2 SDE: snapshot
• VectorLinux: 7.0-beta1
• Zenwalk Linux: 7.0-rc3
安定版ならSlackwareとArchとFrugalwareか
0692デフォルトの名無しさん
2011/03/10(木) 17:43:08.57知りたいだけって言ってるんだから使うんじゃないんだろう
0693デフォルトの名無しさん
2011/03/13(日) 14:46:16.230694デフォルトの名無しさん
2011/03/13(日) 20:26:43.400695デフォルトの名無しさん
2011/03/19(土) 20:38:54.430696デフォルトの名無しさん
2011/03/20(日) 00:14:07.910697デフォルトの名無しさん
2011/03/20(日) 00:24:29.260698デフォルトの名無しさん
2011/03/20(日) 00:29:28.87とか公式に書いてあるから4.6が出たのかと思った
0699デフォルトの名無しさん
2011/03/20(日) 00:34:45.100700デフォルトの名無しさん
2011/03/20(日) 02:45:23.74g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)
g++でコンパイルしようとすると、socketとかbindとかの関数は通るんですけど、writeとかcloseがコンパイルエラーになります。
cppをcにしてgccでコンパイルすると通ります。
これはどういうことでしょうか。誰か教えてください。
まさかC++でソケット通信できないということじゃないですよね?
0701デフォルトの名無しさん
2011/03/20(日) 02:54:12.480702デフォルトの名無しさん
2011/03/20(日) 03:39:23.25#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
int main()
{
// コンパイルエラーを試すだけなので第一引数はテキトーな値で
write(0, "Hello World!", 12);
return 0;
}
$g++ test.cpp -o test
$gcc test.c -o test
0703デフォルトの名無しさん
2011/03/20(日) 05:28:45.77ヘッダからみてもこれは C のプログラム。
0704デフォルトの名無しさん
2011/03/20(日) 06:26:23.02そこはC風にやろうがC++風にやろうが関係ないんじゃないですか?
0705デフォルトの名無しさん
2011/03/20(日) 08:57:38.970706デフォルトの名無しさん
2011/03/20(日) 09:28:54.590707デフォルトの名無しさん
2011/03/20(日) 09:30:00.57(´・ω・)情報ありお
ppl-legacy こけるのか・・・
取りあえず parma(0.16.1) でも build(gcc-4.6-20110318) 出来るのは確認した
0708デフォルトの名無しさん
2011/03/20(日) 09:52:44.110709デフォルトの名無しさん
2011/03/20(日) 09:57:27.860710デフォルトの名無しさん
2011/03/20(日) 12:35:04.57しばらく?は isl にした方が良いのかなぁ
ろしあの人もそうしてるみたいだし
0711デフォルトの名無しさん
2011/03/20(日) 13:07:35.13ソケットでも send と recv だし。
0712デフォルトの名無しさん
2011/03/20(日) 14:29:21.08write()やclose()はunistd.hだったと思うんだ
man 2 write
man 2 close
0713デフォルトの名無しさん
2011/03/21(月) 04:07:56.20ありがとうございます。コンパイル通りました。
0714デフォルトの名無しさん
2011/03/22(火) 08:43:40.500715デフォルトの名無しさん
2011/03/26(土) 16:36:41.010716デフォルトの名無しさん
2011/03/28(月) 19:45:31.51http://sourceforge.jp/magazine/11/03/28/0518233
0717デフォルトの名無しさん
2011/03/29(火) 01:38:36.66なんでこんなに遅れるんだろう。
0718デフォルトの名無しさん
2011/03/29(火) 04:52:17.64そりゃ .5だからだろう。 五回もマイナーリリースをしたバージョンだから基盤のバージョンは古い。
6.0で4.4になるよ。
0719デフォルトの名無しさん
2011/03/29(火) 14:08:53.30とんとん
0720デフォルトの名無しさん
2011/03/29(火) 20:00:24.87gcc44 でもいれとけ
0721デフォルトの名無しさん
2011/03/30(水) 01:07:46.05いや いれればそれでいんだけど。
なんで古いままなのかなぁって。
0722デフォルトの名無しさん
2011/03/30(水) 01:20:59.53最適化の強化がすげーな。今までとかなり違った結果が出そうだ。
0723デフォルトの名無しさん
2011/03/30(水) 23:48:16.88> なんで
保守が原則の鳥だから。
遅れてるのではなくもともと新しいのは原則来ない。
Fedora->RHEL->CentOS
0724デフォルトの名無しさん
2011/03/31(木) 00:06:27.87枯れ を好むって事ね。
確かに C/C++ コンパイルするのには
全然困らないね。
0725デフォルトの名無しさん
2011/03/31(木) 00:09:47.47わからなくても使えれば構わないんだろうけど。
0726デフォルトの名無しさん
2011/03/31(木) 11:17:32.57gcc 3.4.5、MinGWを使ってコンパイルしています。
a.c/a.cpp
int __cdecl test(int);
int __stdcall test(int x) { return x };
b.c/b.cpp
int __stdcall test(int);
int __cdecl test(int x) { return x };
上記のようなプログラムを作ってコンパイルしたところ、
a.c b.cでは予期通り
error: conflicting types for 'test'
というエラーが出てくれますが、a.cpp b.cpp はコンパイルが通ります。
-Wallを入れても警告が出ず、mapファイルを見ると
両方とも __stdcall になっているようです。これは何故でしょうか?
また、これらで警告なりエラーなりを出させる方法はあるでしょうか?
0727デフォルトの名無しさん
2011/03/31(木) 16:24:52.180728デフォルトの名無しさん
2011/03/31(木) 16:28:30.68int __cdecl test(int x) { return x; }
int __stdcall test(int x) { return x * x; }
こんな事が出来るってこと?
試してないけど流石にコンパイルエラーじゃない?
0729デフォルトの名無しさん
2011/03/31(木) 16:38:01.090730デフォルトの名無しさん
2011/03/31(木) 16:39:40.69だっけをつけるんじゃあ
0731デフォルトの名無しさん
2011/03/31(木) 17:41:01.21config/**の#define TARGET_OS_CPP_BUILTINS()で
builtin_defineされている。__attribute__に。
gccとg++で挙動が違うってことはないはず。
そもそもミスマッチな属性だし。
0732デフォルトの名無しさん
2011/03/31(木) 17:48:50.19オーバーロードできるように引数のタイプを符号化して識別子に加えているとかなんとか
0733デフォルトの名無しさん
2011/03/31(木) 17:50:38.91cdecl, stdcall属性が付くと。
0734デフォルトの名無しさん
2011/03/31(木) 17:59:22.09linuxでも__attribte__((fastcall))とか使うだろ。
もっともattributeは関数の宣言部でしか使えず、
定義部で付与してもエラーになるはずだから726のような状況にはならないけど
0735デフォルトの名無しさん
2011/03/31(木) 18:54:10.860736デフォルトの名無しさん
2011/04/01(金) 10:15:09.430737デフォルトの名無しさん
2011/04/01(金) 10:19:56.38ダメだこれ
0738デフォルトの名無しさん
2011/04/04(月) 12:47:13.97/proc/statを文字列として読み込んで処理するしかないのでしょうか?
0739デフォルトの名無しさん
2011/04/04(月) 19:57:51.480740デフォルトの名無しさん
2011/04/04(月) 22:27:41.03/proc/stat読んでる間に書き換わったりしないのか?
0741デフォルトの名無しさん
2011/04/04(月) 22:55:08.620742デフォルトの名無しさん
2011/04/04(月) 22:56:42.070743デフォルトの名無しさん
2011/04/04(月) 23:08:55.720744デフォルトの名無しさん
2011/04/04(月) 23:10:38.36ユーザーランド側がどう処理してるかまではみてないけど,
kernel側はおおむねcopy_to_user()でbufferサイズ分一気にわたしてる
つか, デバドラ関係はドライバー依存だと思うが...
やたらサイズがでかくない限りは一気に呼んだ方が安全だと思うよ
0745デフォルトの名無しさん
2011/04/09(土) 00:29:33.45もう一回読んで diff 取ってるんじゃね?w
0746デフォルトの名無しさん
2011/04/10(日) 08:41:23.03diff とってる間に (略
0747デフォルトの名無しさん
2011/04/10(日) 13:51:06.920748デフォルトの名無しさん
2011/04/14(木) 20:52:24.21正解
0749デフォルトの名無しさん
2011/04/14(木) 21:37:40.860750デフォルトの名無しさん
2011/04/15(金) 16:11:14.360751デフォルトの名無しさん
2011/04/15(金) 16:45:14.87GCCの追加includeパスの指定の仕方はわかってるんだよな?
0752デフォルトの名無しさん
2011/04/15(金) 17:01:02.380753デフォルトの名無しさん
2011/04/15(金) 17:10:39.800754750
2011/04/15(金) 17:34:17.12MSVCやBCCは出来るんですが。設定ファイルがあります。
0755デフォルトの名無しさん
2011/04/15(金) 17:42:55.960756デフォルトの名無しさん
2011/04/15(金) 18:00:16.47ちなみにMSVCやBCCにも素のコンパイラ部分には追加パスの自動
解決機能はない。
IDEがコンパイル時やリンク時の追加パスを解決してくれてただけで
GCCにはIDEの機能はない。
自分でmakefileを編集する能力がなければ自動生成してくれるIDEを
使いなさい。
0757デフォルトの名無しさん
2011/04/15(金) 18:41:53.18IDEもプロジェクトの保存時にcfg吐いてくれるので、コマンドラインからも同じ設定でビルドできる
0758デフォルトの名無しさん
2011/04/15(金) 19:11:21.400759デフォルトの名無しさん
2011/04/15(金) 19:48:33.46IDE込みならBCB。
0760デフォルトの名無しさん
2011/04/15(金) 20:51:53.470761デフォルトの名無しさん
2011/04/15(金) 21:22:13.10無償配布しているからIDEつきとで別の名前になってるけど
VC++の場合は無償版でもIDEがついてるから特別な呼称はないはず。
Windows SDKに「Microsoft Visual C++ Compiler」という名前で付属してたり
「Microsoft Visual C++ Toolkit 2003」という名前で単体配布されてたりしたことはある
0762デフォルトの名無しさん
2011/04/15(金) 21:26:02.33IDEなしで。
0763デフォルトの名無しさん
2011/04/15(金) 23:42:20.63おまえ国語の成績悪かっただろ
0764デフォルトの名無しさん
2011/04/16(土) 00:24:19.78俺はVimだけど
0765デフォルトの名無しさん
2011/04/16(土) 00:26:33.610766デフォルトの名無しさん
2011/04/16(土) 06:14:00.54>>754
specsを書けばいい
http://up-cat.net/GCC%25A4%25CEspecs%25A4%25C8%25A4%25CF.html
http://www.mingw.org/node/25
0767デフォルトの名無しさん
2011/04/16(土) 07:33:50.940768デフォルトの名無しさん
2011/04/16(土) 07:54:48.67bccは設定ファイルに指定できるし
vcは環境変数に指定できる。
お前が無知なだけ。
0769デフォルトの名無しさん
2011/04/16(土) 16:29:55.430770デフォルトの名無しさん
2011/04/16(土) 16:33:24.26同じふうにできるようになってるんだよ
IDE使わないなら-Iでいいじゃん
0771デフォルトの名無しさん
2011/04/16(土) 17:08:09.85で「誰」がその設定ファイルや環境変数のセッティングをするの?
bccが設定ファイルに「書いてから、また、読む」とか?
vcが環境変数を「設定してから、また、読み取る」とか?
確かに「無知」は「お前だけ」だなwww
0772デフォルトの名無しさん
2011/04/16(土) 17:14:53.770773デフォルトの名無しさん
2011/04/16(土) 17:31:16.79インストーラやIDEに決まってるだろ
もちろんコマンドラインからしか使わないぜって人はそれらの機構は無視すればいい
0774デフォルトの名無しさん
2011/04/16(土) 17:35:53.53IDEしか使わない人はIDE上でしか設定しないし
コマンドラインを使ったことがない人は、
「誰が設定するの?」と書き込んで、心中では
「へへー、俺って鋭い指摘してるな、エヘン」と思っているのかもしれないね。
ていうか、gccのスレにIDEしか使わない人が来ているのが不思議。
使わない、じゃなくて使えない、なのかもしれないけど。
0775デフォルトの名無しさん
2011/04/16(土) 17:39:08.20で、何が無知で、無知がどうしたって?
>>756
>ちなみにMSVCやBCCにも素のコンパイラ部分には追加パスの自動
>解決機能はない。
0776デフォルトの名無しさん
2011/04/16(土) 18:05:30.370777デフォルトの名無しさん
2011/04/16(土) 19:23:22.56日本語が理解できないらしいな。
> 素のコンパイラ部分には追加パスの自動解決機能はない。
で、どこに「自動解決機能」があるってか?
0778デフォルトの名無しさん
2011/04/16(土) 22:21:41.93リンカスクリプトをいじってるとうまくいかなくてはまることが多いんだけど
エラーチェックが弱いんじゃないかと。
リンカスクリプトのチェックを強力にするオプションはないかね。
例えば、
SECTIONS
{
hoge :
{
aaaa.o(.hoge)
} > foo
}
aaaa.oに.hogeセクションが無い場合でもエラーにならないけど、エラーにして欲しい。
0779デフォルトの名無しさん
2011/04/16(土) 22:34:00.990780デフォルトの名無しさん
2011/04/16(土) 23:33:27.390781デフォルトの名無しさん
2011/04/17(日) 00:08:38.57リンカーの吐くマップファイルみりゃわかるでしょ
リンカーに頼るより、コンパイルする時に気をつければいいのでは
0782デフォルトの名無しさん
2011/04/17(日) 17:18:55.21-archオプション認識しない罠
複数ターゲットのクロスコンパイラとしてconfigureしないと
ユニバーサルバイナリ作れないのか・・・?
--targetに何か指定すればいいの? 教えてエライ人!
0783デフォルトの名無しさん
2011/04/17(日) 19:28:21.550784デフォルトの名無しさん
2011/04/17(日) 20:43:12.72面倒だから試してないけど、こんなんでどうか?
hoge :
{
__before_hoge__ = .;
aaaa.o(.hoge)
__after_hoge__ = .;
} > foo
ASSERT(__after_hoge__ - __before_hoge__, ".hoge not found in aaaa.o");
コンパイルするときに気をつけろってのは愚の骨頂
0785デフォルトの名無しさん
2011/04/17(日) 21:35:56.270786デフォルトの名無しさん
2011/04/18(月) 03:20:21.84それヒントにググってたら
MacPortsでもインスコできるようなのでそれでやってみたけど
+universalつけても無理だた・・・
man gccをよく読んでみたら、
「FSF GCCはfatオブジェクトファイルを作らない、つまり、単一アーキテクチャに対するオブジェクトファイルを作る
AppleのGCCは-archオプションが複数指定されたらfatファイルを作る」
と書かれていたので、Apple自体が提供するGCCじゃないと-archはないのね
-m32でi386、-m64でx86_64でコンパイルする事自体はできるので
別々にビルドしてlipoで繋げないといけないのか・・・めどい
0787デフォルトの名無しさん
2011/04/18(月) 05:36:51.38それ見て該当する変更を自分で加えればいいんじゃないか。
0788デフォルトの名無しさん
2011/04/18(月) 07:17:47.37そう単純な変更じゃなさそうなのでもういいよ
Makefileいじって両方出力する方が早そうだ
0789デフォルトの名無しさん
2011/04/18(月) 08:14:48.650790デフォルトの名無しさん
2011/04/18(月) 08:25:07.33Appleだけじゃなく*BSD系全部
0791デフォルトの名無しさん
2011/04/18(月) 09:01:26.940792デフォルトの名無しさん
2011/04/18(月) 09:56:39.170793デフォルトの名無しさん
2011/04/18(月) 11:06:58.14>>788
そだね。
0794デフォルトの名無しさん
2011/04/18(月) 19:21:49.18lipoつーのもコマンドラインから使えたりしない?
だったら完全自動化もできそう
0795デフォルトの名無しさん
2011/04/18(月) 20:07:14.70-march= 所与の CPU 用のコードを生成する
0796デフォルトの名無しさん
2011/04/18(月) 22:16:31.64サンキュー
なるほど参考になります。
一旦完成したldスクリプト/makefileを間違って編集しないためには最適だね。
でもゴリゴリ編集してる間は手抜きしてASSERTせずにはまりそう。
-Wみたいに強制的にチェックするウマい話はないみたいっすね…
0797デフォルトの名無しさん
2011/04/18(月) 22:34:09.490798デフォルトの名無しさん
2011/04/19(火) 00:56:32.340799デフォルトの名無しさん
2011/04/19(火) 01:02:04.570800デフォルトの名無しさん
2011/04/19(火) 01:20:45.090801デフォルトの名無しさん
2011/04/19(火) 01:25:06.15mesaの人もassertが好きみたいだけど...
0802デフォルトの名無しさん
2011/04/19(火) 01:27:46.630803デフォルトの名無しさん
2011/04/19(火) 01:30:26.48-m32 -march=i386
-m64 -march=x86_64
てな感じかな
MacPortsにおまかせしたのに
ppcが使えないのは時代か
別に要らないけど
0804デフォルトの名無しさん
2011/04/19(火) 01:32:13.63クロスビルド出来る環境を用意しないと
0805デフォルトの名無しさん
2011/04/19(火) 02:56:10.29ご名答!
0806デフォルトの名無しさん
2011/04/19(火) 10:44:34.540807デフォルトの名無しさん
2011/04/19(火) 18:51:53.600808デフォルトの名無しさん
2011/04/19(火) 20:08:37.290809デフォルトの名無しさん
2011/04/19(火) 21:08:04.36妄想力なら負けないよ
0810デフォルトの名無しさん
2011/04/27(水) 11:59:03.90SDRAMがちゃんと動かなくって、仕方なく内蔵RAMに配置するとか
CSの配線が間違ってて、違う領域にマップされてたとか
まあ、PCしか触らなきゃLDなんて無縁だろうな
0811デフォルトの名無しさん
2011/04/27(水) 15:01:18.230812デフォルトの名無しさん
2011/04/27(水) 15:37:38.95>>778は別の理由じゃないか?
0813デフォルトの名無しさん
2011/04/27(水) 17:19:40.46そんなんじゃタダのコーダになっちまうぞ
0814デフォルトの名無しさん
2011/04/28(木) 01:23:55.640815デフォルトの名無しさん
2011/04/28(木) 07:18:34.46例えばhogeセクションの綴りを間違えてるケースも考えられる。
fooがもっと複雑で、aaaa.o以外のモジュールも含まれてて、
そのモジュールの間とかでカレントアドレス(".")を使ってラベル定義してたりすると
ラベルのアドレスが意図と違うから、全然関係ない箇所でリンクエラー出したりする。
根本原因でエラーを表示して欲しいというのは当然のこと
0816デフォルトの名無しさん
2011/04/28(木) 13:31:52.76またその方がいいだろうしね。
0817デフォルトの名無しさん
2011/05/02(月) 10:14:07.66うまく公開できずに困っています。
以下のようなオプションを付ければいいと分かったのですが、
-Wl,--version-script,libfoo.map
実際に実行すると以下のようなエラーが出てしまいます。
/usr/bin/ld:libfoo.map:3: syntax error in VERSION script
libfoo.mapは以下の通りです。
{
global: foofunc;
local: *;
};
libfoo.mapをどのように修正したらよいのでしょうか?
0818デフォルトの名無しさん
2011/05/02(月) 10:24:44.03自己解決しました。
実際のlibfoo.mapは以下の通りでした。
{
global: foofunc0;
global: foofunc1;
global: foofunc2;
local: *;
};
以下のように修正したところ問題なく動作するようになりました。
{
global: foofunc0;
foofunc1;
foofunc2;
local: *;
};
お騒がせいたしました。
0819デフォルトの名無しさん
2011/05/05(木) 04:07:02.67猫でもわかるの最初のサンプルを文字コードをutf8 の ファイル名 foo.cpp で保存して
gcc-3 -mwindows -foo.cpp
してできたファイルを実行させるとタイトルが文字化けするんですが
ファイルの文字コードを sjis にすると文字化けせずに表示できました。
日本語以外の文字も使いたいので utf8 のまま、
出力を文字化けさせずにするにはどうすれば良いですか?
0820デフォルトの名無しさん
2011/05/05(木) 06:32:47.970821デフォルトの名無しさん
2011/05/05(木) 07:11:27.130822デフォルトの名無しさん
2011/05/05(木) 08:50:46.500823819
2011/05/05(木) 09:42:56.74http://homepage2.nifty.com/c_lang/sdk/sdk_00.htm
のウィンドウを表示するサンプルです。
このアドレスを >>819 の3行目に入れてたつもりでした…。
0824デフォルトの名無しさん
2011/05/05(木) 11:42:01.040825デフォルトの名無しさん
2011/05/05(木) 21:17:39.80NKFをインストールして foo | nkf -w とするのが簡単かと。
0826デフォルトの名無しさん
2011/05/06(金) 00:31:57.01>>823
こっちに移動しなさい
Cygwin + MinGW + GCC 相談室 Part 6
http://hibari.2ch.net/test/read.cgi/tech/1304609116/
Win32APIスレが一番適してると思うが見てみたらなんか荒れてんな
0827819
2011/05/06(金) 05:25:56.04libiconv がないからできないということでしょうか?
>>825
どのnkf使えばよいかわからなかったので
http://www.vector.co.jp/soft/win95/util/se295331.html から落としてきた
nkf.exe を使って試しましたが文字化けしたままでした。
>>826
ただ無知なだけです。
移動します。
0828デフォルトの名無しさん
2011/05/06(金) 15:14:39.450829デフォルトの名無しさん
2011/05/11(水) 17:30:40.70そのようなコマンドはありますでしょうか?
0830デフォルトの名無しさん
2011/05/11(水) 17:33:34.000831デフォルトの名無しさん
2011/05/11(水) 17:50:58.730832デフォルトの名無しさん
2011/05/11(水) 18:46:20.110833デフォルトの名無しさん
2011/05/18(水) 15:52:10.01-flto 使ってリンクするとき
collect2: 'ld' が見つかりません
といわれて失敗するようになった。
-flto 使わなければ普通にリンクできるし、
システムの binutils を使ってるときも大丈夫だったのに……
わけわからん
0834デフォルトの名無しさん
2011/05/18(水) 19:57:43.320835デフォルトの名無しさん
2011/05/19(木) 04:28:48.32上手く出来ずに丸一日潰してしまいました・・・
0836デフォルトの名無しさん
2011/05/19(木) 04:33:15.240837デフォルトの名無しさん
2011/05/19(木) 06:36:44.41ttp://www29.atwiki.jp/akcnv/pages/28.html
ttp://d.hatena.ne.jp/syohex/20110122/1295678868
このあたりを参考にして色々やってみてそれらしきものはできたのですが、
home/myname/usr/g++ test.cpp などとやってもコンパイルできません
現状のバージョンからビルドしたバージョンに置き換えるにはどうしたらいいでしょう・・・
0838デフォルトの名無しさん
2011/05/19(木) 08:04:03.04OSは?GCCのVerは?x86_64?
0839デフォルトの名無しさん
2011/05/19(木) 08:11:48.480840デフォルトの名無しさん
2011/05/19(木) 08:16:02.4532bitで64bitの環境を作るのは苦行かも
0841デフォルトの名無しさん
2011/05/19(木) 09:42:56.86> home/myname/usr/g++ test.cpp などとやってもコンパイルできません
どう失敗するのか書けよw
./configure --prefix=/home/myname/g++ とか
./configure --prefix=/usr/local/g++ とか
./configure --prefix=/opt/g++ とかすれば、普通にインストール出来るだろ。
> 現状のバージョンからビルドしたバージョンに置き換えるにはどうしたらいいでしょう・・・
置き換えはやらないほうがいいね。
併存させた方がいい。置き換える程の知識はないでしょ。
自前の使いたければ、
PATH=/home/myname/g++:$PATH
すればいいだけだし。
0842デフォルトの名無しさん
2011/05/19(木) 09:57:48.66そういえば書いてませんでした情報の小出し済みません;;
>error trying to exec 'cc1plus': execvp: No such file or directory error:
的なエラー文でした
再ビルドが終わったら指摘していただいた方法を試してみます
EeePCとはいえビルドに6時間とか
0843デフォルトの名無しさん
2011/05/19(木) 10:10:49.94gccをコンパイル時に想定されたところと違うところに置くとそうなる。
--prefixで指定した場所にインストールできてるの?
0844デフォルトの名無しさん
2011/05/19(木) 10:11:41.10< PATH=/home/myname/g++/bin:$PATH
0845デフォルトの名無しさん
2011/05/19(木) 10:26:23.24そういう時はgccをモゴモゴするしか
0846デフォルトの名無しさん
2011/05/19(木) 11:13:35.740847デフォルトの名無しさん
2011/05/19(木) 11:15:09.300848デフォルトの名無しさん
2011/05/19(木) 13:39:51.160849デフォルトの名無しさん
2011/05/19(木) 14:46:37.83> フルパスで起動すると失敗する。(PATHが通ってればうまくいくかも)
関係ない。cc1plusはもともと$PATHとは無縁なところにある。
0850デフォルトの名無しさん
2011/05/19(木) 20:46:16.950851デフォルトの名無しさん
2011/05/19(木) 23:56:26.880852デフォルトの名無しさん
2011/05/20(金) 14:50:13.48調べてみた。自前の collect2 に -plugin オプションを指定すると
ld を見つけられなくなるらしい…どうしてだろう
○自前の collect2
[name@localhost toys]$ /home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/collect2 \
-plugin \
/home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/liblto_plugin.so
collect2: 'ld' が見つかりません
○システムの collect2
[name@localhost toys]$ /usr/libexec/gcc/x86_64-redhat-linux/4.1.2/collect2 \
-plugin \
/home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/liblto_plugin.so
/home/name/usr/gcc/bin/ld: no input files
collect2: ld はステータス 1 で終了しました
0853デフォルトの名無しさん
2011/05/20(金) 16:36:56.30/home/name/usr/gcc/binをPATHにくわえても駄目なの?
0854デフォルトの名無しさん
2011/05/20(金) 19:23:33.320855デフォルトの名無しさん
2011/05/20(金) 19:38:05.240856デフォルトの名無しさん
2011/05/20(金) 21:55:02.78strace で見てみたら、
自前の collect2 は ld ではなく ld-new という名前を検索してた。
ln -s ld ld-new
でうまくいくようになった。(何故 ld-new なのかはわからないけど)
みんなありがとう。
0857デフォルトの名無しさん
2011/05/21(土) 03:01:33.480858デフォルトの名無しさん
2011/05/21(土) 03:12:18.910859856
2011/05/22(日) 17:31:59.67gcc a.c -> 自前の ld を呼ぶ
gcc a.c -flto -> 自前の ld-new を呼ぶ (ld-new は存在しない)
という状況だった。だから自前の ld のそばに ld-new を作ってみたらうまくいった。
lto のプラグイン自体は存在するし呼び出されている。
0860デフォルトの名無しさん
2011/05/22(日) 17:33:19.84晒してよ
0861デフォルトの名無しさん
2011/05/22(日) 18:41:11.39組み込み spec を使用しています。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
ターゲット: x86_64-unknown-linux-gnu
configure 設定: /home/name/usr/src/gcc/gcc-4.6.0/configure --prefix=/home/name/usr/gcc --enable-languages=c,c++,fortran --disable-multilib --enable-lto
スレッドモデル: posix
gcc バージョン 4.6.0 (GCC)
configure する前に gmp/ mpc/ mpfr/ と
binutils-2.21/ から bfd/ binutils/ etc/ gas/ gold/ gprof/ ld/ opcodes/ を
gcc-4.6.0/ の下にリンクしてある。
0862デフォルトの名無しさん
2011/05/22(日) 18:45:45.270863デフォルトの名無しさん
2011/05/22(日) 18:58:57.63buildに失敗してるんだろうね。
0864デフォルトの名無しさん
2011/05/22(日) 19:00:17.940865デフォルトの名無しさん
2011/05/22(日) 19:12:01.57おかしい? http://gcc.gnu.org/install/download.html に従ってやってるつもりなんだけど
>>863,864
ルートディレクトリの下を全検索したら、
(↓/home/name/usr/src/gcc/build はビルド用のディレクトリ)
/home/name/usr/src/gcc/build/ld/ld-new
/home/name/usr/src/gcc/build/stage1-ld/ld-new
/home/name/usr/src/gcc/build/prev-ld/ld-new
が確かに見つかった。
0866デフォルトの名無しさん
2011/05/22(日) 19:28:00.54make install
やってないの?
0867デフォルトの名無しさん
2011/05/22(日) 19:36:36.27そりゃあ、binutils のディレクトリで make してるわけじゃないし。
ただソースにリンク張って、gcc のトップディレクトリで make && make install しただけ。
不味いの?
0868デフォルトの名無しさん
2011/05/22(日) 19:43:55.17×gcc のトップディレクトリで
×gcc のトップディレクトリを別のディレクトリで configure して
あとビルドの残骸で残ってた ld-new と、インストールされた ld のハッシュ値は同じだった。
0869デフォルトの名無しさん
2011/05/22(日) 19:44:14.00binutilsとgccを別々にビルドして
--prefixを合わせて
make install
を個別にやれば、はまらないような?
0870デフォルトの名無しさん
2011/05/22(日) 19:46:07.24bootstrapの時に新しい奴を確実に使うためのファイル名。
bootstrap終わったら消される。
>>867
指示通りに出来てなかったんだろうね。
0871デフォルトの名無しさん
2011/05/22(日) 20:19:46.19特に問題なく動いてるし、もういじるの面倒だ。
次のリリースが出たら、今度は別々にビルドしてみるよ。
0872デフォルトの名無しさん
2011/05/22(日) 20:25:43.210873デフォルトの名無しさん
2011/05/22(日) 20:27:40.400874デフォルトの名無しさん
2011/05/22(日) 20:40:28.230875デフォルトの名無しさん
2011/05/22(日) 20:47:05.32んなけったいな入れ方しつつ、LTO使う人がいないせいで表面化しなかっただけかもしれない
0876デフォルトの名無しさん
2011/05/22(日) 20:57:37.12c++0x の name mangling を解読できる c++filt が欲しかったんだよ。
後はおまけ。
で、name mangling なんてコンパイラ固有なんだから
c++filt が gcc と関係ない binutils に入ってて大丈夫なのか?と想像をしていたら、
>>865 に「一緒にビルドできるよ」と書いてあった。
だからその通りやったわけよ。
0877デフォルトの名無しさん
2011/06/17(金) 21:06:25.37linuxで、c言語です
0878デフォルトの名無しさん
2011/06/17(金) 21:08:18.710879デフォルトの名無しさん
2011/06/17(金) 21:11:38.870880デフォルトの名無しさん
2011/06/17(金) 21:14:09.73ちなみに↑↓→←と押した。
$ hexdump -C
^[[A^[[B^[[C^[[D
00000000 1b 5b 41 1b 5b 42 1b 5b 43 1b 5b 44 0a |.[A.[B.[C.[D.|
0000000d
0881デフォルトの名無しさん
2011/06/17(金) 21:18:19.280882デフォルトの名無しさん
2011/06/18(土) 10:20:34.680883デフォルトの名無しさん
2011/06/21(火) 18:27:16.11順調にいけば来週早々にも正式版がでる予定
0884デフォルトの名無しさん
2011/06/28(火) 02:23:00.990885デフォルトの名無しさん
2011/06/29(水) 01:49:38.82自分で--prefixを指定してコンパイルし、ホーム以下に gcc を入れました。
それでコンパイルは出来たのですが、実行時に共有ライブラリがうまくリンクされません。
LD_LIBRARY_PATHを設定するラッパーを用意する以外で良い方法はありませんか?
root権限なしで出来る方法でお願いします。
あと -static はスレッド(ちなみにLinux)まわりが不整合になるので不可です。
0886デフォルトの名無しさん
2011/06/29(水) 01:57:29.44それならリンカに-Lオプションでいいんじゃない?
0887デフォルトの名無しさん
2011/06/29(水) 02:04:50.940888885
2011/06/29(水) 07:54:30.81リンク時に LD_RUN_PATH を設定するか -Wl,-rpath=/hoge を指定することで
バイナリのDT_RUNPATHタグに記録され実行時に利用される、
というので、とりあえず共有ライブラリがリンクされるようになりました。
この方法であってるでしょうか?
>>886
Linuxではリンカの-Lオプションはバイナリに渡されないようです。
でもドキュメント探すときのヒントになりました。
ありがとうございます。
0889デフォルトの名無しさん
2011/06/29(水) 23:16:44.64template<> struct Example<2>
{
template<class> static void StaticMethod(int) { }
};
template<> struct Example<3>
{
template<int> void Method(int)
{
Extern<2>::StaticMethod<int>(10);
}
};
どのバージョンか解からんが、去年ぐらいのバージョンで
こんな感じのコードをコンパイルしようとしたら、StaticMethod<int>が
比較演算子とシンボルに分解されてコンパイルエラーになってた。
いつ頃のバージョンで治ったのか知ってる人いる?
0890天使 ◆uL5esZLBSE
2011/07/04(月) 16:08:18.09仕事で仕方なくならわかるけど
家でもJAVAやってるなら本当にバカだよね。哀れ
お前たちは本当にゴミだな
0891デフォルトの名無しさん
2011/07/04(月) 19:30:58.06それってどんな現象がおきるのですか?
0892デフォルトの名無しさん
2011/07/08(金) 01:29:58.77プロンプト表示させずに
即プログラムをデバッグ実行させるにはどうしたらいいでしょうか
イメージとしては、GUIのデバッガと同じようなことがしたいのですが
(ブレイク後値参照とかいった複雑?なことはしません)
0893デフォルトの名無しさん
2011/07/08(金) 01:35:51.49http://www.gnu.org/software/gdb/links/
> Sites and links related to GDB
> Graphical Interfaces and Integrated Development Environments using GDB
> (略)
0894デフォルトの名無しさん
2011/07/08(金) 01:41:59.37ちょっとした便利ツールを作りたいのです
0895デフォルトの名無しさん
2011/07/08(金) 01:47:17.54できるのか知らんけど、パイプからコマンド流し込めないの?
0896デフォルトの名無しさん
2011/07/08(金) 02:10:56.45じゃあこっち。
http://www.kegel.com/linux/gdbserver.html
Lispを理解できるなら、シンプルにgdb.elでもいいかも。
0897デフォルトの名無しさん
2011/07/08(金) 02:30:30.75lisp love な教授がいたけど、
まったく共感出来なかったですね…
gdb server で進めていこうと思います
ありがとうございました
0898デフォルトの名無しさん
2011/07/08(金) 11:02:55.49ちょっと読めば、すぐにpty使ってるのが分る。
0899デフォルトの名無しさん
2011/07/27(水) 23:59:31.720900デフォルトの名無しさん
2011/07/28(木) 05:10:41.24試せよ
ダダなんだから
0901デフォルトの名無しさん
2011/07/29(金) 07:53:41.70誰か試してる奴が居たら、聞きたいじゃん。
うちではあまり効果無かった…。
0902デフォルトの名無しさん
2011/07/29(金) 11:32:27.52LTOも試してみた?
関数に最適化を助けるattribute付けてみた?
0903デフォルトの名無しさん
2011/07/29(金) 19:00:59.520904デフォルトの名無しさん
2011/07/30(土) 08:18:10.59-Ofast -march=native でやってみたけど、gcc 4.4 の吐くバイナリと速度は変わらなかったわ。
ソフトウエアに激しく依存するだろうから参考にもならないだろうけど、
ちょっと他の人の感想が聞きたかったんだよ。ごめんな。
0905デフォルトの名無しさん
2011/07/30(土) 23:51:06.32そもそもGCCでタイプライブラリをどうやったら作れるのか解からん。
IDLに相当するようなもんってツールチェインにあるの?
0906デフォルトの名無しさん
2011/08/17(水) 20:56:26.54http://sourceforge.jp/magazine/11/08/17/0515246
0907デフォルトの名無しさん
2011/08/21(日) 09:15:02.140908デフォルトの名無しさん
2011/08/21(日) 10:21:17.18Macでのldの-dead_stripで.eh_frameセクションごと丸ごとstripされてしまって例外が受け取れなくなってないか?
ELFターゲットの--gc-sectionsのほうは大丈夫だった。
俺まだLeopardなんで買い換えろボケって話かもしれないんで、誰かLionで試してはくれまいか。
0909デフォルトの名無しさん
2011/08/21(日) 18:23:07.380910デフォルトの名無しさん
2011/08/21(日) 18:45:23.03動作自体はGNU ldの--gc-sectionsそのもの。
Appleのldだとオプションが違うのよ。
0911デフォルトの名無しさん
2011/08/21(日) 18:49:07.63stripはstripでやってみたら
0912デフォルトの名無しさん
2011/08/21(日) 18:57:41.89効果は、どこからも参照されてないシンボルを「コードごと」実行ファイルから取り除くもので
stripにはこんな機能ないよ。Windows系のリンカで言うところのスマートリンクだよ。
0913デフォルトの名無しさん
2011/08/22(月) 07:08:44.47http://www.rhinocerus.net/forum/lang-ada/683219-dead_strip-exception-handling.html
0914デフォルトの名無しさん
2011/08/22(月) 19:33:55.81最初フロントエンドの問題かもと思ったけど、4.6.x全部でフロントエンド問わず発生するんで
gcc全般について話せるところのほうがいいだろうと。とくれば英語苦手なんでこっちに来た。
Simonさんに試してもらった範囲ではLionでは起きないってことで
今はldのバージョンとの組み合わせ問題かなあ?と思ってるところ。
条件がはっきりしたらgccのbugzillaに投げるから、誰か協力してくれない?
0915デフォルトの名無しさん
2011/08/22(月) 21:30:52.400916デフォルトの名無しさん
2011/08/22(月) 21:40:28.53C言語の-fexceptionsモードでも再現するよ
0917デフォルトの名無しさん
2011/08/22(月) 22:25:31.82一応ldに-dead_stripを渡してみたけど、間違ってたらゴメン。
ちゃんとした確認用ソースコードとコマンドラインがわかれば改めて試します。
0918デフォルトの名無しさん
2011/08/22(月) 22:35:38.49確認方法はそれでいいです。
やっぱ単にいつまでもLeopardにしがみついてないで買い換えろボケって話か……orz
0919デフォルトの名無しさん
2011/08/22(月) 22:50:10.17「-dead_strip」使用、かつ「(関数名).ehってラベルを持っていないとき」限定で、リンクされない(実行ファイルから除かれてしまう)
gcc 4.5までは (関数名).eh ってラベルが生成されてたんだけど、4.6から生成されなくなった。
セクションの有無はsize -mか、GNU binutilsを入れているならobjdumpで確認可能、参考まで。
バグレポートするかどうか悩む……。
あとsage忘れに気付いたごめんなさい。
0920デフォルトの名無しさん
2011/08/23(火) 00:01:53.37Appleのldはソースが公開されているので、ひとまずそれを手元の環境でコンパイルして試すというのはどうでしょう?
ttp://www.opensource.apple.com/source/ld64/ld64-123.2.1/
ChangeLogを読むと修正内容に-dead_stripやdead strippedなどと書かれてますね(内容は確認してないです)。
0921デフォルトの名無しさん
2011/08/23(火) 13:35:05.36見た感じファイルから読み込まなければならないような作りに見えますが
0922デフォルトの名無しさん
2011/08/23(火) 18:38:29.49これで普通に出たけど
0923デフォルトの名無しさん
2011/08/23(火) 18:51:34.830924デフォルトの名無しさん
2011/08/23(火) 19:16:46.30ソース見る限り方法はなさそう
if (optind == argc)
display_file ("a.out", target);
else
for (; optind < argc;)
display_file (argv[optind++], target);
0925デフォルトの名無しさん
2011/08/23(火) 19:31:03.050926デフォルトの名無しさん
2011/08/23(火) 20:15:33.950927デフォルトの名無しさん
2011/08/23(火) 20:54:54.54言われてみると確かにそうだが
よく気づいたな
0928デフォルトの名無しさん
2011/08/23(火) 21:43:56.60cat a.out | objdump -d /dev/stdin だとだめだ
0929デフォルトの名無しさん
2011/08/23(火) 21:50:55.06objdump -d <(cat a.out)
0930デフォルトの名無しさん
2011/08/24(水) 06:21:55.36ありがとう、でも/usr/include/mach-o以下が足りてなくてビルドできない……。
OSのバージョンが違うんだからそうかもしれないけど。
わかったのは、snow leopard以降libunwindというのを使うようになっていること。
恐らく例外情報をもっとうまく扱えるようになって、ldはラベルを頼りにしなくて良くなった。
で、ここからは想像だけど、きっとldがラベルを必要としない→じゃあgccもラベル吐かなくていいんじゃね?って流れがあった。
Leopardは切り捨てられたんだ……orz
0931デフォルトの名無しさん
2011/08/24(水) 11:38:12.44余計なお世話かもしれませんが、Snow Leopard以降のOSを使った方が色々と楽だと思いますよ。
PPCなMacをお使いならIntel Mac(Core 2 Duo以降)への移行もしたいところ(Lionへの移行も睨んで)。
0932デフォルトの名無しさん
2011/08/24(水) 13:52:15.01objdumpはファイル記述子0(stdin)を
そのまま使うということが出来ない実行ファイル。
常にパスをopen(2)しないといけない。
/dev/stdinはopend(2)でファイル記述子0を扱うための仕掛け。
|を使うとopen(2)でなく、shellがpipe(2)でパイプを作成し、
右辺コマンドのファイル記述子0としてから、objdumpを起動する。
しかし、objdumpはファイル記述子0を扱えない。
0933デフォルトの名無しさん
2011/08/24(水) 13:53:20.48結局はパイプなので駄目。単なる構文糖衣。
ちなみに最初期のシェルはそういう文法(ただし括弧なし)だった。
0934デフォルトの名無しさん
2011/08/24(水) 13:54:29.57その辺がOS独自拡張の怖いところだよね。
0935デフォルトの名無しさん
2011/08/24(水) 15:06:13.38このbashの拡張は名前付きパイプを作るもので、/dev/stdinとは別物になるはずだから、それでもできないの?
0936デフォルトの名無しさん
2011/08/24(水) 15:26:36.04named pipeになるかどうかは
bashをmakeする時のconfigによる。
必ずnamed pipeになるわけじゃない。
その上、objdumpがregular fileかどうか調べてる。
$ objdump -d <(cat /bin/ls)
objdump: Warning: '/dev/fd/63' is not an ordinary file
0937デフォルトの名無しさん
2011/08/24(水) 16:52:11.68あらら、ご丁寧にそんなチェックが入るのか、残念。
0938デフォルトの名無しさん
2011/08/26(金) 12:57:43.920939デフォルトの名無しさん
2011/08/27(土) 05:23:21.810940デフォルトの名無しさん
2011/08/27(土) 05:30:08.710941デフォルトの名無しさん
2011/08/27(土) 09:37:40.020942デフォルトの名無しさん
2011/08/27(土) 19:26:19.070943デフォルトの名無しさん
2011/08/27(土) 20:52:09.65おまいらも見に覚えがあるだろ
0944デフォルトの名無しさん
2011/08/28(日) 15:15:34.25○ 身に覚え(Anthy,Canna)
0945デフォルトの名無しさん
2011/08/29(月) 11:14:01.91float32 sum=0;
for(int i=0;i<N;i++) sum += array[i];
0946デフォルトの名無しさん
2011/08/30(火) 18:29:50.24gcc 3.4.4で、以下のC++ソースがコンパイルできていました。
----- hello.cpp -----------------------
#include <iostream.h>
int main() {
cout << "Hello, world" << endl;
return 0;
}
----- hello.cpp -----------------------
setup.exe を見ていると、gcc4 があることに気づき、
gcc4 4.3.4 をインストールしたところ、下記のエラーでコンパイルできなくなりました。
$ g++ hello.cpp
hello.cpp:1:22: error: iostream.h: No such file or directory
Cygwin を全部削除して、gcc3 を入れずに gcc4、gcc4-core、gcc4-g++をインストールしても、同じでした。
gcc4 を使うにはなにか他に入れる必要があるのでしょうか?
0947デフォルトの名無しさん
2011/08/30(火) 18:37:44.330948デフォルトの名無しさん
2011/08/30(火) 18:49:50.34iostream.h: このようなファイル、またはディレクトリは見つかりません
#include <iostream>にしな
0949デフォルトの名無しさん
2011/08/30(火) 19:30:48.46hello.cpp: In function 'int main()':
hello.cpp:5: error: 'cout' was not declared in this scope
hello.cpp:5: error: 'endl' was not declared in this scope
<iostream> にしてもエラーがでます。???わかんない
0950デフォルトの名無しさん
2011/08/30(火) 19:35:33.180951デフォルトの名無しさん
2011/08/30(火) 20:08:19.35エラー:このスコープの中では 'cout' は宣言されていない
??
0952デフォルトの名無しさん
2011/08/30(火) 20:11:35.27を入れるのだ
0953デフォルトの名無しさん
2011/08/30(火) 20:17:27.390954デフォルトの名無しさん
2011/08/30(火) 20:17:36.10??どこに入れるんですか?
0955デフォルトの名無しさん
2011/08/30(火) 20:18:13.990956デフォルトの名無しさん
2011/08/30(火) 20:19:16.81これだけで分かる人はそんな質問しないと思うwww
0957デフォルトの名無しさん
2011/08/30(火) 20:21:04.900958デフォルトの名無しさん
2011/08/30(火) 20:42:58.740959デフォルトの名無しさん
2011/08/30(火) 20:44:17.24その本を窓から投げ捨てるといいよ。
0960デフォルトの名無しさん
2011/08/30(火) 20:46:12.99#include <iostream>
using namespace std;
int main(){
cout <<"やっほー"<<endl;
eturn 0;
}
0961デフォルトの名無しさん
2011/08/30(火) 21:04:17.02通りました。gcc3 でも、gcc4 でも。
gcc4 では文法が厳しくなった?のでしょうか・・・
>>959
そうですね、捨てます。
いいC++の本があったら教えてもらえませんか?
0962SCHEME餃子 ◆8X2XSCHEME
2011/08/30(火) 21:17:04.68マジレスすると >>946 は C++ のコードとして誤っていると言える。
なので gcc4 が厳しくなったと言うよりは、それより前が緩かった。
(gcc3 でもコンパイル時に -std=c++98 オプションを付けると >>946 はエラーになるんじゃないかな。 確認してないけど。)
0963デフォルトの名無しさん
2011/08/30(火) 21:25:23.85wiki を見ると、C++はここ数年仕様に追加がされてるみたいですね。。。。
最新の本を探してみます。ありがとうございました。
0964デフォルトの名無しさん
2011/08/30(火) 22:21:32.800965デフォルトの名無しさん
2011/08/30(火) 22:42:51.16ィ-、 ぐ,n(_乂..!.::::::i:::|::::i:::|:::::::i:::ヽ:::ヽ
/ / ィ-、尤o う::::;;|斗イ::ハ斗亠',斗ト、:i::::::}
/ / / /7(乂):::::| ,ィzz\ ,イ芯ヾレ!::::::!
/ / / / |:{ノ☆::::!{弋zリ ¨´≠彡'リ
_/⌒ヽノ / |::::::::::ハ::{ ≠ ' } r‐、 ,‐、
/ー、\| /ヘ / ∠::::::::::::トミゝ {ニニニィ ,! | | / /
\ \八 〉' 彡ノリ ∨ } ,イ | | / /
| リ j/ー个:.、 ゙こ三/ / | |__/ /-‐、
ィムムト、_. ヽ、こ,. イ)、 | /〉〈ノハ
0966デフォルトの名無しさん
2011/08/30(火) 23:26:47.82規格解説書でなく実用入門書なら規格よりも当時主流のコンパイル実装に沿った内容の本もありえる(・・・)
0967デフォルトの名無しさん
2011/08/30(火) 23:55:27.780968デフォルトの名無しさん
2011/08/31(水) 00:09:46.510969デフォルトの名無しさん
2011/08/31(水) 00:16:17.530970デフォルトの名無しさん
2011/08/31(水) 00:17:15.56ストラウストラップのプログラミング入門
http://www.amazon.co.jp/dp/4798119598
C++の生みの親が初心者に語りかけるプログラミングの王道と手法!
¥ 8,190 国内配送料無料
0971デフォルトの名無しさん
2011/08/31(水) 00:17:52.42地道に積み上げるの吉かと
0972デフォルトの名無しさん
2011/08/31(水) 00:18:02.600973デフォルトの名無しさん
2011/08/31(水) 00:27:22.960974デフォルトの名無しさん
2011/08/31(水) 00:28:12.200975デフォルトの名無しさん
2011/08/31(水) 00:32:07.020976デフォルトの名無しさん
2011/08/31(水) 00:35:21.42出版も今年だし、著者のストラウストラップがISO C++標準化委員会のメンバーっていうのもいいですね。
1000頁を超えるとなると、少々ビビリますが、検討してみます。ありがとうございました。
0977SCHEME餃子 ◆8X2XSCHEME
2011/08/31(水) 00:39:53.09押さえといた方がいい本というのはあるけど、それだけ読めば充分というような本は無いし、当人の資質によっても妥当な本は違う。
まぁ、 C++ は複雑すぎだよな。 俺としては C++03 で充分すぎると思う。
0978デフォルトの名無しさん
2011/08/31(水) 00:52:38.39規格書
C++ In Depthシリーズ
0979デフォルトの名無しさん
2011/08/31(水) 02:39:04.33Paul Anderson (著), その他
¥ 1,269 中古品
¥ 13,923 ほぼ新品
0980デフォルトの名無しさん
2011/08/31(水) 02:58:39.11C++
Wikipedia
0981デフォルトの名無しさん
2011/08/31(水) 07:30:23.44どちらも構文の説明にとどまらず、オブジェクトモデリングの話からクラス設計の指針にいたるまで、
網羅的に書かれているようですね。検討させて頂きます。ありがとうございました。
>>980
そのようですね。もうgcc3 は使われていないんですかね・・
0982SCHEME餃子 ◆8X2XSCHEME
2011/08/31(水) 12:00:56.51gcc3 が規格に準拠していないというわけでなく、独自の拡張として古い書き方を許容してるんだよ。
オプション指定で厳密に規格に従うモードにすることもできるよ。
0983デフォルトの名無しさん
2011/08/31(水) 12:27:34.320984デフォルトの名無しさん
2011/08/31(水) 14:32:36.61受けると思ったんです。orz
0985デフォルトの名無しさん
2011/08/31(水) 18:43:35.600986デフォルトの名無しさん
2011/08/31(水) 20:09:24.500987SCHEME餃子 ◆8X2XSCHEME
2011/08/31(水) 22:44:46.310988デフォルトの名無しさん
2011/09/01(木) 20:40:44.47うしんg なめsぱせ std;
じゃなく、
うしんg std::cout;
うしんg std::cin;
を使うようにしろよ。
0989デフォルトの名無しさん
2011/09/02(金) 08:42:36.66まあそういう時代もあった
0990デフォルトの名無しさん
2011/09/02(金) 19:51:44.28Gentoo
0991デフォルトの名無しさん
2011/09/02(金) 20:55:23.52すべったんでもうやんないです。
0992デフォルトの名無しさん
2011/09/02(金) 22:20:20.290993デフォルトの名無しさん
2011/09/02(金) 22:24:14.900994デフォルトの名無しさん
2011/09/02(金) 22:25:05.140995デフォルトの名無しさん
2011/09/03(土) 14:00:10.85ミ川ミ川ミ三川ミミ川ミ三ミミ
彡"彡三ミ彡彡彡ミミ川ミ彡川彡
彡""`''~~~~"゛--、ミ三川三川彡
y、 ノム 彡ミ川ミ三川ミミ
/ 〈 ノ'''''' ⌒ 川ミ川ミリ三川ミ
.l__ _ 川彡ミ川リ彡川ミ
rl||l| i__ril|||llli 川ミ川川リミ川ミ
ヽ_l_/ ヽ____ノ ̄ ̄ ̄川彡ミ ヽリ川川
(( __)、 川リ 6 ノノリ川川
|/ ̄ ヽ ノ川| 9 ´川川リ
.|イミFゝ_,, / (((l 川リ川
(~^~√` 川 (川リ
.|  ̄ ::;;; /~ヽ
.ヽ|||ll___,,,,,ー"" / 人\
`入 / \
0996デフォルトの名無しさん
2011/09/03(土) 14:13:14.78http://hibari.2ch.net/test/read.cgi/tech/1315026784/
0997デフォルトの名無しさん
2011/09/03(土) 14:38:58.85原著出たのはもう何年か前だぞ
0998デフォルトの名無しさん
2011/09/03(土) 15:02:39.300999デフォルトの名無しさん
2011/09/03(土) 15:13:02.51でもいい本ですよ。
読本として上級者も読みましょう。
1000デフォルトの名無しさん
2011/09/03(土) 15:13:09.17ソフトウェア産業全体が最先端を追い掛けないから、出版が遅れても許容されている。
最先端を追い掛けている極一部は原書を読むから、やはり出版の遅れは問題にならないし。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。