ld: unrecognized option '--hash-style=both'
gcc -Wl,-Map=contiki.map,-export-dynamic testv6.co obj_linux-native/socketdev_listener.o \
contiki-linux-native.a -o testv6.linux-native
/usr/local/bin/ld: unrecognized option '--hash-style=both'
/usr/local/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
If you look closely, the error is something related to the local gcc not using the host's linker (ld).$ which gcc
/usr/bin/gcc$ which ld
/usr/local/bin/ld
For some reason, I messed my compiler path. To synchronized gcc to use the host's dynamic linker (i.e. /usr/bin/ld), set the environment variable COMPILER_PATH to /usr/bin.$ export COMPILER_PATH=/usr/bin
$ echo $COMPILER_PATH
/usr/bin
$ gcc -print-prog-name=ld
/usr/bin/ld
9 comments:
it worked for me
Thanks
Thanks. It worked, but I have to do it every time I open a new terminal. Otherwise, the old error just kicks in. Is there a way to fix that?
Just do the assignment of COMPILER_PATH in your bash profile or system-wide /etc/profile
Thank you. I did what you said. After that, whenever I enter the command $gcc -print-prog-name=ld, the output become "ld" instead of "/usr/bin/ld", and I still get the same error message when I use the GCC compiler.
I'm running a Linux Redhat 2.6.
What is the output of `echo $COMPILER_PATH`?
The output is /usr/bin.
Also, I just found two problems with my system.
First, my error message is actually different from yours:
/usr/local/bin/ld: unrecognized option '--hash-style=gnu'
/usr/local/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
Second, changing bashrc or profile in my computer doesn't seem to have any effect at all. I appended a new directory to PATH. The echo output shows the correct PATH (the changed one), but when I'm executing a command, bash will not search the appended directory.
Also, I just found two problems with my system.
First, my error message is actually different from yours:
/usr/local/bin/ld: unrecognized option '--hash-style=gnu'
/usr/local/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
Second, changing bashrc or profile in my computer doesn't seem to have any effect at all. I appended a new directory to PATH. The echo output shows the correct PATH (the changed one), but when I'm executing a command, bash will not search the appended directory.
Sorry my bad. Changing path works.
But the first problem still exists.
Post a Comment