注目の投稿

技術Note一覧

このブログのメインコンテンツである技術Noteの一覧

2017/09/17

BlueTooth経由でRPiと通信4 (#includeの歴史)

ことの始まり:
demo_rx.c 内部で#include ”ros/ros.h”をするとコンパイルエラーが起きた.
(demo_rx.cを改造して,受信データをROSmsgs経由で他のノードに転送したかった)

エラー内容:
#include <string> がno such file
→拡張子なしファイルのincludeとは?

調査結果:
C++がCに対して後方互換性を保つための記述方法.
効果は,標準関数が全て名前空間 [std::] に属してしまうことで生じる不整合の解消.

以下のページが分かりやすい.知らなかった・・・
https://oshiete.goo.ne.jp/qa/6138437.html

対策:
demo_rx.cはC言語ファイルなのに,”ros/ros.h”の内部でC++の表現が含まれているのが問題.
→demo_rx.c の拡張子を.cppにすることで解決