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

另一个建议是使用 libtool (至少要找出正确的标志)。

一种解决方法可能是直接使用ld

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