-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
error[E0599]: no function or associated item named new
found for struct "test_rosmaster::String" in the current scope
#1
Comments
Put a
In the catkin workspace:
It is still finding the test_rosmaster messages. It's also finding messages completely outside of the sourced catkin ws. Maybe need to do something more than CATKIN_IGNORE - delete all references to test_rosmaster in the parts that aren't ignored. vanilla noetic-devel ros_comm also fails, it's not just my fork. |
Maybe something is broken with catkin overlays? Try overlaying a much simpler package that is also in apt repos. Try overlaying with ros-noetic-geometry-msgs
Works fine. There is something unique about ros_comm then? |
Disable/delete tests
Still fails with ros_comm the same way. |
Try catkin build install - nope. |
Reproduce with docker
This shows the error. Try melodic later. |
Deleted all component of ros_comm except for ros_comm/tools and the build works. tools/rosgraph and tools/roslaunch are where I have my changes in a branch, so a rosrust compatible branch of ros_comm could be made to make this work with CI pipelines easily. If I make changes to other packages within ros_comm I can try to bring them in one by one. Will have to cherry-pick changes back and forth as needed between a regular non rosrust noetic_aggregated and rosrust_compatible_noetic_aggregated. |
…er to avoid rosrust compilation issues seen in lucasw/rust_test#1
The rosgraph doesn't appear to be working (and logs out of rust nodes are odd not going through it either:
I do see the main.rs logs in rosout_agg though, so why aren't they in stdout properly? Probably something in rosrust is re-implementing the log line output instead of going through the python (so C++ ros nodes go through python to print to stdout?).
function is blank in the rust node output, so that needs to be fixed (though maybe if it was a closure that isn't well defined?). |
I probably need Try leaving in both the C++ and rospy clients - that builds. Still not proper log message output- do a clean rebuild. Forgot about git@github.com:lucasw/rosconsole, need that for C++ nodes. Works, now look at formatting rust log messages adnanademovic/rosrust#152
|
Using a ros_comm fork with test dir deleted good enough for now, could dive into why it fails later. |
Looking at debugging the test_rosmaster and related issue of trying to build messages outside of the ROS_PACKAGE_PATH, first debug all the paths passed into rosrust_msg. (Also why even build those messages if nothing depends on them? Maybe there could be a test build that builds every message it can find- or is that what this already is?) This is needed to use println in the rosrust_msg build.rs rust-lang/cargo#985 (comment)
The macro solution to prepend cargo:warning to every println works even better rust-lang/cargo#985 (comment)
So probably just disable the cmake and cmake alt paths, only use ros_package_paths (and set it to something in this case) |
Removed the cmake paths from rosrust_msg, now only paths are passed in through ROS_PACKAGE_PATH and ROSRUST_MSG_PATH On a vanilla debian ros system there is no ROS_PACKAGE_PATH so
Dependencies like diagnostic_msgs need to be on that path, and probably a few others The only issue is that the process appears to get stuck at
The process is taking 100% cpu... and then locked up my computer after a few minutes. But probably even more evidence that it shouldn't build every message, just the ones it needs. This very narrow build works:
Also building on a different computer worked fine with all of /usr/share, and didn't take long at all. |
Looks like default debian catkin adds cmake prefix path to the ros package path, which fouls up rosrust compilation:
so blank it out for the config
It also gets fouled up if catkin is run after that, have to blank out the cmake prefix path for catkin build too- but what if it is needed?
Don't necessarily need to set the prefix path to "" though, it just is confusing when it is there |
This is coming out of having a fork of ros_comm in the sourced catkin_ws
Maybe that isn't getting build if tests aren't getting build, but rosrust_msgs scans it anyhow and then fails?
Is adnanademovic/rosrust#134 related?
The text was updated successfully, but these errors were encountered: