链接选项不兼容 - 不要在命令中的任何位置查看选项

时间:2013-03-20 16:44:21

标签: linux linker g++

g++ -Wl,-rpath,/usr/local/lib -o /path-to/executable {list of .o files} -L/usr/X11R6/lib -L/usr/local/lib -lQtGui -L/usr/local/lib -L/usr/openwin/lib -lSM -lICE -lXext -lX11 -lresolv -lsocket -lnsl -lQtCore -lm -lrt -ldl -lpthread

我使用上面的命令编译可执行文件。实际上,makefile正在为我做这件事......但无论如何。

我使用上述命令收到错误:

ld: fatal: option -dn and -P are incompatible
ld: fatal: Flags processing errors

我不知道在命令或makefile中的任何位置向链接器提供-dn或-P的位置。链接器在哪里获取此信息?

1 个答案:

答案 0 :(得分:0)

通过尝试临时删除链接命令的每个部分,我发现删除“,rpath,/usr/local/lib”使得该工作正常。这让我觉得我在linux世界的其他地方设置了链接器选项。

进一步调查证明我正在设置LD_LIBRARY_PATH,其中包含一些导致冲突的链接器选项。在更改了LD_LIBRARY_PATH之后,事情就像它们应该有的一样。