C ++ общая библиотека неопределенная ссылка на `FooClass :: SayHello () '
я делаю общую библиотеку C ++ и когда я компилирую основной exe-файл, который использует библиотеку, компилятор дает мне:
main.cpp:(.text+0x21): undefined reference to `FooClass::SayHello()'
collect2: ld returned 1 exit status
Код библиотеки:
fooclass.h
#ifndef __FOOCLASS_H__
#define __FOOCLASS_H__
class FooClass
{
public:
char* SayHello();
};
#endif //__FOOCLASS_H__
fooclass.cpp
#include "fooclass.h"
char* FooClass::SayHello()
{
return "Hello Im a Linux Shared Library";
}
Компилирование с:
g++ -shared -fPIC fooclass.cpp -o libfoo.so
Main: main.cpp
#include "fooclass.h"
#include
using namespace std;
int main(int argc, char const *argv[])
{
FooClass * fooClass = new FooClass();
cout< fooClass->SayHello() < endl;
return 0;
}