小编eli*_*yer的帖子

用于创建库的标头是否必须与使用库的标头相同

在将源代码编译为.o文件并使用"ar rcs libMyLibrarylib.a*.o"来创建库之​​后我得到了段错误,因为我使用的是带有成员变量和私有函数的头文件.当我使用完全相同的标题时,我没有得到错误.删除地图中的指针时会发生段错误.

用于创建lib的头文件

#include <**Type**>
class A
{
   public:
    A();
    ~A(); //In the destructor I iterate through the map to free everything before
    void function();
   private:
    void privateFunction();
    std::map<**Type**, int*> myMap;
}
Run Code Online (Sandbox Code Playgroud)

与编译库一起使用的标头

class A
{
   public:
    A();
    ~A();
    void function();
}
Run Code Online (Sandbox Code Playgroud)

没有使用确切的头文件时是否有切片或其他东西?我想隐藏任何使用lib 的#include of Type.

我有库的单元测试,它不是段错误但它使用与编译它相同的头文件.

c++ static-libraries object-slicing

2
推荐指数
1
解决办法
65
查看次数

标签 统计

c++ ×1

object-slicing ×1

static-libraries ×1