c/c++语言开发共享C pluginsystem:符号查找错误

我正在编写一个插件系统,它与其他3个模块分开:

plugin_interface.h只包含类型和函数:

extern int plugin_register(PluginManager *plug_manager, const char *name, Plugin *plug); 

这是在plugin_system.c中定义的

加载插件时,插件系统会查找函数init_plugname()并调用它,该函数必须调用plugin_register来注册插件。

该程序使用复杂的递归Makefile编译(不是最好的主意),但我尝试实现的是:

我在主程序文件夹中编译插件系统对象,然后将其与主程序链接。 从make执行:

 gcc -Wall -O2 -std=gnu99 -D DEBUG -g -fPIC -c -o /home/kowa/code/reseaux/projet/ringo/c/bin/list.o list.c gcc -Wall -O2 -std=gnu99 -D DEBUG -g -fPIC -c -o /home/kowa/code/reseaux/projet/ringo/c/bin/plugin_system.o plugin_system.c 

插件使用gcc -fPIC -c -o plugname.o plugname.c plug_system.o编译,然后是gcc -o plugname.so plugname.o plug_system.o -shared

我尝试在我的主程序中加载插件并得到此错误:

 symbol lookup error: ./plugins/zyva.so: undefined symbol: exists 

existsplugin_system模块用来存储插件的list模块中的一个函数, plugin_register提到的plugin_register函数调用它。

我之前从未做过那种系统而且我不是共享库的专家,我想问题来自于我如何编译整个项目,我可能会错过一些联系……

    我只是忘了将插件链接到plugin_system.o使用的list.o

      以上就是c/c++开发分享C pluginsystem:符号查找错误相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/519589.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐