蓝桥ROS机器人之现代C++学习笔记资料

举报
zhangrelay 发表于 2022/04/01 00:41:43 2022/04/01
【摘要】 在蓝桥云课ROS中,使用: git clone https://github.com/changkun/modern-cpp-tutorial.git 案例作者使用系统如下:  云实践平台使用-std=c++17, 书中第一章案例: 需要做一些修改的。否则报错如下: C = gccCXX = cl...

在蓝桥云课ROS中,使用:

git clone https://github.com/changkun/modern-cpp-tutorial.git
 


案例作者使用系统如下:

 云实践平台使用-std=c++17,

书中第一章案例:

需要做一些修改的。否则报错如下:


  
  1. C = gcc
  2. CXX = clang++
  3. SOURCE_C = foo.c
  4. OBJECTS_C = foo.o
  5. SOURCE_CXX = 1.1.c.and.cpp
  6. TARGET = 1.1.out
  7. LDFLAGS_COMMON = -std=c++2a
  8. all:
  9. $(C) -c $(SOURCE_C)
  10. $(CXX) $(SOURCE_CXX) $(OBJECTS_C) $(LDFLAGS_COMMON) -o $(TARGET)
  11. clean:
  12. rm -rf *.o $(TARGET)

 clang++修改为g++,c++2a修改为c++17。


  
  1. C = gcc
  2. CXX = g++
  3. SOURCE_C = foo.c
  4. OBJECTS_C = foo.o
  5. SOURCE_CXX = 1.1.c.and.cpp
  6. TARGET = 1.1.out
  7. LDFLAGS_COMMON = -std=c++17
  8. all:
  9. $(C) -c $(SOURCE_C)
  10. $(CXX) $(SOURCE_CXX) $(OBJECTS_C) $(LDFLAGS_COMMON) -o $(TARGET)
  11. clean:
  12. rm -rf *.o $(TARGET)

再试一次看看?

书中所有案例均可在蓝桥ROS机器人中进行实践练习。

当然这也是一段混合使用C/C++案例。

foo.h


  
  1. #ifdef __cplusplus
  2. extern "C" {
  3. #endif
  4. int add(int x, int y);
  5. #ifdef __cplusplus
  6. }
  7. #endif

 foo.c


  
  1. #include "foo.h"
  2. // C code
  3. int add(int x, int y) {
  4. return x+y;
  5. }

x,y求和。

1.1.cpp


  
  1. #include "foo.h"
  2. #include <iostream>
  3. #include <functional>
  4. int main() {
  5. // use lambda expression
  6. [out = std::ref(std::cout << "Result from C code: " << add(1, 2))](){
  7. out.get() << ".\n";
  8. }();
  9. return 0;
  10. }

直接调用add。

如果需要输入数值x和y,并求和。


  
  1. int main() {
  2. // use lambda expression
  3. int x=0,y=0;
  4. std::cin>>x;
  5. std::cin>>y;
  6. [out = std::ref(std::cout << "Result from C code: " << add(x, y))](){
  7. out.get() << ".\n";
  8. }();
  9. return 0;
  10. }

 


 

 

 

 

文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。

原文链接:zhangrelay.blog.csdn.net/article/details/123857911

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。