SoonyangZhang / webrtc-gcc-ns3

evaluate gcc congestion contorl on ns3
Apache License 2.0
29 stars 15 forks source link

./waf configure时遇到问题 #3

Closed matthewyuhb closed 1 year ago

matthewyuhb commented 2 years ago

我在试图将alphaRTC-gym的项目从docker中迁移出来,一直在对照着那个项目的makefile文件和当前的项目,感觉流程应该差不多。我将alphaRTC的项目编译了一遍并且将环境变量设置为了export ALPHARTC_DIR=/home/parallels/Desktop/AlphaRTC(对应于该项目的webrtc),但是我在./waf configure的时候遇到了这个问题,请问您大概知道这是什么原因吗?

`['/usr/bin/clang++', 'test.cpp.1.o', '-o/home/parallels/Desktop/ns-3-dev/build/.conf_check_a38dac6ff3dc5eed625cb745bf210f44/testbuild/testprog', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-L/home/parallels/Desktop/AlphaRTC/out/Default/obj', '-lwebrtc', '-ldl', '-lzmq'] err: /usr/bin/ld: 找不到 -lwebrtc clang: error: linker command failed with exit code 1 (use -v to see invocation)

from /home/parallels/Desktop/ns-3-dev/src/ex-webrtc: Test does not build: Traceback (most recent call last): File "/home/parallels/Desktop/ns-3-dev/.waf3-2.0.18-ff4ae9f5cc05353d3dc3aeff8854ae69/waflib/Configure.py", line 333, in run_build bld.compile() File "/home/parallels/Desktop/ns-3-dev/.waf3-2.0.18-ff4ae9f5cc05353d3dc3aeff8854ae69/waflib/Build.py", line 176, in compile raise Errors.BuildError(self.producer.error) waflib.Errors.BuildError: Build failed -> task in 'testprog' failed with exit status 1 (run with -v to display more information)

not found from /home/parallels/Desktop/ns-3-dev/src/ex-webrtc: The configuration failed`

SoonyangZhang commented 2 years ago

先把ALPHARTC https://github.com/OpenNetLab/AlphaRTC/tree/26a537041b37ece816c51d36814a1264b93cd51a 编译,需要得到libwebrtc.a的静态库。

matthewyuhb commented 2 years ago

好的,万分感谢! 我现在试图改动alphaRTC的代码,希望加入webrtc-gcc-ns3项目中trace bandwidth的功能(想做个测试,方便后续改动),我在alphaRTC的call.h和call.c文件中加入了了last_bandwidth_bps()函数,并希望能够在webrtc_sender.cc对该方法进行调用

image

因为我的webrtc版本是alphaRTC版本所基于的webRTC默认版本而不是此项目中的m84,所以路径好像也有点不一样,但是我把last_bandwidth_bps()方法加入后libwebrtc.a的静态库依旧是可以成功编译的。

image

然后我在ns3中的webrtc_sender.cc文件中加入了相应的调用last_bandwidth_bps()方法的代码后,可以成功build。 但是在运行中却会出现这样的问题

image

P.S.我发现即使在webrtc_sender.cc中不调用last_bandwidth_bps()方法依旧会存在这样的运行时报错的问题。

因为后面的改动也可能会涉及alphaRTC项目的改动,但该项目的代码之间的依赖关系蛮复杂我目前还不算特别清楚,所以想通过对这个功能的实现测试一下操作的步骤。想向您请教一下我的上述修改步骤存在问题吗?

SoonyangZhang commented 2 years ago

这不是你增加函数的问题,alphaRTC中代码有段错误吧。你可以使用gdb调试,打印下调用栈(bt),定位下问题。