質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Bash on Ubuntu on Windows

Bash on Ubuntu on Windowsは、Windows Subsystem for Linux(WSL)の非推奨の名称。Windows10およびWindows Server上でLinuxのバイナリ実行ファイルをネイティブ実行するための互換レイヤーです。

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

4308閲覧

rosのmsgファイルのheaderが生成されない

oooolllliiiii1i

総合スコア0

Bash on Ubuntu on Windows

Bash on Ubuntu on Windowsは、Windows Subsystem for Linux(WSL)の非推奨の名称。Windows10およびWindows Server上でLinuxのバイナリ実行ファイルをネイティブ実行するための互換レイヤーです。

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/09/18 17:00

トランジスタ技術9月号のrosのチュートリアルを勉強しています。
githubにあるrosのパッケージをダウンロードしました

$ cd ~/catkin_ws/src $ git clone https://github.com/takasehideki/toragi_ros_tutorial

そのあとcatkin_make
を実行したのですが、

fatal error: toragi_pkg1/Human.h: No such file or directory #include "toragi_pkg1/Human.h" ^~~~~~~~~~~~~~~~~~~~~ compilation terminated. toragi_ros_tutorial/toragi_pkg1/CMakeFiles/node5.dir/build.make:62: recipe for target 'toragi_ros_tutorial/toragi_pkg1/CMakeFiles/node5.dir/src/node5.cpp.o' failed make[2]: *** [toragi_ros_tutorial/toragi_pkg1/CMakeFiles/node5.dir/src/node5.cpp.o] Error 1 CMakeFiles/Makefile2:17605: recipe for target 'toragi_ros_tutorial/toragi_pkg1/CMakeFiles/node5.dir/all' failed make[1]: *** [toragi_ros_tutorial/toragi_pkg1/CMakeFiles/node5.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs....

というエラーが発生しました。
node5.cppの"toragi_pkg1/Human.h"がincludeできていないようです。
rosのmsgのチュートリアルのあるサイトを参考にして

package.xmlとCMakeLists.txtを編集しました。
package.xmlはもとのファイルからコメントアウトを行いました。
先ほどのサイトに書いてある通り
40行目の<build_depend>message_generation</build_depend>と、46行目の<exec_depend>message_runtime</exec_depend>のコメントアウトを外しました。

CMakeLists.txtは以下のようになりました。

<?xml version="1.0"?> <package format="2"> <name>toragi_pkg1</name> <version>0.0.0</version> <description>The toragi_pkg1 package</description> <!-- One maintainer tag required, multiple allowed, one person per tag --> <!-- Example: --> <!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> --> <maintainer email="takase@todo.todo">takase</maintainer> <!-- One license tag required, multiple allowed, one license per tag --> <!-- Commonly used license strings: --> <!-- BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 --> <license>TODO</license> <!-- Url tags are optional, but multiple are allowed, one per tag --> <!-- Optional attribute type can be: website, bugtracker, or repository --> <!-- Example: --> <!-- <url type="website">http://wiki.ros.org/toragi_pkg1</url> --> <!-- Author tags are optional, multiple are allowed, one per tag --> <!-- Authors do not have to be maintainers, but could be --> <!-- Example: --> <!-- <author email="jane.doe@example.com">Jane Doe</author> --> <!-- The *depend tags are used to specify dependencies --> <!-- Dependencies can be catkin packages or system dependencies --> <!-- Examples: --> <!-- Use depend as a shortcut for packages that are both build and exec dependencies --> <!-- <depend>roscpp</depend> --> <!-- Note that this is equivalent to the following: --> <!-- <build_depend>roscpp</build_depend> --> <!-- <exec_depend>roscpp</exec_depend> --> <!-- Use build_depend for packages you need at compile time: --> <build_depend>message_generation</build_depend> <!-- Use build_export_depend for packages you need in order to build against this package: --> <!-- <build_export_depend>message_generation</build_export_depend> --> <!-- Use buildtool_depend for build tool packages: --> <!-- <buildtool_depend>catkin</buildtool_depend> --> <!-- Use exec_depend for packages you need at runtime: --> <exec_depend>message_runtime</exec_depend> <!-- Use test_depend for packages you need only for testing: --> <!-- <test_depend>gtest</test_depend> --> <!-- Use doc_depend for packages you need only for building documentation: --> <!-- <doc_depend>doxygen</doc_depend> --> <buildtool_depend>catkin</buildtool_depend> <build_depend>roscpp</build_depend> <build_depend>std_msgs</build_depend> <build_export_depend>roscpp</build_export_depend> <build_export_depend>std_msgs</build_export_depend> <exec_depend>roscpp</exec_depend> <exec_depend>std_msgs</exec_depend> <!-- The export tag contains other, unspecified, tags --> <export> <!-- Other tools can request additional information be placed here --> </export> </package>

と変更したのですが、同様のエラーが発生してしまいます。
どうすればnode5.cppをbuildできるでしょうか。

ご回答お待ちしております。

##環境
wsl2
windows10 pro 64bit 2004
ubuntu 18.04
ros melodic

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
このサイトのスレッドに直接もとめている回答がありました。
CMakeFileLists.txtに
実際にはadd_dependencies(source_file_name package_name_generate_messages_cpp)
を追加すればいいらしいです。
自分の場合は
add_dependencies(node5 ${PROJECT_NAME}_generate_messages_cpp)を追加しました。
node5はc++の拡張子を除いたコンパイルしたいソースコードでそれ以外は固定です。
catkin_makeを実行したところ、ちゃんとコンパイルすることができました。

投稿2020/09/19 07:17

編集2020/09/19 07:20
oooolllliiiii1i

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問