ライブラリ(GCC 4.4.4-14 ubuntu 5.1)でacインターフェースをコンパイルしています。これは基本的に次のようになります
ヘッダ
extern "C"
{
int foo()
}
実装
int foo()
{}
int bar() __attribute__((alias ("foo")));
これは正常にコンパイルされますが、共有オブジェクトをテスト アプリケーションにリンクし、bar() を呼び出してみると、関数が認識されません。
エイリアス行を実装からヘッダーに移動しようとしたところ、コンパイラ エラーが発生しました。
bar() aliased to undefined symbol foo
エイリアスをヘッダーに移動すると、このエラーが発生するのはなぜですか? どうすればそれをすべて機能させることができますか?