# include "Task.h"
#include <boost/config.hpp>
# include <iostream>
# include <string>
# include <snmp_pp/snmp_pp.h>
using namespace std ;
using Snmp_pp::Snmp;
using Snmp_pp::IpAddress;
namespace temp {
class my_plugin_sum: public my_plugin_api
{
private:
public:
my_plugin_sum()
{
cout <<"initiated "<< endl;
}
void initialize()
{
int status;
Snmp snmp(status);
}
void execute()
{
cout << "Hello" << endl;
}
};
extern "C" BOOST_SYMBOL_EXPORT my_plugin_sum plugin;
my_plugin_sum plugin;
}
Task.h
#include <string>
class my_plugin_api {
public:
virtual void execute() = 0;
virtual void initialize() = 0;
virtual ~my_plugin_api() {};
};
main. cpp
# include "Task.h"
# include <boost/dll.hpp>
using namespace boost::dll;
using namespace std;
int main()
{
boost::filesystem::path my_path("/home/deven/Desktop/run_time/build");
boost::shared_ptr<my_plugin_api> my_plugin ;
my_plugin = import<my_plugin_api>( // type of imported symbol is located between `<` and `>`
my_path / "libmy_lib.so", // path to the library and library name
"plugin", // name of the symbol to import
load_mode::append_decorations // makes `libmy_plugin_sum.so` or `my_plugin_sum.dll` from `my_plugin_sum`
);
}
Я не могу инициализировать (snmp) объект внутри (snmp. cpp) конструктор файлов, потому что, когда я пытаюсь получить доступ к .so, используя boost dll, я получаю ошибку. Но когда я разделяю инициализацию и вызываю инициализацию, я получаю ошибку, указанную ниже
. / Main: ошибка поиска символа: /home/deven/Desktop/run_time/build/libmy_lib.so: undefined символ: _ZN7Snmp_pp4SnmpC1ERitb
Почему эта ошибка с символом не может быть понята