私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレGCCについて part8
gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ☆
レスフィルター : (試験中)
>>504
それソースが更新されてないときでも、生成されね?
それソースが更新されてないときでも、生成されね?
a.out: $(OBJS)
$(COMPILE) $(CFLAGS) hoge.c
$(LINK) $(OBJS) hoge.o
$(COMPILE) $(CFLAGS) hoge.c
$(LINK) $(OBJS) hoge.o
BCB使っていて興味本位にGCC触ってみたんですけど
下のコードって通らない、というか間違った書き方なんでしょうか?
環境はubuntuのg++4.1.3です
template< typename T >
class test
{
friend class test< T >; <<ここで怒られてる
public:
int aaa;
};
下のコードって通らない、というか間違った書き方なんでしょうか?
環境はubuntuのg++4.1.3です
template< typename T >
class test
{
friend class test< T >; <<ここで怒られてる
public:
int aaa;
};
~ error: class 'test<T>' implicitly friends with itself
と出ていました。
英語もわからずGUIでしか操作したことないとGCCなんて使うこと出来なさそうだなぁ。
と出ていました。
英語もわからずGUIでしか操作したことないとGCCなんて使うこと出来なさそうだなぁ。
「自分自身はいちいち宣言しなくてもfriendされてるのと同じことできるよ」と言っています。
ええええ!
・・・実体が違うなら同じクラスでもpraivateに触れないと思ってました。
ありがとう!
・・・実体が違うなら同じクラスでもpraivateに触れないと思ってました。
ありがとう!
>>512
ちっとは英語の勉強しようよ。なんだそのスペリングミスは。
ちっとは英語の勉強しようよ。なんだそのスペリングミスは。
あるオブジェクトファイルがリンクされたかどうかって・・・というか、
あるシンボルの中身が存在するかどうかってソースレベルでチェックできる?
存在しないシンボルを参照してもリンカがエラーを吐かないことが前提で・・・
あるシンボルの中身が存在するかどうかってソースレベルでチェックできる?
存在しないシンボルを参照してもリンカがエラーを吐かないことが前提で・・・
__attribute__((weak_import)) が自分のやりたいことに合致しそうだけど
サポートしてるのは MacOS X だけっぽい
諦めてほかの方法を探すかな
サポートしてるのは MacOS X だけっぽい
諦めてほかの方法を探すかな
何をしたいのかがわからない。
実行時にシンボルの中身が存在するか判定したいんだったら遅延リンクでもいいんじゃね?
実行時にシンボルの中身が存在するか判定したいんだったら遅延リンクでもいいんじゃね?
>>517
つ dlopen(3)
つ dlopen(3)
>>517
オブジェクトのリンク状況つうのは、
foo.c
#include <stdio.h>
int bar_magic = 0 __attribute__ ((weak));
int is_bar(void)
{
return 0;
}
int main(void)
{
printf("%d\n", is_bar());
return 0;
}
bar.c
int is_bar(void)
{
return 1;
}
とかやって、
$ gcc -o foo foo.c && ./foo
$ gcc -o foo foo.c bar.c && ./foo
の結果が変わるでいいんですか?
オブジェクトのリンク状況つうのは、
foo.c
#include <stdio.h>
int bar_magic = 0 __attribute__ ((weak));
int is_bar(void)
{
return 0;
}
int main(void)
{
printf("%d\n", is_bar());
return 0;
}
bar.c
int is_bar(void)
{
return 1;
}
とかやって、
$ gcc -o foo foo.c && ./foo
$ gcc -o foo foo.c bar.c && ./foo
の結果が変わるでいいんですか?
>>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;
}
質問の仕方が下手ですまん。
最終的には組み込む予定のとある関数を、一時的に外したいが #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
俺宛てかな?実はそこが問題になるとはあまり考えてなかった。
中身が無いことを前提にしたシンボル参照をソースで意図出来れば、
当然リンカもエラーは吐かないだろうと思ってたので。(そしてその通りになった)
でも気にしてくれてありがとう。
今後の予定としては、間違えて同名のシンボルを別のソースで定義してしまい
関数が上書きされたことに気づかずバグに苦しむ。というストーリーを計画しています。
俺宛てかな?実はそこが問題になるとはあまり考えてなかった。
中身が無いことを前提にしたシンボル参照をソースで意図出来れば、
当然リンカもエラーは吐かないだろうと思ってたので。(そしてその通りになった)
でも気にしてくれてありがとう。
今後の予定としては、間違えて同名のシンボルを別のソースで定義してしまい
関数が上書きされたことに気づかずバグに苦しむ。というストーリーを計画しています。
make LANGUAGES=cで放置
メインのPCは修理に出してしまったから、400MHzの一台しかないんだよ…
やっと3時間くらいでstage1が終わったから、朝までつけっぱなしで終わりそうかな
マルチコアCPUなら-j 2とか付けたいんだけど…
メインのPCは修理に出してしまったから、400MHzの一台しかないんだよ…
やっと3時間くらいでstage1が終わったから、朝までつけっぱなしで終わりそうかな
マルチコアCPUなら-j 2とか付けたいんだけど…
OpenOffice.orgは非常に大きなプログラムなので、
RPMファイルの作成には長い時間が必要となる。
1GHzのCeleronで実行したところ、14時間以上かかった。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/642opt686.html
RPMファイルの作成には長い時間が必要となる。
1GHzのCeleronで実行したところ、14時間以上かかった。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/642opt686.html
C言語で書かれているプログラムをAlphaの命令セットで実行できるように
クロスコンパイルするにはどうすればいいのでしょうか
まず何が必要なのでしょうか?
とりあえずGCC,binutil,glibcを用意してみたのですが…
クロスコンパイルするにはどうすればいいのでしょうか
まず何が必要なのでしょうか?
とりあえずGCC,binutil,glibcを用意してみたのですが…
gccやbinutilもってきたなら中のドキュメント読めば、つーか
configure --helpすれ。
configure --helpすれ。
>>539
すげーどめいんw
すげーどめいんw
んー。「エンディアンネス」のくだけた表現で、向こうではわりかし普通よ?
http://www.catb.org/jargon/html/B/byte-sex.html
http://www.catb.org/jargon/html/B/byte-sex.html
>>541
vmware に NetBSD 入れて /usr/src/build.sh -m alpha tools
vmware に NetBSD 入れて /usr/src/build.sh -m alpha tools
いろいろアドバイスありがとうございます
とりあえずGCC,binutil,glibcだけでなんとかなるor541の方法ってことでOK?
binutils入れてみようとおもったのですがconfigureで HOST=~には使っているマシンの
状況を書けばいいのかな? それともプログラムのバイナリを実行させる先の
事をかけばいいのか…
HOST=CPU-COMPNY-SYSTEM ってことらしのですが
CentOSでPentium4のマシン使っている場合だとx86-centos-linuxで
いいんですかね?
とりあえずGCC,binutil,glibcだけでなんとかなるor541の方法ってことでOK?
binutils入れてみようとおもったのですがconfigureで HOST=~には使っているマシンの
状況を書けばいいのかな? それともプログラムのバイナリを実行させる先の
事をかけばいいのか…
HOST=CPU-COMPNY-SYSTEM ってことらしのですが
CentOSでPentium4のマシン使っている場合だとx86-centos-linuxで
いいんですかね?
>>547
カナディアンクロスやるんじゃなければ
ホストは configure が勝手に発見してくれるので
/path/to/configure --target=
で桶
いろいろほげってダメだったらまた濃い
カナディアンクロスやるんじゃなければ
ホストは configure が勝手に発見してくれるので
/path/to/configure --target=
で桶
いろいろほげってダメだったらまた濃い
ちなみにこのへんの GNU toolchain は
カナディアンクロスもある程度考慮されてるので
"Linux ホストで、MipsターゲットのCygwinバイナリを作る"
てな感じも(必要な知識があれば)可能。
↑経験談
カナディアンクロスもある程度考慮されてるので
"Linux ホストで、MipsターゲットのCygwinバイナリを作る"
てな感じも(必要な知識があれば)可能。
↑経験談
類似してるかもしれないスレッド
- 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
トップメニューへ / →のくす牧場書庫について