tkn-tub / ns3-gym

ns3-gym - The Playground for Reinforcement Learning in Networking Research
GNU General Public License v2.0
514 stars 196 forks source link

Errors during ./ns3 build procedure #67

Closed sv1ple closed 1 year ago

sv1ple commented 1 year ago

Hi all,

I am using ns3-36.1 and ns3-gym app-ns-3.36+ versions. The build procedure fails, probably due to errors starting from intereference-pattern/mygym.cc. You can see the full error and build log below.

Are there any insights on this issue?

Many thanks.

[ 69%] Building CXX object examples/wireless/CMakeFiles/wifi-simple-adhoc-grid.dir/wifi-simple-adhoc-grid.cc.o
[ 69%] Linking CXX executable ../../../build/examples/wireless/ns3.36.1-wifi-ofdm-vht-validation-default
Scanning dependencies of target libapplications
[ 69%] Linking CXX shared library ../../../build/lib/libns3.36.1-applications-default.so
Scanning dependencies of target libflow-monitor
[ 69%] Linking CXX shared library ../../../build/lib/libns3.36.1-flow-monitor-default.so
[ 69%] Linking CXX executable ../../../build/examples/wireless/ns3.36.1-wifi-simple-adhoc-default
Scanning dependencies of target libpoint-to-point-layout
[ 69%] Linking CXX shared library ../../../build/lib/libns3.36.1-point-to-point-layout-default.so
[ 69%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/power-rate-adaptation-test.cc.o
Scanning dependencies of target linear-mesh-2
[ 70%] Building CXX object contrib/opengym/examples/CMakeFiles/linear-mesh-2.dir/linear-mesh-2/sim.cc.o
[ 70%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv4-test.cc.o
[ 70%] Linking CXX executable ../../../build/examples/wireless/ns3.36.1-wifi-simple-adhoc-grid-default
Scanning dependencies of target linear-mesh
[ 70%] Building CXX object contrib/opengym/examples/CMakeFiles/linear-mesh.dir/linear-mesh/sim.cc.o
[ 70%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/spectrum-wifi-phy-test.cc.o
[ 70%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-address-duplication-test.cc.o
[ 70%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/tx-duration-test.cc.o
[ 70%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-address-generator-test-suite.cc.o
[ 70%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-address-helper-test-suite.cc.o
[ 70%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-aggregation-test.cc.o
[ 70%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-dual-stack-test-suite.cc.o
[ 70%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-extension-header-test-suite.cc.o
[ 70%] Building CXX object contrib/opengym/examples/CMakeFiles/linear-mesh-2.dir/linear-mesh-2/mygym.cc.o
[ 70%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-error-rate-models-test.cc.o
[ 70%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-forwarding-test.cc.o
[ 70%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-mac-ofdma-test.cc.o
[ 70%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-fragmentation-test.cc.o
[ 70%] Linking CXX executable ../../../../build/contrib/opengym/examples/ns3.36.1-linear-mesh-2-default
[ 70%] Linking CXX executable ../../../../build/contrib/opengym/examples/ns3.36.1-linear-mesh-default
Scanning dependencies of target interference-pattern
[ 70%] Building CXX object contrib/opengym/examples/CMakeFiles/interference-pattern.dir/interference-pattern/mygym.cc.o
Scanning dependencies of target libaodv
[ 70%] Linking CXX shared library ../../../build/lib/libns3.36.1-aodv-default.so
Scanning dependencies of target libinternet-apps
[ 70%] Linking CXX shared library ../../../build/lib/libns3.36.1-internet-apps-default.so
Scanning dependencies of target libapplications-test
[ 70%] Building CXX object src/applications/CMakeFiles/libapplications-test.dir/test/three-gpp-http-client-server-test.cc.o
In file included from /usr/include/c++/9/complex.h:38,
                 from /home/m/ns-3-dev/build/include/ns3/matrix-based-channel-model.h:25,
                 from /home/m/ns-3-dev/build/include/ns3/spectrum-module.h:17,
                 from /home/m/ns-3-dev/contrib/opengym/examples/interference-pattern/mygym.h:27,
                 from /home/m/ns-3-dev/contrib/opengym/examples/interference-pattern/mygym.cc:21:
/home/m/ns-3-dev/build/include/ns3/attribute-container-accessor-helper.h:138:79: error: expected ‘>’ before ‘(’ token
  138 | template <typename V, typename T, template <typename...> class U, typename ...I,
      |                                                                               ^
In file included from /home/m/ns-3-dev/build/include/ns3/core-module.h:19,
                 from /home/m/ns-3-dev/contrib/opengym/examples/interference-pattern/mygym.cc:23:
/home/m/ns-3-dev/build/include/ns3/attribute-container-accessor-helper.h:142:29: error: expansion pattern ‘(__complex__ float){0.0f, 1.0e+0f}’ contains no parameter packs
  142 | DoMakeAccessorHelperOne (U<I...> T::*memberContainer)
      |                             ^~~
/home/m/ns-3-dev/build/include/ns3/attribute-container-accessor-helper.h:142:32: error: template argument 1 is invalid
  142 | DoMakeAccessorHelperOne (U<I...> T::*memberContainer)
      |                                ^
/home/m/ns-3-dev/build/include/ns3/attribute-container-accessor-helper.h: In function ‘ns3::Ptr<const ns3::AttributeAccessor> ns3::DoMakeAccessorHelperOne(int T::*)’:
/home/m/ns-3-dev/build/include/ns3/attribute-container-accessor-helper.h:152:25: error: expansion pattern ‘(__complex__ float){0.0f, 1.0e+0f}’ contains no parameter packs
  152 |     MemberContainer (U<I...> T::*memberContainer)
      |                         ^~~
/home/m/ns-3-dev/build/include/ns3/attribute-container-accessor-helper.h:152:28: error: template argument 1 is invalid
  152 |     MemberContainer (U<I...> T::*memberContainer)
      |                            ^
/home/m/ns-3-dev/build/include/ns3/attribute-container-accessor-helper.h:180:8: error: expansion pattern ‘(__complex__ float){0.0f, 1.0e+0f}’ contains no parameter packs
  180 |     U<I...> T::*m_memberContainer;  // Address of the class data member.
      |        ^~~
/home/m/ns-3-dev/build/include/ns3/attribute-container-accessor-helper.h:180:11: error: template argument 1 is invalid
  180 |     U<I...> T::*m_memberContainer;  // Address of the class data member.
      |           ^
[ 70%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-mac-queue-test.cc.o
make[2]: *** [contrib/opengym/examples/CMakeFiles/interference-pattern.dir/build.make:65: contrib/opengym/examples/CMakeFiles/interference-pattern.dir/interference-pattern/mygym.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3926: contrib/opengym/examples/CMakeFiles/interference-pattern.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 70%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-phy-ofdma-test.cc.o
[ 70%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-phy-reception-test.cc.o
[ 70%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-list-routing-test-suite.cc.o
[ 70%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-phy-thresholds-test.cc.o
[ 70%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-packet-info-tag-test-suite.cc.o
[ 70%] Building CXX object src/applications/CMakeFiles/libapplications-test.dir/test/bulk-send-application-test-suite.cc.o
[ 70%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-raw-test.cc.o
[ 70%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-primary-channels-test.cc.o
[ 70%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-channel-switching-test.cc.o
[ 70%] Building CXX object src/applications/CMakeFiles/libapplications-test.dir/test/udp-client-server-test.cc.o
[ 71%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-ripng-test.cc.o
[ 71%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-test.cc.o
[ 71%] Linking CXX shared library ../../../build/lib/libns3.36.1-applications-test-default.so
[ 72%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-transmit-mask-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/ipv6-test.cc.o
[ 72%] Building CXX object src/wifi/CMakeFiles/libwifi-test.dir/test/wifi-txop-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/rtt-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-advertised-window-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-bbr-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-bic-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-bytes-in-flight-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-classic-recovery-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-close-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-cong-avoid-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-datasentcb-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-dctcp-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-ecn-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-endpoint-bug2211.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-error-model.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-fast-retr-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-general-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-header-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-highspeed-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-htcp-test.cc.o
[ 72%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-hybla-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-illinois-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-ledbat-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-linux-reno-test.cc.o

[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-loss-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-lp-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-option-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-pacing-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-pkts-acked-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-prr-recovery-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-rate-ops-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-rto-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-rtt-estimation.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-rx-buffer-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-sack-permitted-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-scalable-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-slow-start-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-syn-connection-failed-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-timestamp-test.cc.o
[ 73%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-tx-buffer-test.cc.o
[ 74%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-vegas-test.cc.o
[ 74%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-veno-test.cc.o
[ 74%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-wscaling-test.cc.o
[ 74%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-yeah-test.cc.o
[ 74%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/tcp-zero-window-test.cc.o
[ 74%] Building CXX object src/internet/CMakeFiles/libinternet-test.dir/test/udp-test.cc.o
[ 74%] Linking CXX shared library ../../../build/lib/libns3.36.1-internet-test-default.so
[ 74%] Linking CXX shared library ../../../build/lib/libns3.36.1-wifi-test-default.so
make: *** [Makefile:141: all] Error 2
Finished executing the following commands:
cd cmake-cache; cmake --build . -j 7 ; cd ..
sv1ple commented 1 year ago

As a temporary workaround, I deleted the examples/interference-pattern folder and removed the reference from CMakeLists.txt (check below) Now, ns3 is built successfully and I am able to run the opengym example properly.

New CMakeLists.txt without interference-pattern:

build_lib_example(
  NAME linear-mesh
  SOURCE_FILES linear-mesh/sim.cc
  LIBRARIES_TO_LINK
    ${libapplications}
    ${libcore}
    ${libinternet}
    ${libopengym}
    ${libwifi}
)

build_lib_example(
  NAME linear-mesh-2
  SOURCE_FILES linear-mesh-2/sim.cc
               linear-mesh-2/mygym.cc
  LIBRARIES_TO_LINK
    ${libapplications}
    ${libcore}
    ${libinternet}
    ${libopengym}
    ${libwifi}
)

build_lib_example(
  NAME opengym
  SOURCE_FILES opengym/sim.cc
  LIBRARIES_TO_LINK
    ${libcore}
    ${libopengym}
)

build_lib_example(
  NAME opengym-2
  SOURCE_FILES opengym-2/sim.cc
               opengym-2/mygym.cc
  LIBRARIES_TO_LINK
    ${libcore}
    ${libopengym}
)

build_lib_example(
  NAME rl-tcp
  SOURCE_FILES rl-tcp/sim.cc
               rl-tcp/tcp-rl-env.cc
               rl-tcp/tcp-rl.cc
  LIBRARIES_TO_LINK
    ${libapplications}
    ${libcore}
    ${libflow-monitor}
    ${libinternet}
    ${libopengym}
    ${libpoint-to-point-layout}
    ${libptp}
)