PerKins Zhu

Le vent se lève,il faut tenter de vivre.
随笔 - 86, 文章 - 0, 评论 - 45, 阅读 - 21万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

在控制台load模块时提示 127错误:

2025-02-14 13:41:53.340827 96.36% [CRIT] switch_loadable_module.c:1754 Error Loading module D:/myproject/visualCode/freeswitch/x64/Debug/mod/mod_soundtouch.dll **dll sym error [127l] **

 

1、启动debug模式,在 switch_loadable_module.c文件中,找到 SWITCH_DECLARE(switch_status_t) switch_loadable_module_init(switch_bool_t autoload) 函数,在其中打断点,然后执行load命令,逐步跟进查找错误原因。可以通过监视变量获取执行中变量值。

2、 static switch_status_t switch_loadable_module_load_file(char *path, char *filename, switch_bool_t global, switch_loadable_module_t **new_module) 函数也可以作为监控点。

3、module加载逻辑见下图:

 

 

 

对于.CPP 代码加载时发生127错误,如果代码是从.c文件中复制到.cpp文件中,则注意需要在声明宏的时候加入如下导出函数命令:

SWITCH_BEGIN_EXTERN_C
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_soundtouch_shutdown);
SWITCH_MODULE_RUNTIME_FUNCTION(mod_soundtouch_runtime);
SWITCH_MODULE_LOAD_FUNCTION(mod_soundtouch_load);
SWITCH_MODULE_DEFINITION(mod_soundtouch, mod_soundtouch_load, mod_soundtouch_shutdown, NULL);
SWITCH_END_EXTERN_C

否则无法导出   SWITCH_MOD_DECLARE_DATA switch_loadable_module_function_table_t name##_module_interface  函数,加载模块时便找不到   mod_xxxx_module_interface 函数,导致提示127错误。

 

可用 Dependencies 软件打开 mod_xxxx.dll查看生成的dll文件是否有导出该函数:

 

 

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示