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

Posted zhangrelay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥ROS机器人之现代C++学习笔记资料相关的知识,希望对你有一定的参考价值。

在蓝桥云课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;

 


 

 

 

 

以上是关于蓝桥ROS机器人之现代C++学习笔记资料的主要内容,如果未能解决你的问题,请参考以下文章

蓝桥ROS机器人之现代C++学习笔记之路径规划

蓝桥ROS机器人之现代C++学习笔记2.5 模板

蓝桥ROS机器人之现代C++学习笔记7.3 期物

蓝桥ROS机器人之现代C++学习笔记3.1 Lambda 表达式

蓝桥ROS机器人之现代C++学习笔记7.5 内存模型

蓝桥ROS机器人之现代C++学习笔记4.3 元组