引用INET的OMNeT++项目构建报错找不到-lINET_dbg如何解决
INET项目构建链接错误修复方案
报错核心为链接器找不到debug版本的INET库,完整报错信息如下:
Creating executable: ../out/clang-debug/src/D2DCommunication_dbg /usr/bin/ld: cannot find -lINET_dbg clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [../out/clang-debug/src/D2DCommunication_dbg] Error 1 Makefile:109: recipe for target '../out/clang-debug/src/D2DCommunication_dbg' failed make[1]: Leaving directory '/home/reza/omnetpp/omnetpp-5.6.1/samples/D2DCommunication/src' Makefile:2: recipe for target 'all' failed make: *** [all] Error 2 "make MODE=debug all" terminated with exit code 2. Build might be incomplete. 19:24:15 Build Failed. 5 errors, 2 warnings. (took 6s.698ms)
可按以下步骤修复:
- 编译INET的debug版本
进入INET框架的根目录,执行命令make MODE=debug完成调试版本编译。90%以上的该类报错都是因为仅编译了INET的release版本,缺少libINET_dbg.so调试库文件导致。 - 核对项目的库引用路径
如果已经编译过INET调试版本仍报错,需要检查项目配置:- 若使用OMNeT++ IDE:右键项目选择
Properties,进入OMNeT++->Makemake->选中src目录点击Options,切换到Link页,确认Libraries to link列表中已经添加INET,且Paths页中已正确关联INET的调试输出目录(一般为INET根目录下的out/clang-debug/src) - 若直接使用Makefile:确认Makefile中
LIBS和LDFLAGS变量包含了INET调试库的路径和引用规则
- 若使用OMNeT++ IDE:右键项目选择
- 清理缓存重新构建
回到你的D2DCommunication项目根目录,先执行make clean清理旧的构建产物,再执行make MODE=debug all重新构建即可。 - 临时规避方案
如果不需要调试功能,可直接编译release版本,执行make MODE=release all即可,只要你编译过INET的release版本就能正常链接。
内容的提问来源于stack exchange,提问作者Reza
相关产品推荐
相关产品推荐

