1

gccで共有ライブラリを作成しようとしています。これはvxworksのgccです(おそらく問題です...)。

私はgccを次のように使用します:

./gcc -shared -B/path/to/gnutools/bin -o test.so test.c

結果:

/path/to/ld: -r and -shared may not be used together 
collect2: ld returned 1 exit status

Linux gccで同じことを試してみれば、問題はありません。したがって、VxWorksのgccは自動的に-r(または-i、これは同じで同じ結果になります)フラグをリンカーに渡すと思います。これを抑制する方法はありますか?

グリーツ

マーティ

PS:それを静的にすることは実際には代替手段ではありません...

4

1 に答える 1

1

-fPICを使用してオブジェクトファイルを個別にコンパイルしてから、リンクしてみてください。

    gcc -Wall -fPIC -c -o test.o test.c
    gcc -Wall -shared -o test.so test.o

もう1つの提案は、libtoolを使用することです(少なくとも正しいフラグを把握するため)。

回避策は、次のコマンドを直接使用することldです。

    ld -shared -o test.so test.o -lc
于 2012-05-21T14:08:33.927 に答える