1

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 的位置。链接器从哪里获取此信息?

4

1 回答 1

0

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

进一步调查证明我正在设置 LD_LIBRARY_PATH ,其中包含一些导致冲突的链接器选项。更改该 LD_LIBRARY_PATH 后,一切正常。

于 2013-03-21T17:59:18.970 回答