C++ 使用调试符号编译需要其他库吗?

C++ 使用调试符号编译需要其他库吗?,c++,solaris,debug-symbols,sunstudio,C++,Solaris,Debug Symbols,Sunstudio,我有一个奇怪的问题:当使用-g构建对象文件时,链接器突然抱怨libbar中缺少符号,我的工具通过libfoo间接依赖它。如果没有-g,则不会发生这种情况 这些符号似乎来自libfoo中的默认参数,这些函数是libbar中的对象。但是,我的工具不使用这些函数 我想知道调试构建是如何导致这种额外的依赖性的——是否可能为所有符号生成这些调试符号,而不仅仅是我使用的符号,并且对于这些调试符号,还需要默认参数 这是Solaris上的Sun Studio 5.10。也许您还添加了一些定义,如调试或类似的内容

我有一个奇怪的问题:当使用
-g
构建对象文件时,链接器突然抱怨
libbar
中缺少符号,我的工具通过
libfoo
间接依赖它。如果没有
-g
,则不会发生这种情况

这些符号似乎来自
libfoo
中的默认参数,这些函数是
libbar
中的对象。但是,我的工具不使用这些函数

我想知道调试构建是如何导致这种额外的依赖性的——是否可能为所有符号生成这些调试符号,而不仅仅是我使用的符号,并且对于这些调试符号,还需要默认参数


这是Solaris上的Sun Studio 5.10。

也许您还添加了一些定义,如调试或类似的内容。这些定义可能会使用其他库(例如,不同的日志库)中的一些额外符号。如果您给出一个简短的示例,它也可能会有所帮助,可能您还添加了一些定义,如DEBUG或类似的内容。这些定义可能会使用其他库(例如,不同的日志库)中的一些额外符号。如果您给出一个简短的示例,它也可能会有所帮助

否,代码不使用调试或其他预处理器魔法。事实上,我们的构建系统甚至没有为非调试构建设置NDEBUG。不,代码没有使用调试或其他预处理器魔法。事实上,我们的构建系统甚至没有为非调试构建设置NDEBUG。您在C中使用内联函数吗?您在C中使用内联函数吗?