私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレGCCについて part8
gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ☆
レスフィルター : (試験中)
g++ で libfoo1.a と libfoo2.a をリンクしているのですが、
この2つのライブラリが相互に依存しているので、
undefined エラーになります。
libfoo1.a libfoo2.a のソースをいじることなく、
うまくリンクすることはできないでしょうか?
この2つのライブラリが相互に依存しているので、
undefined エラーになります。
libfoo1.a libfoo2.a のソースをいじることなく、
うまくリンクすることはできないでしょうか?
libfoo1.a内のどのオブジェクトがlibfoo2.a内のどのオブジェクトに依
存しているかなど、もうちょっと詳しい情報が欲しいけど、とりあえず
gcc .... -lfoo1 -lfoo2 -lfoo1
のような感じでできへん?
libfoo1.aとlibfoo2.aをバラして1つのlibfoo.aにしてしまうとかも。
存しているかなど、もうちょっと詳しい情報が欲しいけど、とりあえず
gcc .... -lfoo1 -lfoo2 -lfoo1
のような感じでできへん?
libfoo1.aとlibfoo2.aをバラして1つのlibfoo.aにしてしまうとかも。
>>361
CFLAGS=-I/usr/include/foo
LDFLAGS=-L/usr/include/foo -lfoo
default: foo
これだけ。foo.cから実行ファイルfooを作る。
CFLAGS=-I/usr/include/foo
LDFLAGS=-L/usr/include/foo -lfoo
default: foo
これだけ。foo.cから実行ファイルfooを作る。
/usr/lib/gcc/target/version/includeのようなgcc付属のヘッダのある
ディレクトリを取得する方法はありますか?
-nostdincを指定してるソースからstdarg.h等を使いたいのです。
ディレクトリを取得する方法はありますか?
-nostdincを指定してるソースからstdarg.h等を使いたいのです。
nm libhoge.a | grep hageとしたら
00001ffb t hageとでるのに
int main() {
return hage();
}
のようにhageを呼び出してるプログラムのリンクが失敗するのですが
どのような原因が考えられますでしょうか?
gcc -g -O0 main.c -o huga -L. -lhoge
main.c:2: undefined reference to `hage`
collect2: ld はステータス 1 で終了しました
00001ffb t hageとでるのに
int main() {
return hage();
}
のようにhageを呼び出してるプログラムのリンクが失敗するのですが
どのような原因が考えられますでしょうか?
gcc -g -O0 main.c -o huga -L. -lhoge
main.c:2: undefined reference to `hage`
collect2: ld はステータス 1 で終了しました
? gcc -v -g -O0 main.c -o huga -L. -lhoge -Wl,--verbose
>>366
t ってことはローカルシンボルじゃん
t ってことはローカルシンボルじゃん
Cygwin上でGCCのC,C++のクロス環境を作ってます。
newlibと組み合わせてビルドはうまくいってるんですが、
libstdc++のgchファイルがかなりサイズを食っていて扱いづらいです。
実際には、C++の言語本体の機能だけ利用できれば十分です。
configure時にうまく無効にする方法などあれば教えてください。
newlibと組み合わせてビルドはうまくいってるんですが、
libstdc++のgchファイルがかなりサイズを食っていて扱いづらいです。
実際には、C++の言語本体の機能だけ利用できれば十分です。
configure時にうまく無効にする方法などあれば教えてください。
GCCに、関数呼び出しとリターンを表示させたり記録させたりする
オプションってありましたっけ?
なんかあったような気もするけど、ぐぐってもヒットせんかった。
オプションってありましたっけ?
なんかあったような気もするけど、ぐぐってもヒットせんかった。
>>373
記録させることはできないが、-finstrument-functions で hook させることはできる。
ググればいろいろ出てくるが、
http://www.ibm.com/developerworks/jp/linux/library/l-graphvis/index.html
ここがわかりやすいな。
記録させることはできないが、-finstrument-functions で hook させることはできる。
ググればいろいろ出てくるが、
http://www.ibm.com/developerworks/jp/linux/library/l-graphvis/index.html
ここがわかりやすいな。
>>375
なにこれー!今日ほど2chが役に立った日はないわ。ちょーさんくすこ。
なにこれー!今日ほど2chが役に立った日はないわ。ちょーさんくすこ。
gccで、クロージャとは言わないまでも、
ユーザーが作った関数へ、後から動的に値を埋め込む方法はありませんか?
言語処理系のコールバックの実装で、
その関数が呼び出された時に、その値を参照したいのです。
グローバル変数や、アセンブラを使えば作れるのですが、
できれば使わずに済ませたいので。
ユーザーが作った関数へ、後から動的に値を埋め込む方法はありませんか?
言語処理系のコールバックの実装で、
その関数が呼び出された時に、その値を参照したいのです。
グローバル変数や、アセンブラを使えば作れるのですが、
できれば使わずに済ませたいので。
>>380-381
いやそうじゃなくて。
言い方を変えれば、関数とユーザー値を組み合わせて
新しい関数を作れるかって事です。
その新しい関数は、呼び出し時に
なんらかの方法でユーザー値を受け取れる事。
いやそうじゃなくて。
言い方を変えれば、関数とユーザー値を組み合わせて
新しい関数を作れるかって事です。
その新しい関数は、呼び出し時に
なんらかの方法でユーザー値を受け取れる事。
g() { return closure_ref(0) + 1; }
f(pg) { return ((int (*)())pg)(); }
main() {
printf("%d\n", f(make_closure(g, 1)));
return 0;
}
この場合2が表示される。
make_closureとclosure_refを作れるか
fはstdlib.hのbsearchやqsortのように、
任意のライブラリの可能性もある。
(当然gはその型に合った関数型になる)
f(pg) { return ((int (*)())pg)(); }
main() {
printf("%d\n", f(make_closure(g, 1)));
return 0;
}
この場合2が表示される。
make_closureとclosure_refを作れるか
fはstdlib.hのbsearchやqsortのように、
任意のライブラリの可能性もある。
(当然gはその型に合った関数型になる)
C++ならできるからg++使えってのはあり?
#include <boost/tr1/functional.hpp>
#include <boost/utility/result_of.hpp>
#include <cstdio>
template<typename T>
T g(T x)
{
return x + 1;
}
template<typename T>
typename boost::result_of<T ()>::type
f(T g)
{
return g();
}
int main()
{
std::printf("%d\n", f(std::tr1::bind(g<int>, 1)));
}
#include <boost/tr1/functional.hpp>
#include <boost/utility/result_of.hpp>
#include <cstdio>
template<typename T>
T g(T x)
{
return x + 1;
}
template<typename T>
typename boost::result_of<T ()>::type
f(T g)
{
return g();
}
int main()
{
std::printf("%d\n", f(std::tr1::bind(g<int>, 1)));
}
>>386
C++の型拡張による物は呼び出し側(f相当)を限定してしまうので不可です。
あくまで汎用的なコールバックに使える事が前提なので。
一応nested functionで限定的にできる事は判っています。
C++の型拡張による物は呼び出し側(f相当)を限定してしまうので不可です。
あくまで汎用的なコールバックに使える事が前提なので。
一応nested functionで限定的にできる事は判っています。
>>387
その限定というのは、boost::function (もしくはstd::tr1::function)で何とかなるものではない?
その限定というのは、boost::function (もしくはstd::tr1::function)で何とかなるものではない?
GCC4で、できなくなった気もするが
つhttp://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Nested-Functions.html
つhttp://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Nested-Functions.html
Apache C++ Standard Library 4.2.1 released
http://mail-archives.apache.org/mod_mbox/www-announce/200805.mbox/%3c20080502200946.T96786@minotaur.apache.org%3e
http://mail-archives.apache.org/mod_mbox/www-announce/200805.mbox/%3c20080502200946.T96786@minotaur.apache.org%3e
http://gcc.gnu.org/ml/gcc/2008-05/msg00216.html
> GCC 4.2.4 is now available to download from gcc.gnu.org and ftp.gnu.org
> GCC 4.2.4 is now available to download from gcc.gnu.org and ftp.gnu.org
たまに聞く、GCCは4シリーズより3.4とかの方がアプリなどの動きが早いって聞いて入れてみた。
コンパイルが出来ない物が出てきたから一時は諦めたけど、最近C++関連は(sijc,glibmm,cairomm,gtkmmなど)
全部同じコンパイラーじゃないとうまく動かないというのを知ってその辺全部3.4でコンパイル。
使用してみた感じ、コンパイル(-O2のみ)した各アプリの動きが良い。カーネル2.6.25もGCC3.4でコンパイル。
立ち上がりとかも早くなりました。dmesgの左に出る起動時の細かい時間とかも早くなっているのが解る。
GCCの4シリーズなどは、その新機能を生かすソースを書いてあげないとあまり意味が無いんでしょうか・・・
快適なのでとりあえずしばらく3.4メインにしようかな。
コンパイルが出来ない物が出てきたから一時は諦めたけど、最近C++関連は(sijc,glibmm,cairomm,gtkmmなど)
全部同じコンパイラーじゃないとうまく動かないというのを知ってその辺全部3.4でコンパイル。
使用してみた感じ、コンパイル(-O2のみ)した各アプリの動きが良い。カーネル2.6.25もGCC3.4でコンパイル。
立ち上がりとかも早くなりました。dmesgの左に出る起動時の細かい時間とかも早くなっているのが解る。
GCCの4シリーズなどは、その新機能を生かすソースを書いてあげないとあまり意味が無いんでしょうか・・・
快適なのでとりあえずしばらく3.4メインにしようかな。
>>393
気のせいですよ。
気のせいですよ。
アセンブリなんか見るよりアプリケーションベンチ取ればいい。
アセンブリの差はCPU側の処理方法によって優劣付けにくいから。
それにしてもgcc替えてまでやっての感想が「気がします」とは
だんだんオーヲタみたいになってきたな。電源ケーブルを純銅にしたら
電気の流れが速くなってキビキビ動作になりました!と変わらん。
アセンブリの差はCPU側の処理方法によって優劣付けにくいから。
それにしてもgcc替えてまでやっての感想が「気がします」とは
だんだんオーヲタみたいになってきたな。電源ケーブルを純銅にしたら
電気の流れが速くなってキビキビ動作になりました!と変わらん。
>>393
自前コンパイルなら機種依存オプションまで付けろ、と。
自前コンパイルなら機種依存オプションまで付けろ、と。
みんなの評価 : ☆
類似してるかもしれないスレッド
- 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
トップメニューへ / →のくす牧場書庫について