【问题标题】:gcc Link Order issuegcc 链接顺序问题
【发布时间】:2013-10-22 02:42:12
【问题描述】:

我目前在编译以下行时遇到问题:

gcc test.c -I/usr/include -L/lib -lipc -lpcd -lrt -o /home/examples/bin/test

有人建议我使用 start-group 和 end-group 对它们进行分组。

我无法获得正确的语法。

我想我需要这部分,但整条线是什么样子的?

-Wl,--start-group -lipc -lpcd -lrt -Wl,--end-group

【问题讨论】:

  • 我不确定,但我认为你必须将它作为一个大参数传递给链接器 -Wl,--start-group,-lipc,-lpcd,-lrt,--端组
  • gcc test.c -I/usr/include -L/lib -Wl,--start-group -lipc -lpcd -lrt -Wl,--end-group -o /home/examples /bin/test 像这样?它不起作用
  • “它不起作用”是一个极其不精确的问题描述。如果您对所发生的事情提供了更好的解释,您可能会得到更好的建议。 (例如,如果有错误消息,请逐字引用。或者描述发生了什么:“当我执行该命令时,监视器崩溃了。”)
  • 我收到与最初相同的错误消息。这是对我确定已定义的函数的未定义引用。
  • X是如何定义的?它是 C 函数还是 C++ 函数?

标签: c linux gcc linker


【解决方案1】:

你遇到了什么问题?

无论如何,尝试将链接器参数放在最后:

gcc test.c -o /home/examples/bin/test -I/usr/include -L/lib -lipc -lpcd -lrt

【讨论】:

  • 我得到一个未定义的引用,如下所示:/lib/libpcd.so: undefined reference to 'X'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多