Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 罗斯犯错误_C++_Ros - Fatal编程技术网

C++ 罗斯犯错误

C++ 罗斯犯错误,c++,ros,C++,Ros,我目前正在与ROS合作一个项目。我对ROS和它的功能是完全陌生的。目前我正在做一个关于ROS的教程,并且第一次开始使用代码。虽然我确实有C++的经验,但我不知道出了什么问题。在ROS中,我使用rosmake命令,它无法编译cpp文件/代码。有人能帮我弄清楚为什么会出错吗?(以及可能如何修复它?) 以下是cpp文件代码: #include "ros/ros.h" #include "std_msgs/String.h" #include <sstream> int main(int a

我目前正在与ROS合作一个项目。我对ROS和它的功能是完全陌生的。目前我正在做一个关于ROS的教程,并且第一次开始使用代码。虽然我确实有C++的经验,但我不知道出了什么问题。在ROS中,我使用rosmake命令,它无法编译cpp文件/代码。有人能帮我弄清楚为什么会出错吗?(以及可能如何修复它?)

以下是cpp文件代码:

#include "ros/ros.h"
#include "std_msgs/String.h"
#include <sstream>
int main(int argc, char **argv)
{
ros::init(argc, argv, "example1_a");
ros::NodeHandle n;
ros::Publisher chatter_pub = n.advertise<std_
msgs::String>("message", 1000);
ros::Rate loop_rate(10);
while (ros::ok())
{
std_msgs::String msg;
std::stringstream ss;
ss << " I am the example1_a node ";
msg.data = ss.str();
//ROS_INFO("%s", msg.data.c_str());
chatter_pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
}
return 0;
}

<> > C++代码中的断线只能用3种方式来完成:

cout<<"Error:This is a really long error "
"message that exceeds the maximum permitted length.\n";

<代码> c> C++代码中的断线只能用3种方式来完成:

cout<<"Error:This is a really long error "
"message that exceeds the maximum permitted length.\n";
cout改变:

ros::Publisher chatter_pub = n.advertise<std_
msgs::String>("message", 1000);
其他方法:

如果您使用catkin_make并希望清理工作区以切换到catkin build use

如果您使用catkin build并希望清理工作区以切换到catkin,请使用

rosmake vs柳絮:

由于ROS Groovy,不建议使用rosmake,以下是我们使用柳絮的原因:

  • 更好地利用Cmake提供的所有工具
  • Cmake的C表示跨平台。其想法是使ROS在不同的体系结构(ARM)和操作系统(OSX和Windows)上更具可移植性
  • 使用rosbuild,每个包都有自己的Cmake,包依赖关系管理就不那么稳定了
  • 通过并行化依赖项,Cmake可以更智能地编译
  • 通过优化依赖项减少内存空间
  • 单一安装目标,允许公司在ROS上运行封闭的专有软件
柳絮制作与柳絮制作

完全相同,但最新的柳絮构建。现在,有些人建议从柳絮制作改为柳絮制作。两者之间的主要区别在于catkin build具有更好的隔离包。它将为每个包构建一个工作区

变化:

ros::Publisher chatter_pub = n.advertise<std_
msgs::String>("message", 1000);
其他方法:

如果您使用catkin_make并希望清理工作区以切换到catkin build use

如果您使用catkin build并希望清理工作区以切换到catkin,请使用

rosmake vs柳絮:

由于ROS Groovy,不建议使用rosmake,以下是我们使用柳絮的原因:

  • 更好地利用Cmake提供的所有工具
  • Cmake的C表示跨平台。其想法是使ROS在不同的体系结构(ARM)和操作系统(OSX和Windows)上更具可移植性
  • 使用rosbuild,每个包都有自己的Cmake,包依赖关系管理就不那么稳定了
  • 通过并行化依赖项,Cmake可以更智能地编译
  • 通过优化依赖项减少内存空间
  • 单一安装目标,允许公司在ROS上运行封闭的专有软件
柳絮制作与柳絮制作


完全相同,但最新的柳絮构建。现在,有些人建议从柳絮制作改为柳絮制作。两者之间的主要区别在于catkin build具有更好的隔离包。它将为每个包构建一个工作区

使用C++11制作项目。 为此,请在命令中使用cmake标志:

catkin_make -DCMAKE_CXX_FLAGS=-std=c++11


使用C++11创建项目。 为此,请在命令中使用cmake标志:

catkin_make -DCMAKE_CXX_FLAGS=-std=c++11


代码中有一个奇怪的换行符,不应该出现。C++对这些错误非常敏感,并且可以产生很多不是实际错误的后续错误,而是因为早期错误而产生的问题。修复第一个错误,剩下的大部分(甚至所有)错误都应该消失。还请注意,错误消息会告诉您确切的位置(文件名、行号,甚至是遇到错误的行中的“箭头”),使用该位置可以在源代码中定位错误。此外,与问题无关,编译器也不需要,但缩进使代码更易于阅读。请以某种方式缩进您的代码,特别是如果其他人看到它(使用“其他人”,您应该在一个月、一年或更长的时间内包含您自己)。谢谢,这解决了问题。我不明白为什么我没有弄明白。只是一个旁注:你使用
rosmake
而不是
catkin
有什么特别的原因吗?rosmake已经过时了,一般不应该用于新的软件包。我不知道,谢谢。从今天开始使用柳絮,效果很好。代码中有一个奇怪的换行符,不应该出现。C++对这些错误非常敏感,并且可以产生很多不是实际错误的后续错误,而是因为早期错误而产生的问题。修复第一个错误,剩下的大部分(甚至所有)错误都应该消失。还请注意,错误消息会告诉您确切的位置(文件名、行号,甚至是遇到错误的行中的“箭头”),使用该位置可以在源代码中定位错误。此外,与问题无关,编译器也不需要,但缩进使代码更易于阅读。请以某种方式缩进您的代码,特别是如果其他人看到它(使用“其他人”,您应该在一个月、一年或更长的时间内包含您自己)。谢谢,这解决了问题。我不明白为什么我没有弄明白。只是一个旁注:你使用
rosmake
而不是
catkin
有什么特别的原因吗?rosmake已经过时了,一般不应该用于新的软件包。我不知道,谢谢。今天开始用柳絮,效果很好。
ros::Publisher chatter_pub = n.advertise<std_msgs::String>("message", 1000);
$ cd ~/catkin_ws
$ sudo rm -r devel build install
$ catkin_make clean
$ catkin build
$ catkin clean
$ catkin_make
catkin_make -DCMAKE_CXX_FLAGS=-std=c++11
catkin build -DCMAKE_CXX_FLAGS=-std=c++11