我将静态库的标头“libChild.a”包含到第二个静态库“libParent.a”中,然后将父级的子级链接到我的主应用程序中,但在父级中获取符号的“未定义引用”在 child 中定义。我正在使用 netbeans 7.0 创建两个静态库,然后将 .a 文件复制到 /usr/lib 并将头文件复制到 /usr/include。我使用 netbeans 项目属性将这两个库添加到主项目中。
有趣的是,子库直接在主项目代码中使用,这些引用编译得很好。只有在父静态库中使用子级会导致未定义的引用错误。
一种解决方案是使用“ar”工具合并静态库。不幸的是,这是不切实际的,因为每个版本都有多个版本,并且必须为每个组合单独进行合并,然后每次重新合并在任一版本中进行了更改..
那么,为什么 netbeans 构建在主代码中正确链接对子符号的引用,而不是在静态父库代码中?我怎样才能让它工作?