添加自己编写的模块到ns-3中出现undefined reference to问题的解决

避坑指南:ns-3.43在Ubuntu 24.04上编译失败的常见原因及解决方案 本文详细解析了在Ubuntu 24.04上编译ns-3.43时常见的失败原因及解决方案,包括系统环境与依赖问题、关键依赖包缺失、构建参数与权限问题等。通过提供具体的命令和步骤,帮助用户顺利完成ns-3.43的编译和配置,避免常见的陷阱和错误。 阅读详情
添加自己编写的模块到ns-3中出现undefined reference to问题的解决

向ns-3添加一个vanet模块,其中一个例子,在examples目录下, vanet-highway-test.cc

编译的时候,出现问题:

[1634/1751] cxx_link: build/debug/src/vanet/examples/vanet-highway-test_1.o -> build/debug/src/vanet/examples/vanet-highway-test
debug/src/vanet/examples/vanet-highway-test_1.o: In function `Start':
/home/gpf/repos/ns-3-allinone/ns-3-dev/build/../src/vanet/examples/vanet-highway-test.cc:50: undefined reference to `ns3::Highway::Start()'
debug/src/vanet/examples/vanet-highway-test_1.o: In function `Stop':
/home/gpf/repos/ns-3-allinone/ns-3-dev/build/../src/vanet/examples/vanet-highway-test.cc:55: undefined reference to `ns3::Highway::Stop()'
debug/src/vanet/examples/vanet-highway-test_1.o: In function `main':
/home/gpf/repos/ns-3-allinone/ns-3-dev/build/../src/vanet/examples/vanet-highway-test.cc:164: undefined reference to `ns3::Controller::SetHighway(ns3::Ptr<ns3::Highway>)'


这个问题,困扰了我一天多时间,不停地查资料,不停地修改。
因为在 vanet-highway-test.cc 中,已经包含了
#include "ns3/highway.h"
#include "ns3/controller.h"
也就是说,已经包含了ns3::Highway和ns3::Controller这两个类,理论上讲,不存在未定义问题。

后来,不断在网上查询,不断地找方法,终于找到了问题来源。
问题在于examples目录下wscript文件中,没有包含 ns3::Highway和ns3::Controller 所有的模块。

旧wscript为:
def build(bld):
    if not bld.env['ENABLE_EXAMPLES']:
        return;

    obj = bld.create_ns3_program('vanet-highway-test',
        ['core', 'mobility', 'network', 'wifi'])
    obj.source = 'vanet-highway-test.cc'

修改 obj = bld.create_ns3_program 中,添加了 自己编写的组件名 vanet
改正为:
def build(bld):
    if not bld.env['ENABLE_EXAMPLES']:
        return;

    obj = bld.create_ns3_program('vanet-highway-test',
        ['core', 'mobility', 'network', 'wifi', 'vanet'])
    obj.source = 'vanet-highway-test.cc'
 

其中  bld.create_ns3_program为编译程序, vanet-highway-test 为编译后的程序名。  
后面的 core,mobility,network,wifi,vanet为本程序所要信赖的组件。

改正后,问题解决。






在嵌入式Linux上搞定Speexdsp:从交叉编译到实时音频降噪的完整流程 本文详细介绍了在嵌入式Linux系统中实现SpeexDSP音频降噪的完整流程,包括交叉编译工具链配置、SpeexDSP定制化编译、实时音频流水线集成及性能优化。通过实战案例展示如何利用SpeexDSP的轻量级特性实现高效的实时音频降噪,特别适合工业环境中的语音交互应用。 阅读详情

相关推荐

RDM协议控制端实战:从数据包构造到高效设备发现算法

本文深入探讨了RDM协议控制端的核心开发流程,涵盖从数据包构造、发送到响应解析的全过程。重点解析了如何利用二分搜寻算法高效实现网络设备发现,并分享了组包、解包中的关键代码实现与常见调试技巧,为舞台灯光与智能硬件领域的嵌入式开发提供实战指导。

week9的博客 457

undefined reference to错误的解决方法

陈运文 Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错,这里总结一些可能的原因和解决方案,给需要的朋友: 说道undefined reference error,先提一下Linux gcc链接规则: 链接的时候查找顺序是: -L 指定的路径, 从左到右依次查找 由 环境变量 LIBRARY_PATH 指定

优快云 30万+

glibc手动升级高版本导致系统(RedHat/Centos)异常(无法开机等)的解决方法(回退低版本glibc)

我的系统是Redhat7.6, 理论上Redhat7/Centos7都可以使用该方法解决问题。 首先慎重提醒各位:glibc升级会产生无法预料的后果!由于Android NDK需要高版本的glibc才可以使用,所以作死手动去更新了glibc2.18,使得重启系统后图形界面消失。(Redhat/Centos升级此类安装包最好用yum升级,因为系统内的程序对他们的依赖很大,升级会导致大部分程序无法使用...

weixin_42881528的博客 9698

ns3-create your own module

 I need compile some C code to in my self defined module. And my code use malloc function.But I always got this error, undefined symbol `malloc’ relocation R_X86_64_PC32 against undefined symbol `m...

u010643777的专栏 447

智能解决装箱问题:使用优化算法实现高效包装

装箱问题(Bin Packing Problem)是组合优化领域中的一个经典问题,主要涉及如何将一系列对象高效地装入有限数量的容器(或“箱”)中,同时满足特定的约束条件。这个问题的目标是最小化所需使用的箱子数量或者最大化箱子的装载效率,以减少空间或资源的浪费。

MindOpt_003的博客 5549

用PyCharm+Scrapy打造你的第一个爬虫:从安装到实战(附完整代码)

本文详细介绍了如何使用PyCharm和Scrapy框架从零开始构建高效网络爬虫。通过环境配置、项目创建、核心爬虫逻辑编写到数据处理与存储的完整流程,帮助Python开发者快速掌握爬虫开发技巧,并附有实战代码示例。特别适合想要学习Scrapy框架和提升爬虫技能的开发者。

weixin_29038345的博客 868

“undefined reference to“ 问题汇总及解决方法

编写测试代码如下:// test.h#endif// test.c{}// main.c{}先将test.c编译成库文件。将main.c编译成可执行文件。链接出错了,原因很简单,test()这个函数的声明和定义不一致导致,将两者更改成一样即可通过编译。

zhanglidn013的专栏 3万+

Typora绘制思维导图

我们观察一下,其实思维导图就是树状结构的数据嘛,作为程序员,拿语言写树状结构的数据是很平常的事情。而且写代码可比画图省事多了,查阅资料可以知道,有一种`mermaid`语法,就是做这件事情的,支持 UML,甘特图,流程图等。

Peter Cheung的博客 7933

springBoot 单元测试TEST

@SpringBootTest注解无法加载src/main/resources目录下资源文件 解决办法参考: https://blog.youkuaiyun.com/wangpailiulanqi8/article/details/100764863 根据参考文章实践效果: 1、在pom.xml增加testResources是可行,可以只拷贝下面的testResources部分就可以。 <build> <finalName>id-web-activity-root</fin

技术摸索和实践者 813

微前端实战:MicroApp内存泄漏优化策略与性能调优

本文分享了在大型后台管理系统微前端化过程中,使用MicroApp框架时遇到的内存泄漏实战问题与优化策略。通过深入分析沙箱机制,提出动态加载、精准卸载、沙箱配置优化及第三方库补丁等核心方案,并结合Vue/React子应用专项检查清单,有效解决了内存占用飙升问题,为微前端架构的性能调优提供了系统性解决方案。

weixin_29014939的博客 282

从零搭建企业网络:使用Packet Tracer模拟多区域OSPF组网全过程

本文通过Cisco Packet Tracer模拟,详细演示了从零搭建一个典型企业多区域OSPF网络的完整流程。内容涵盖网络拓扑规划、IP地址设计、多区域划分原理,并提供了从设备初始化、接口配置到OSPF多区域核心配置与验证的详细步骤。文章旨在帮助网络学习者与IT支持人员通过动手实验,将理论知识转化为实际的配置与排障能力。

day7的博客 1031

“undefined reference to XXX“问题分析及解决方法总结

所有linux下 C编译 "undefined reference to XXX"问题总结

迈微AI研习社 · 号主 8万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

NS3配置python-binding报错undefined reference to `ffi_type_pointer

分析问题原因(经高人指导),是缺少libffi库,编译选项里面需要给这些函数的链接 -L路径 -l库名,有一些函数找不到。可以先看看生成的makefile,里面有没有-lffi,如果有的话,再查查动态库的版本。经检查,NS3的makefile里面没有ffi相关的关键字,但是后半句给问题的解决带来了启发。在通过如下指令配置NS3的python绑定时。4. 回到ns3文件夹下,重新进行绑定操作。*非原创,出处见文末参考文献。,如果有解决方案请告知。

失去理想的环的博客 703

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

undefined reference to `vtable for MyAgent' 问题

<br />在NS2中添加新的协议或者应用时,编译时出现“undefined reference to `vtable for MyAgent'”错误。一般是由于在类体声明了虚函数,而没有实现函数的代码所致

jianwushuang的专栏 1016

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

quic-ns-3 安装配置过程【存档】

导师的一个研究和quic协议相关,让我安装这个仿真工具,整个过程花费了很多功夫,虚拟机都重装了好几次,分享一下过程步骤与出现问题。 参考链接 ns-3 教程 —— 入门 仿真工具NS3的基本知识 ns-3介绍与安装 官网 github 地址:https://github.com/signetlabdei/quic-ns-3 src/quic 链接https://github.com/signetlabdei/quic-ns-3/tree/master/src/quic 要使用这个模块运行模拟,您需要安装

weixin_44373409的博客 2230

NS2:undefined reference to `xxx' collect2: error: ld returned 1 exit status

这个问题是没有链接。刚开始先确认,头文件有没有导入。以下是完整的提示信息错误,检查之后发现hdr_ant_pkt所在的头文件已经被导入; In function `hdr_ant_pkt::access(Packet const*)': cmu-trace.cc:(.text._ZN11hdr_ant_pkt6accessEPK6Packet[_ZN11hdr_ant_pkt6accessEPK6...

ljm1995的博客 1320

Qt 数据库编程出现 :error: undefined reference to

QT Creator编译程序出现以下错误: ytep_db_database.o: In function ZN16YTEP_DB_DataBaseC2Ev': ytep_db_database.cpp:11: undefined reference to_imp___ZN12QSqlDatabaseC1Ev’ ytep_db_database.o: In function ZN16YTEP_DB...

2709

undefined reference to `std::filesystem

在gcc8.3中使用filesystem,没想到编译加了-std=c++17还是报错。c++真是博大精深!

yuanlulu的博客 6785

undefined reference to `ns3::AnimationInterface::AnimationInterface(std::__cxx11::basic_版本ns3.40

在NS3-gym中添加动画功能时出现链接错误,提示AnimationInterface相关函数未定义。排查发现CMakeLists文件中缺少libnetanim库链接。通过对比常规动画示例的CMakeLists配置,确认需在LIBRARIES_TO_LINK中添加${libnetanim}库即可解决该问题。该错误属于典型的链接阶段库缺失问题,而非头文件引用问题。

Mr_liu_666的博客 173

ld 链接生成 so时报错: undefined reference to '__dso_handle'

问题贴图,附上遇到的情况 ld -shared -o liba.so a.o -L ./lib/zmq -L /usr/lib/x86_64-linux-gnu/ -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_objdetect -lopencv_calib3d -lzmq -lstdc++ -lrt -ldl -lpthre...

huangjiazhi_的博客 4981

undefined reference to `__umoddi3'解决办法

主机配置:ubuntu 11.10下利用交叉编译工具arm-linux-gcc编译内核; 目标板:AT91SAM9260 内核版本:linux-2.6.24 在编译内核linux-2.6.24的过程中遇到错误: kernel/built-in.o: In function `getnstimeofday': utsname_sysctl.c:(.text+0x23c64): ...

weixin_30622181的博客 763

NS3使用netanim时一种报错的处理

NS3使用netanim时一种报错的处理 在使用netanim时:先完成了这两步: 加入头文件:#include “ns3/netanim-module.h” 在simulator run之前加入:AnimationInterface anim(“XXX.xml”) 然后产生了如下错误: 对‘ns3::AnimationInterface::~AnimationInterface()’未定义的引用 解决办法如下图: 在脚本所在目录的wscript脚本中,找到脚本的名字,在obj中加入“netanim”,就可

marceauan的博客 1275

ns-3进阶:如何正确选择并切换5G-LENA版本分支,避免构建失败

本文深入探讨了在ns-3仿真平台中正确选择和切换5G-LENA版本分支的方法,以避免常见的构建失败问题。通过解析5G-LENA与ns-3核心的版本依赖关系,提供分支切换的最佳实践和构建失败诊断技巧,帮助开发者高效完成5G新空口(NR)技术的仿真配置。

chushang0934的博客 476

Ubuntu 20.04安装NS-3 3.36全攻略:从依赖配置到避坑指南

网络仿真是计算机网络研究、协议开发和系统性能评估的重要技术手段,通过在可控环境中模拟真实网络行为,帮助工程师和研究人员验证设计、分析性能。其核心原理是构建虚拟网络拓扑,模拟节点、链路、协议栈和数据流交互过程。在众多仿真工具中,NS-3因其开源、模块化、高扩展性和对现代网络协议的广泛支持,成为学术和工业界的主流选择。对于需要在稳定生产环境(如广泛使用的Ubuntu 20.04 LTS)中部署最新研究工具的场景,安装新版本NS-3常面临依赖库版本冲突、构建系统配置等挑战。本文聚焦于解决在Ubuntu 20.04

weixin_30887919的博客 359

保姆级教程:在ns-3.37中集成5G-LENA模块,开启你的5G NR网络仿真之旅

本文提供了一份详尽的ns-3.37与5G-LENA模块集成指南,帮助用户快速搭建5G NR网络仿真环境。从基础环境配置、源代码获取到编译验证,逐步讲解如何实现5G New Radio仿真,特别适合网络通信研究人员和工程师参考实践。

chushang0934的博客 439
上一篇: 在vim中替换^M
下一篇: Do not include ns3 module aggregator headers from other modules; these are meant only for end user s
海淼
博客等级 码龄18年 164粉丝 29原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值