在将源代码编译为 .o 文件并使用“ar rcs libMyLibrarylib.a *.o”创建库后,我遇到了段错误,因为我使用的是带有成员变量和私有函数的头文件。当我使用完全相同的标题时,我没有得到错误。删除地图中的指针时会发生段错误。
用于创建库的标头
#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;
}
与编译库一起使用的头文件
class A
{
public:
A();
~A();
void function();
}
不使用确切的头文件时是否有切片或其他东西?我想对使用该库的任何人隐藏类型的#include。
我对该库进行了单元测试,它没有段错误,但它使用与编译它相同的头文件。