元スレGCCについて part8
gcc覧 / PC版 /みんなの評価 : ☆
501 = :
俺もよくわからない。
.oが出来た日時をCのソースから利用したい。
a.outが出来た日時をCのソースから利用したい。
どっちなの? 前者なら>>481でFAでしょ?
後者なら>>464の方法で出来るよね。
もっと違うこと?
502 = :
>>501
バージョンを取得する関数のあるソースを hoge.c としたとき
hoge.o を他の全オブジェクトに依存させればいいのかな?
やってみるよ。
503 = :
できた。ありがとう >>501
>>499
コンパイルの必要が無いときはコンパイルしたくないんですよ。
504 = :
501だが、>>501と>>502眺めて
30秒考えてようやく仕様が分かったw
>>501の後者って事だよね。
>>464の言っている別解だが、
.PHONY: hoge.o
これで「hoge.o is up to date」になることなく、
hoge.oが必要とされれば、タイムスタンプ比較をショートカットして、
毎回ルールに基づいて生成しようとする。で、
a.out: $(OBJS) hoge.o
としておけばいい。
505 = :
>>504
それソースが更新されてないときでも、生成されね?
506 = :
a.out が更新されたってことは生成必要なんじゃ?
508 = :
BCB使っていて興味本位にGCC触ってみたんですけど
下のコードって通らない、というか間違った書き方なんでしょうか?
環境はubuntuのg++4.1.3です
template< typename T >
class test
{
friend class test< T >; <<ここで怒られてる
public:
int aaa;
};
509 = :
エラーメッセージは?
読んだ?
510 = :
~ error: class 'test<T>' implicitly friends with itself
と出ていました。
英語もわからずGUIでしか操作したことないとGCCなんて使うこと出来なさそうだなぁ。
511 = :
「自分自身はいちいち宣言しなくてもfriendされてるのと同じことできるよ」と言っています。
512 = :
ええええ!
・・・実体が違うなら同じクラスでもpraivateに触れないと思ってました。
ありがとう!
514 = :
>>512
ちっとは英語の勉強しようよ。なんだそのスペリングミスは。
515 = :
わざとじゃねーのか。
さすがにキーワード間違えないだろ
517 = :
あるオブジェクトファイルがリンクされたかどうかって・・・というか、
あるシンボルの中身が存在するかどうかってソースレベルでチェックできる?
存在しないシンボルを参照してもリンカがエラーを吐かないことが前提で・・・
519 = :
何をしたいのかがわからない。
実行時にシンボルの中身が存在するか判定したいんだったら遅延リンクでもいいんじゃね?
520 = :
>>517
つ dlopen(3)
522 = :
>>519
質問の仕方が下手ですまん。
最終的には組み込む予定のとある関数を、一時的に外したいが #ifdef などでソースを切り分けたくない。
シンボルの中身の有無がプログラム中から判別できれば、 makefile 側でリンクするオブジェクトを
管理するだけなので楽かなと思った。
>>520
条件の後出しで申し訳ないが、組み込み環境なので動的リンクはちょっときつい。
>>521
weak_import じゃなくて weak で良かったのか。どうもありがとう!
int weak_func(void) __attribute__ ((weak));
/* int weak_func(void) { return 1; } */
int main(void)
{
if (weak_func)
{
dbg_print("Function exist\n");
}
else
{
dbg_print("Function not exist\n");
}
return 0;
}
523 = :
リンクエラーは解決したか?
524 = :
>>523
俺宛てかな?実はそこが問題になるとはあまり考えてなかった。
中身が無いことを前提にしたシンボル参照をソースで意図出来れば、
当然リンカもエラーは吐かないだろうと思ってたので。(そしてその通りになった)
でも気にしてくれてありがとう。
今後の予定としては、間違えて同名のシンボルを別のソースで定義してしまい
関数が上書きされたことに気づかずバグに苦しむ。というストーリーを計画しています。
525 = :
GCCのコンパイルがおわらねぇ
526 = :
まあ環境によっては2日仕事だな
527 = :
マジか…
400MHzのアナルスペックで3時間くらい放置してる絶望
528 = :
余計なの削除してやり直すか…
529 = :
>>525
もし余ってるマシンがあるなら、distccで分散コンパイルとかどうよ。
C++だとエラー出まくりで、コンパイルできなかったりするけど。(これは俺の設定が悪いのかな?)
530 = :
make LANGUAGES=cで放置
メインのPCは修理に出してしまったから、400MHzの一台しかないんだよ…
やっと3時間くらいでstage1が終わったから、朝までつけっぱなしで終わりそうかな
マルチコアCPUなら-j 2とか付けたいんだけど…
531 = :
>>530
ひとつでも-j 2はこうかてきめんだよ。
HDDに書いてる間CPUひまだし
535 = :
軽く15年前からあるオプションだよなw
536 = :
エラーでるわ
素直にバイナリ落としてきた
538 = :
C言語で書かれているプログラムをAlphaの命令セットで実行できるように
クロスコンパイルするにはどうすればいいのでしょうか
まず何が必要なのでしょうか?
とりあえずGCC,binutil,glibcを用意してみたのですが…
539 = :
>>538
http://linux.bytesex.org/cross-compiler.html
でどうよ?
541 = :
>>539
すげーどめいんw
542 = :
んー。「エンディアンネス」のくだけた表現で、向こうではわりかし普通よ?
http://www.catb.org/jargon/html/B/byte-sex.html
544 = :
>>541
vmware に NetBSD 入れて /usr/src/build.sh -m alpha tools
545 = :
>>541
って、すげードメイン、か。すげーめんどいん、に見えた。
逝ってくる。
546 = :
すげーメイド!
547 = :
いろいろアドバイスありがとうございます
とりあえずGCC,binutil,glibcだけでなんとかなるor541の方法ってことでOK?
binutils入れてみようとおもったのですがconfigureで HOST=~には使っているマシンの
状況を書けばいいのかな? それともプログラムのバイナリを実行させる先の
事をかけばいいのか…
HOST=CPU-COMPNY-SYSTEM ってことらしのですが
CentOSでPentium4のマシン使っている場合だとx86-centos-linuxで
いいんですかね?
548 = :
>>547
カナディアンクロスやるんじゃなければ
ホストは configure が勝手に発見してくれるので
/path/to/configure --target=
で桶
いろいろほげってダメだったらまた濃い
549 = :
ちなみにこのへんの GNU toolchain は
カナディアンクロスもある程度考慮されてるので
"Linux ホストで、MipsターゲットのCygwinバイナリを作る"
てな感じも(必要な知識があれば)可能。
↑経験談
550 = :
GCCは変態だなぁ(褒
みんなの評価 : ☆
類似してるかもしれないスレッド
- GCCについて part9 (1001) - [95%] - 2011/9/2 21:17 ○
- GCCについて part10 (538) - [90%] - 2018/7/5 20:30
- Cygwin + MinGW + GCC 相談室 Part 8 (938) - [18446744073709551610%] - 2022/10/28 8:00
トップメニューへ / →のくす牧場書庫について