我正在用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
。
如果有一些完全不同的方法来获得此功能,欢迎提出建议。