蓝桥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++学习笔记资料的主要内容,如果未能解决你的问题,请参考以下文章