为什么在 GCC 中链接库的顺序有时候会导致错误?
基本上这种错误起源于编译阶段的链接器。链接器的默认行为是在当前程序需要时从归档库中获取代码。
为了正常工作,库必须按顺序存在。可以说它必须以“调用者在被调用者之前”的形式存在。这个问题可以通过使用标志选择非默认行为来解决,但在此过程中,链接可能需要更长的时间。否则,可以通过正确排序库来解决。加载器和 tsort 这两个可以帮助重新排列和纠正排序。
广告
基本上这种错误起源于编译阶段的链接器。链接器的默认行为是在当前程序需要时从归档库中获取代码。
为了正常工作,库必须按顺序存在。可以说它必须以“调用者在被调用者之前”的形式存在。这个问题可以通过使用标志选择非默认行为来解决,但在此过程中,链接可能需要更长的时间。否则,可以通过正确排序库来解决。加载器和 tsort 这两个可以帮助重新排列和纠正排序。