rui_2022 2024-05-24 15:51 采纳率: 100%
浏览 27
已结题

OCS2安装出现问题,请大家给点意见

在ubuntu20.04版本进行OCS2的安装,根据https://zhuanlan.zhihu.com/p/682704448进行安装,在最后一步

catkin build ocs2

因为编译过程很长,因此只放了出现错误的部分

Errors     << ocs2_oc:make /home/rui/ocs2_ws/logs/ocs2_oc/build.make.014.log   
In file included from /home/rui/ocs2_ws/src/ocs2/ocs2_oc/src/rollout/PerformanceIndicesRollout.cpp:30:
/home/rui/ocs2_ws/src/ocs2/ocs2_core/include/ocs2_core/integration/TrapezoidalIntegration.h: In function ‘VALUE_T ocs2::trapezoidalIntegration(const std::vector<SCALAR_T>&, const std::vector<VALUE_T>&, VALUE_T)’:
/home/rui/ocs2_ws/src/ocs2/ocs2_core/include/ocs2_core/integration/TrapezoidalIntegration.h:51:8: error: ‘size_t’ was not declared in this scope; did you mean ‘std::size_t’?
   51 |   for (size_t k = 1; k < timeTrajectory.size(); k++) {
      |        ^~~~~~
      |        std::size_t
compilation terminated due to -Wfatal-errors.
make[2]: *** [CMakeFiles/ocs2_oc.dir/build.make:310:CMakeFiles/ocs2_oc.dir/src/rollout/PerformanceIndicesRollout.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:738:CMakeFiles/ocs2_oc.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
cd /home/rui/ocs2_ws/build/ocs2_oc; catkin build --get-env ocs2_oc | catkin env -si  /usr/bin/make --jobserver-auth=3,4; cd -
 
...............................................................................
Failed     << ocs2_oc:make                                        [ Exited with code 2 ]
Failed    <<< ocs2_oc                                             [ 0.4 seconds ]
Abandoned <<< convex_plane_decomposition_ros                      [ Unrelated job failed ]
Abandoned <<< grid_map_demos                                      [ Unrelated job failed ]
Abandoned <<< ocs2                                                [ Unrelated job failed ]
Abandoned <<< ocs2_anymal                                         [ Unrelated job failed ]
Abandoned <<< ocs2_mpcnet                                         [ Unrelated job failed ]
Abandoned <<< ocs2_pinocchio                                      [ Unrelated job failed ]
Abandoned <<< ocs2_raisim                                         [ Unrelated job failed ]
Abandoned <<< ocs2_robotic_examples                               [ Unrelated job failed ]
Abandoned <<< ocs2_mpc                                            [ Unrelated job failed ]
Abandoned <<< ocs2_qp_solver                                      [ Unrelated job failed ]
Abandoned <<< hpipm_catkin                                        [ Unrelated job failed ]
Abandoned <<< ocs2_ddp                                            [ Unrelated job failed ]
Abandoned <<< ocs2_ipm                                            [ Unrelated job failed ]
Abandoned <<< ocs2_ocs2                                           [ Unrelated job failed ]
Abandoned <<< ocs2_raisim_core                                    [ Unrelated job failed ]
Abandoned <<< ocs2_raisim_ros                                     [ Unrelated job failed ]
Abandoned <<< ocs2_robotic_tools                                  [ Unrelated job failed ]
Abandoned <<< ocs2_cartpole                                       [ Unrelated job failed ]
Abandoned <<< ocs2_perceptive                                     [ Unrelated job failed ]
Abandoned <<< ocs2_python_interface                               [ Unrelated job failed ]
Abandoned <<< ocs2_double_integrator                              [ Unrelated job failed ]
Abandoned <<< ocs2_quadrotor                                      [ Unrelated job failed ]
Abandoned <<< ocs2_ros_interfaces                                 [ Unrelated job failed ]
Abandoned <<< ocs2_cartpole_ros                                   [ Unrelated job failed ]
Abandoned <<< ocs2_double_integrator_ros                          [ Unrelated job failed ]
Abandoned <<< ocs2_mpcnet_core                                    [ Unrelated job failed ]
Abandoned <<< ocs2_quadrotor_ros                                  [ Unrelated job failed ]
Abandoned <<< ocs2_slp                                            [ Unrelated job failed ]
Abandoned <<< ocs2_sqp                                            [ Unrelated job failed ]
Abandoned <<< ocs2_ballbot                                        [ Unrelated job failed ]
Abandoned <<< ocs2_ballbot_ros                                    [ Unrelated job failed ]
Abandoned <<< ocs2_ballbot_mpcnet                                 [ Unrelated job failed ]
Abandoned <<< ocs2_switched_model_interface                       [ Unrelated job failed ]
Abandoned <<< ocs2_anymal_commands                                [ Unrelated job failed ]
Abandoned <<< ocs2_pinocchio_interface                            [ Unrelated job failed ]
Abandoned <<< ocs2_anymal_models                                  [ Unrelated job failed ]
Abandoned <<< ocs2_centroidal_model                               [ Unrelated job failed ]
Abandoned <<< ocs2_legged_robot                                   [ Unrelated job failed ]
Abandoned <<< ocs2_legged_robot_ros                               [ Unrelated job failed ]
Abandoned <<< ocs2_legged_robot_raisim                            [ Unrelated job failed ]
Abandoned <<< ocs2_legged_robot_mpcnet                            [ Unrelated job failed ]
Abandoned <<< ocs2_self_collision                                 [ Unrelated job failed ]
Abandoned <<< ocs2_mobile_manipulator                             [ Unrelated job failed ]
Abandoned <<< ocs2_self_collision_visualization                   [ Unrelated job failed ]
Abandoned <<< ocs2_mobile_manipulator_ros                         [ Unrelated job failed ]
Abandoned <<< segmented_planes_terrain_model                      [ Unrelated job failed ]
Abandoned <<< ocs2_quadruped_interface                            [ Unrelated job failed ]
Abandoned <<< ocs2_anymal_mpc                                     [ Unrelated job failed ]
Abandoned <<< ocs2_quadruped_loopshaping_interface                [ Unrelated job failed ]
Abandoned <<< ocs2_anymal_loopshaping_mpc                         [ Unrelated job failed ]
Finished  <<< grid_map_rviz_plugin                                [ 0.2 seconds ]
Finished  <<< convex_plane_decomposition                          [ 0.3 seconds ]
Finished  <<< grid_map_loader                                     [ 0.1 seconds ]
Finished  <<< grid_map_visualization                              [ 0.2 seconds ]
Finished  <<< grid_map_filters                                    [ 0.4 seconds ]
_______________________________________________________________________________
Errors     << pinocchio:make /home/rui/ocs2_ws/logs/pinocchio/build.make.014.log
In file included from /usr/local/include/boost/math/constants/constants.hpp:10,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/math/fwd.hpp:10,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/math/quaternion.hpp:12,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3-tpl.hpp:12,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3.hpp:44,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/multibody/model.hpp:10,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/parsers/urdf.hpp:9,
                 from /home/rui/ocs2_ws/src/pinocchio/src/parsers/urdf/geometry.cpp:5:
/usr/local/include/boost/math/tools/config.hpp:26:6: warning: #warning "Boost.Math requires C++14" [-Wcpp]
   26 | #    warning "Boost.Math requires C++14"
      |      ^~~~~~~
In file included from /usr/local/include/boost/math/constants/constants.hpp:10,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/math/fwd.hpp:10,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/math/quaternion.hpp:12,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3-tpl.hpp:12,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3.hpp:44,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/parsers/urdf/utils.hpp:8,
                 from /home/rui/ocs2_ws/src/pinocchio/src/parsers/urdf/utils.cpp:1:
/usr/local/include/boost/math/tools/config.hpp:26:6: warning: #warning "Boost.Math requires C++14" [-Wcpp]
   26 | #    warning "Boost.Math requires C++14"
      |      ^~~~~~~
In file included from /usr/local/include/boost/math/constants/constants.hpp:10,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/math/fwd.hpp:10,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/math/quaternion.hpp:12,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3-tpl.hpp:12,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3.hpp:44,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/multibody/model.hpp:10,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/parsers/urdf.hpp:9,
                 from /home/rui/ocs2_ws/src/pinocchio/src/parsers/urdf/model.cpp:6:
/usr/local/include/boost/math/tools/config.hpp:26:6: warning: #warning "Boost.Math requires C++14" [-Wcpp]
   26 | #    warning "Boost.Math requires C++14"
      |      ^~~~~~~
In file included from /usr/local/include/eigen3/Eigen/LU:29,
                 from /usr/local/include/eigen3/Eigen/Geometry:14,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/math/quaternion.hpp:19,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3-tpl.hpp:12,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3.hpp:44,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/parsers/urdf/utils.hpp:8,
                 from /home/rui/ocs2_ws/src/pinocchio/src/parsers/urdf/utils.cpp:1:
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h: In static member function ‘static Eigen::Index Eigen::internal::partial_lu_impl<Scalar, StorageOrder, PivIndex, SizeAtCompileTime>::unblocked_lu(Eigen::internal::partial_lu_impl<Scalar, StorageOrder, PivIndex, SizeAtCompileTime>::MatrixTypeRef&, PivIndex*, PivIndex&)’:
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:390:27: error: expected primary-expression before ‘<’ token
  390 |         lu.col(k).tail(fix<RRows>(rrows)) /= lu.coeff(k,k);
      |                           ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:33: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                 ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:51: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                                   ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:98: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                                                                                  ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:134: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                                                                                                                      ^
make[2]: *** [src/CMakeFiles/pinocchio.dir/build.make:92:src/CMakeFiles/pinocchio.dir/parsers/urdf/utils.cpp.o] 错误 1
make[2]: *** 正在等待未完成的任务....
In file included from /usr/local/include/eigen3/Eigen/LU:29,
                 from /usr/local/include/eigen3/Eigen/Geometry:14,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/math/quaternion.hpp:19,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3-tpl.hpp:12,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3.hpp:44,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/multibody/model.hpp:10,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/parsers/urdf.hpp:9,
                 from /home/rui/ocs2_ws/src/pinocchio/src/parsers/urdf/model.cpp:6:
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h: In static member function ‘static Eigen::Index Eigen::internal::partial_lu_impl<Scalar, StorageOrder, PivIndex, SizeAtCompileTime>::unblocked_lu(Eigen::internal::partial_lu_impl<Scalar, StorageOrder, PivIndex, SizeAtCompileTime>::MatrixTypeRef&, PivIndex*, PivIndex&)’:
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:390:27: error: expected primary-expression before ‘<’ token
  390 |         lu.col(k).tail(fix<RRows>(rrows)) /= lu.coeff(k,k);
      |                           ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:33: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                 ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:51: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                                   ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:98: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                                                                                  ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:134: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                                                                                                                      ^
In file included from /usr/local/include/eigen3/Eigen/LU:29,
                 from /usr/local/include/eigen3/Eigen/Geometry:14,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/math/quaternion.hpp:19,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3-tpl.hpp:12,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/spatial/se3.hpp:44,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/multibody/model.hpp:10,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/parsers/urdf.hpp:9,
                 from /home/rui/ocs2_ws/src/pinocchio/src/parsers/urdf/geometry.cpp:5:
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h: In static member function ‘static Eigen::Index Eigen::internal::partial_lu_impl<Scalar, StorageOrder, PivIndex, SizeAtCompileTime>::unblocked_lu(Eigen::internal::partial_lu_impl<Scalar, StorageOrder, PivIndex, SizeAtCompileTime>::MatrixTypeRef&, PivIndex*, PivIndex&)’:
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:390:27: error: expected primary-expression before ‘<’ token
  390 |         lu.col(k).tail(fix<RRows>(rrows)) /= lu.coeff(k,k);
      |                           ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:33: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                 ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:51: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                                   ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:98: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                                                                                  ^
/usr/local/include/eigen3/Eigen/src/LU/PartialPivLU.h:400:134: error: expected primary-expression before ‘<’ token
  400 |         lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(rrows)) * lu.row(k).tail(fix<RCols>(rcols));
      |                                                                                                                                      ^
In file included from /usr/local/include/boost/smart_ptr/detail/requires_cxx11.hpp:9,
                 from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:13,
                 from /usr/local/include/boost/scoped_ptr.hpp:13,
                 from /usr/local/include/boost/archive/detail/basic_oarchive.hpp:22,
                 from /usr/local/include/boost/archive/detail/common_oarchive.hpp:21,
                 from /usr/local/include/boost/archive/basic_text_oarchive.hpp:29,
                 from /usr/local/include/boost/archive/text_oarchive.hpp:31,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/serialization/archive.hpp:14,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/serialization/serializable.hpp:8,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/multibody/model.hpp:21,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/parsers/urdf.hpp:9,
                 from /home/rui/ocs2_ws/src/pinocchio/src/parsers/urdf/model.cpp:6:
/usr/local/include/boost/bind.hpp: At global scope:
/usr/local/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’
   36 | BOOST_PRAGMA_MESSAGE(
      | ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/boost/smart_ptr/detail/requires_cxx11.hpp:9,
                 from /usr/local/include/boost/smart_ptr/scoped_ptr.hpp:13,
                 from /usr/local/include/boost/scoped_ptr.hpp:13,
                 from /usr/local/include/boost/archive/detail/basic_oarchive.hpp:22,
                 from /usr/local/include/boost/archive/detail/common_oarchive.hpp:21,
                 from /usr/local/include/boost/archive/basic_text_oarchive.hpp:29,
                 from /usr/local/include/boost/archive/text_oarchive.hpp:31,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/serialization/archive.hpp:14,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/serialization/serializable.hpp:8,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/multibody/model.hpp:21,
                 from /home/rui/ocs2_ws/build/pinocchio/include/pinocchio/parsers/urdf.hpp:9,
                 from /home/rui/ocs2_ws/src/pinocchio/src/parsers/urdf/geometry.cpp:5:
/usr/local/include/boost/bind.hpp: At global scope:
/usr/local/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’
   36 | BOOST_PRAGMA_MESSAGE(
      | ^~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/CMakeFiles/pinocchio.dir/build.make:66:src/CMakeFiles/pinocchio.dir/parsers/urdf/model.cpp.o] 错误 1
make[2]: *** [src/CMakeFiles/pinocchio.dir/build.make:79:src/CMakeFiles/pinocchio.dir/parsers/urdf/geometry.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:1329:src/CMakeFiles/pinocchio.dir/all] 错误 2
make: *** [Makefile:144:all] 错误 2
cd /home/rui/ocs2_ws/build/pinocchio; catkin build --get-env pinocchio | catkin env -si  /usr/bin/make --jobserver-auth=3,4; cd -
 
...............................................................................
Failed     << pinocchio:make                                      [ Exited with code 2 ]
Failed    <<< pinocchio                                           [ 5.3 seconds ]
[build] Summary: 22 of 74 packages succeeded.                                  
[build]   Ignored:   9 packages were skipped or are skiplisted.                
[build]   Warnings:  1 packages succeeded with warnings.                       
[build]   Abandoned: 50 packages were abandoned.                               
[build]   Failed:    2 packages failed.                                        
[build] Runtime: 10.0 seconds total
  • 写回答

16条回答 默认 最新

  • 急速光粒 2024-05-25 05:14
    关注

    错误很多,不是一下能说清楚的,最好协助解决。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(15条)

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 修改了问题 5月24日
  • 修改了问题 5月24日
  • 展开全部

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据