실험을 위해 ns3에서 새로운 application를 개발하고있다.
개발하다보니 여러개 app이 필요했는데, udp-client, udp-server app을 비롯한 관련 cpp파일과 header파일을 거의 복사해서 myapp 개발에 사용하고있다.
첫번째 myapp은 개발 후 테스트하니 성공적으로 서버와 클라이언트 간의 Tx, Rx가 모두 되었는데 똑같이 복사해서 만든 두번째 myapp2도 함께 install해서 테스트하니 실패했다.
분명 새로만든 helper, model 헤더를 소스파일에 잘 추가했고, wscript파일 등에도 모두 추가했는데..
새로 만든 MyApp이 declare되지 않았다고 떴다,,
여기까지가 문제 배경이고 원인과 해결법은 아래와 같았다.
원인: udp-client-server-helper.h 상단에 #IFNDEF UDP_SERVER_H .. 와 같은 문장이 있었는데 이 부분은 새로 만든 Myapp에 맞게 바꾸지 않았던것이다.
따라서 메인 포함된 소스파일에서 두개 중 한 MyApp이 빌드되는동안 udp-server.h가 추가되고, 두번째 MyApp2가 빌드될 때에는 저 IFNDEF 문장을 만나버려 그냥 MyApp2를 빌드하지않고 ENDIF까지 pass한것.. (IFNDEF문을 만났는데 만약 파라미터가 이미 define되어있다면 ENDIF를 만날때까지 pass해버림.) 그래서 나는 MyApp2는 define되지 않았음에도 udp-server가 있다고해서 넘어가게 된 어이없는 에러였다.
그래서 당연히 두번째 app은 빌드하지 않았기 때문에 main에서 해당 app이 declare되지 않았다고 뜬 것이었다
해결법: 새로만든 MyApp, MyApp2의 helper header file에 #IFNDEF 부분을 수정하니 해결
'ns3' 카테고리의 다른 글
[ns3] SIGSEGV 에러 해결 (segmentation fault) (0) | 2022.08.30 |
---|---|
[ns3] undefined reference to 에러 해결 (0) | 2022.07.26 |
[ns3] PyViz visualizer: not enabled (Python Bindings are needed but not enabled) 문제 해결 (0) | 2022.01.13 |
[ns3] basic installation list (0) | 2022.01.06 |
네트워크 시뮬레이터 ns3 :: 설치부터 구현까지 (0) | 2020.11.16 |