Я пишу библиотеку плагинов на C ++ и мне нужно вызвать удаленную функцию, которая не определена (только объявлена) во время компиляции программы хоста.
Мне нужна хост-программа для вызова функции в программе плагина, но мне также нужна гибкость, чтобы компилировать хост-программу за один раз, а программу плагина позже и заставить хост запускать удаленную функцию из плагина.
Вот базовая реализация моего решения:
Я сделал эти 3 файла:
host.cpp:
#include "plug.h"
int main() {
cout<<"Hello World!"<<endl;
remoteFunction();
return 0;
}
plug.cpp:
#include "plug.h"
void remoteFunction() {
cout<<"in Remote"<<endl;
return;
}
plug.h:
void remoteFunction(void);
Потом я скомпилировал plug.cpp
с помощью g++ -c plug.cpp
чтобы генерировать plug.o
,
Теперь я могу использовать g++ host.cpp -o executable plug.o
чтобы получить один исполняемый файл, который работает нормально. Но так мне нужно полностью определить функцию удаленного доступа заранее. Как я могу получить host.cpp
компилировать без компиляции plug.cpp
первый.
Если есть несколько разных способов получить эту функциональность, предложения приветствуются.
Задача ещё не решена.
Других решений пока нет …