为什么当其他类别存在时,为什么不从其对象文件中使用一种类方法



这可能是一个愚蠢的错误,但我无法修复它。

in:https://github.com/jlettvin/greard-grep文件:gg_state.h/gg_state.cpp从gg_state.o

中不存在"关注"方法
$ nm gg_state.o|grep follow

当它上方的"负载"方法

$ nm gg_state.o|grep load

存在。通过视觉检查,以下方法应出现在gg_state.o。

暂时,在gg.cpp中复制了以下代码并在此编译,但它属于gg_state.cpp。实现该方法的代码位于两个文件的末尾,并且相同。复制定义不会失败,这是第二个指标,即编译器仅在gg_state.cpp中忽略了代码。

该方法的原始名称是搜索的,并更改了名称以避免与C 正则冲突。

该程序适当执行,因为GG.CPP具有所需的代码,但此方法应显示在gg_state.o。

此应用使用G 7.1.0 -STD = C 17在Ubuntu Linux上编译16.04,并需要实验/文件系统和FMT/printf。测试框架是catch.hpp,但测试尚不强大。

为什么以下方法不出现在NM的输出中?

    void
    follow (void* a_pointer, auto a_bytecount, const char* a_label="");

auto参数表示这是缩写的函数模板。在概念之外,对这些事情的支持是GCC扩展。

由于这是一个函数模板,因此关于您可以在何处和不能应用模板应用的通常规则。

最新更新