Ubuntu:add_executable(trajectory src/trajectory.cpp)的错误在哪里
时间: 2023-11-16 08:03:57 浏览: 34
这个错误可能是因为在CMakeLists.txt文件中没有正确指定源文件的路径。请确保在该文件中正确指定了路径,例如:
```
cmake_minimum_required(VERSION 3.0)
project(my_project)
add_executable(my_executable src/main.cpp src/trajectory.cpp)
```
可以看到,该示例中指定了源文件的路径为`src/main.cpp`和`src/trajectory.cpp`。请确保您的`CMakeLists.txt`文件中类似地指定了正确的路径。
相关问题
add_executable(trajectory src/trajectory.cpp)的正确方式
`add_executable` 函数用于创建一个可执行文件,需要指定可执行文件的名称和源代码文件的路径。您需要在 `add_executable` 函数中指定可执行文件的名称和路径,如下所示:
```
add_executable(trajectory src/trajectory.cpp)
```
在上面的示例中,我们指定了可执行文件的名称为 `trajectory`,源代码文件的路径为 `src/trajectory.cpp`。请确保您的 `CMakeLists.txt` 文件中指定的路径和文件名都是正确的。
/home/ubuntu/catkin_ws/src/navigation/map_server/src/main.cpp:47:30: fatal error: nav_msgs/LoadMap.h: No such file or directory compilation terminated. CMakeFiles/map_server.dir/build.make:62: recipe for target 'CMakeFiles/map_server.dir/src/main.cpp.o' failed
这个错误提示是说在编译 `map_server` 时,编译器无法找到 `nav_msgs/LoadMap.h` 这个头文件。解决方法是需要在 `CMakeLists.txt` 文件中加入依赖项,使得编译器能够找到该头文件。具体的方法是在 `CMakeLists.txt` 的 `find_package()` 函数中添加 `message_generation` 依赖项,如下所示:
```
find_package(catkin REQUIRED COMPONENTS
roscpp
tf
nav_msgs
message_generation
)
```
然后,在 `CMakeLists.txt` 的 `add_executable()` 函数中,将 `message_generation` 依赖项添加到 `target_link_libraries()` 函数的参数列表中,如下所示:
```
add_executable(map_server
src/main.cpp
)
target_link_libraries(map_server
${catkin_LIBRARIES}
${Boost_LIBRARIES}
${PCL_LIBRARIES}
${YAML_CPP_LIBRARIES}
message_generation
)
```
这样就可以让编译器找到 `nav_msgs/LoadMap.h` 头文件了。