ООП в статической библиотеке
Я не так давно узнал про статические/динамические библиотеки и у меня появился вопрос: Как сделать класс в статической библиотеке?? Я написал следующее для библиотеки:
extern "C"
{
struct Sum
{
int sum(int a, int b)
{
return a + b;
}
};
}
И это для использования:
#include <iostream>
extern "C"
{
struct Sum
{
int sum(int, int);
};
}
int main()
{
Sum sum;
std::cout << sum.sum(1, 1) << std::endl;
return 1;
}
Но это не работает, ошибка линкера: LNK2001: неразрешенный внешний символ "public: int __cdecl Sum::sum(int,int)" (?sum@Sum@@QEAAHHH@Z)
Как можно сделать нормальное ооп в статической библиотеке?