Что я делаю не так?
$ cat libexample.h
class example_class{
public:
example_class(){};
virtual ~example_class(){};
};
extern example_class* example_creator();
$ cat libexample.cpp
using namespace std;
#include <iostream>
#include "libexample.h"
void _init(){
cout << "Library libexample loaded" << endl;
};
void _fini(){
cout << "Library libexample unloaded" << endl;
};
class example_class2 : public example_class
{
public:
example_class2()
{
cout << "Example2's constructor is called" << endl;
}
virtual ~example_class2()
{
cout << "Example2's destructor is called" << endl;
}
};
example_class* example_creator()
{
return new example_class2;
}
$ cat main.cpp
using namespace std;
#include "libexample.h"
int main()
{
example_class *ex = example_creator();
delete ex;
return 0;
}
собираю:
$ g++ -shared -fPIC -nostartfiles -o libexample.so libexample.cpp
$ g++ -o main -L./ -lexample main.cpp
/usr/bin/ld: main: hidden symbol `__dso_handle' in /usr/lib/gcc-lib/i486-linux-gnu/3.3.6/crtbegin.o is referenced by DSO
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [C++] [Жаба] Это магия? (2008)
- Форум Виртуальный метод вызывается из реализации родителя, а не потомка (2014)
- Форум [C++] Перегрузка new и delete в производном классе (2011)
- Форум libdl и обратные ссылки (2017)
- Форум Интересное имя класса после оператора typeid (2004)
- Форум Валится на throw (2005)
- Форум 'this' in lambda and in class method is not the same when using vector of std::thread (2021)
- Форум Ниасилил C++ vector<unique_ptr<T>> list initialization (2016)
- Форум Содержит ли данный код UB? (2018)
- Форум Function template with a template argument. (2013)