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



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

我没有看到-dn或-P在命令或makefile中的任何地方被提供给链接器。链接器从哪里得到这个信息?

通过尝试暂时删除链接命令的每个部分,我发现删除" ,rpath,/usr/local/lib "使事情正常工作。这让我想到我在linux世界的其他地方设置了链接器选项。

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

相关内容

最新更新