有没有办法从标题推断出链接标志?

时间:2010-07-29 19:37:25

标签: c++ c header include linker

假设我知道我的一些C / CPP文件包含某些标题 - 除了猜测之外,是否有任何可靠的信息来说明我必须链接哪些库?

例如,如果我有类似

的内容
#include "foo.h"

并想找到

libfoo_abcdef_123.so

有没有“最佳实践”如何做到这一点,在哪里可以看?

3 个答案:

答案 0 :(得分:6)

尽管其他答案在这里说 - 不,没有。库可以(有时确实)重新定义相同的函数,唯一可以尝试解决此类冲突的是链接器,它知道有关头文件的zip。

答案 1 :(得分:1)

这不适用于所有内容,但如果您使用自己的标头(例如,在模块化程序中),则可以在标头中包含库名称。

这在Visual Studio中特别方便,您可以在库标题中#pragma comment(lib, "thismodule.lib"),包括库的代码永远不必担心。在其他平台/编译器上,您可能会发现类似的命令。

但是,任何优秀的第三方图书馆都应该有关于包含哪些内容的说明。

答案 2 :(得分:1)

  

假设我知道我的一些C / CPP文件包含某些标题 -   有没有可靠的信息   我将需要哪些图书馆   链接,除了猜测?

不是真的,但您通常会在文档中找到您正在使用的函数/类的信息。