蓝桥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,

书中第一章案例:

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


      C = gcc
      CXX = clang++
      SOURCE_C = foo.c
      OBJECTS_C = foo.o
      SOURCE_CXX = 1.1.c.and.cpp
      TARGET = 1.1.out
      LDFLAGS_COMMON = -std=c++2a
      all:
      	$(C) -c $(SOURCE_C)
      	$(CXX) $(SOURCE_CXX) $(OBJECTS_C) $(LDFLAGS_COMMON) -o $(TARGET)
      clean:
     	rm -rf *.o $(TARGET)
  
 

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


      C = gcc
      CXX = g++
      SOURCE_C = foo.c
      OBJECTS_C = foo.o
      SOURCE_CXX = 1.1.c.and.cpp
      TARGET = 1.1.out
      LDFLAGS_COMMON = -std=c++17
      all:
      	$(C) -c $(SOURCE_C)
      	$(CXX) $(SOURCE_CXX) $(OBJECTS_C) $(LDFLAGS_COMMON) -o $(TARGET)
      clean:
     	rm -rf *.o $(TARGET)
  
 

再试一次看看?

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

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

foo.h


      #ifdef __cplusplus
      extern "C" {
      #endif
      int add(int x, int y);
      #ifdef __cplusplus
      }
      #endif
  
 

 foo.c


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

x,y求和。

1.1.cpp


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

直接调用add。

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


      int main() {
         // use lambda expression
         int x=0,y=0;
          std::cin>>x;
          std::cin>>y;
          [out = std::ref(std::cout << "Result from C code: " << add(x, y))](){
              out.get() << ".\n";
          }();
         return 0;
      }
  
 

 


 

 

 

 

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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