In file included from src/sdk_server/sdk_server.h:12:0, from src/sdk_server/mp4_write.c:21: /opt/x3m-linux/aarch64-linux/aarch64-linux-gnu/libc/usr/include/pthread.h:233:12: 附注: 需要类型‘void * (*)(void *)’,但实参的类型为‘void (*)()’ extern int pthread_create (pthread_t *__restrict __newthread, ^~~~~~~~~~~~~~ <内置>: recipe for target 'src/sdk_server/mp4_write.o' failed make: *** [src/sdk_server/mp4_write.o] Error 1
时间: 2024-02-01 16:01:56 浏览: 27
这是一个编译错误,错误信息显示在你的代码中有一个函数调用参数类型不匹配的问题。具体地说,你在调用 `pthread_create` 函数时,第三个参数的类型应该是 `void* (*)(void*)`,也就是一个返回 `void*` 类型、接受一个 `void*` 类型参数的函数指针。但是你传入的参数是 `void (*)()`,也就是一个不返回值、也不接受参数的函数指针,因此编译器报错了。你需要修改你的代码,将第三个参数改为正确的函数指针类型。
相关问题
In file included from /usr/include/openssl/e_os2.h:13, from /usr/include/openssl/ssl.h:15,
这个错误提示是缺少OpenSSL的头文件,可以尝试安装OpenSSL开发包并将其添加到编译器的头文件搜索路径中。具体操作取决于你使用的操作系统和编译器。例如,在Ubuntu上,可以运行以下命令来安装OpenSSL开发包:
```
sudo apt-get install libssl-dev
```
然后,可以在编译命令中添加头文件路径,例如:
```
gcc -I/usr/include/openssl your_program.c -o your_program -lssl -lcrypto
```
其中,`-I`选项指定了头文件搜索路径,`-lssl`和`-lcrypto`选项指定了需要链接的OpenSSL库。
/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` 头文件了。