GCC抑制标志

GCC抑制标志,gcc,linker-errors,vxworks,Gcc,Linker Errors,Vxworks,我正试图用我的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 如果我在LinuxGCC上尝试同样的方法,就不会有问题。因此,我猜VxWorks的gcc会

我正试图用我的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
如果我在LinuxGCC上尝试同样的方法,就不会有问题。因此,我猜VxWorks的gcc会自动将-r(或-i,相同,结果相同)标志传递给链接器。有没有办法抑制这种情况

格里茨

马蒂


PS:将其设置为静态并不是一个真正的替代方案…

尝试使用-fPIC单独编译对象文件,然后链接:

gcc -Wall -fPIC -c -o test.o test.c gcc -Wall -shared -o test.so test.o
尝试使用-fPIC单独编译对象文件,然后链接:

gcc -Wall -fPIC -c -o test.o test.c gcc -Wall -shared -o test.so test.o
结果还是一样的。。。仍然在想-r是从哪里来的。libtool似乎是针对linux的。我在VxWorks上需要它。但是thanx的想法是:)jeah,你的变通方法很有效。塔克斯。因为我需要gcc来链接它,因为还有其他参数。例如,我必须包含其他库。您可以继续使用
ld
进行链接。其他库通过Makefile变量传递给gcc,如
LIBS
LDADD
;但gcc只是将它们传递给下面的
ld
。所以您可以直接将这些变量传递给ld。结果仍然是一样的。。。仍然在想-r是从哪里来的。libtool似乎是针对linux的。我在VxWorks上需要它。但是thanx的想法是:)jeah,你的变通方法很有效。塔克斯。因为我需要gcc来链接它,因为还有其他参数。例如,我必须包含其他库。您可以继续使用
ld
进行链接。其他库通过Makefile变量传递给gcc,如
LIBS
LDADD
;但gcc只是将它们传递给下面的
ld
。所以您可以直接将这些变量传递给ld。什么是。/gcc?它是一个shell脚本,您可以查看它并创建它的编辑副本来删除-r吗?是的,它是一个shell脚本。但是里面没有-r或-i。我刚刚添加了-B(二进制文件)和-I(包含)路径。如果我直接调用gcc,它不会改变任何事情。什么是。/gcc?它是一个shell脚本,您可以查看它并创建它的编辑副本来删除-r吗?是的,它是一个shell脚本。但是里面没有-r或-i。我刚刚添加了-B(二进制文件)和-I(包含)路径。如果我直接给gcc打电话,它不会改变任何事情。