Skip to content

编译报错问题及解决方案 #2

@Liu404mob

Description

@Liu404mob

https://github.com/Zhefan-Xu/time_optimizer 我catkin build time_optimizer 编译这个项目,报错:Errors << time_optimizer:make /home/xtdrone/catkin_ws/logs/time_optimizer/build.make.001.log
/usr/bin/ld:/home/xtdrone/catkin_ws/src/CMU-autoframework/time_optimizer/include/time_optimizer/third_party/lib/x86/libmosek64.so: file format not recognized; treating as linker script
/usr/bin/ld:/home/xtdrone/catkin_ws/src/CMU-autoframework/time_optimizer/include/time_optimizer/third_party/lib/x86/libmosek64.so:0: syntax error
collect2: error: ld returned 1 exit status
make[2]: *** [/home/xtdrone/catkin_ws/devel/.private/time_optimizer/lib/libtime_optimizer.so] Error 1
make[1]: *** [CMakeFiles/time_optimizer.dir/all] Error 2
make: *** [all] Error 2

这个错误通常是因为 libmosek64.so 文件不是有效的共享库文件,可能是因为它是一个错误的文件格式或未正确链接的库。以下是可能的解决方案:

1. 确认 libmosek64.so 文件格式

首先,检查该文件是否是有效的共享库文件。您可以使用以下命令来检查文件格式:

file /home/xtdrone/catkin_ws/src/CMU-autoframework/time_optimizer/include/time_optimizer/third_party/lib/x86/libmosek64.so

这将显示文件的类型,如果不是 ELF 共享对象文件,那么该文件可能是无效的。

2. 下载正确的 libmosek64.so 文件

如果 libmosek64.so 文件无效或损坏,您可以从 MOSEK 官方网站重新下载。以下是步骤:

  1. 前往 MOSEK官网,创建账号并下载对应系统和架构的 MOSEK SDK。
  2. 解压下载的文件,并找到 libmosek64.so 文件。
  3. 将正确的 libmosek64.so 文件替换到项目路径中:/home/xtdrone/catkin_ws/src/CMU-autoframework/time_optimizer/include/time_optimizer/third_party/lib/x86/

3. 确保库路径设置正确

CMakeLists.txt 文件中,确保添加了正确的库路径:

link_directories(${PROJECT_SOURCE_DIR}/include/time_optimizer/third_party/lib/x86)

并且在 target_link_libraries 中正确链接了 mosek 库,例如:

target_link_libraries(time_optimizer
  ${catkin_LIBRARIES}
  mosek64  # 确保库名正确
)

4. 确保文件权限

确认 libmosek64.so 文件有正确的读取和执行权限:

chmod +rx /home/xtdrone/catkin_ws/src/CMU-autoframework/time_optimizer/include/time_optimizer/third_party/lib/x86/libmosek64.so

5. 清理并重新编译

清理编译缓存并重新编译:

catkin build time_optimizer

如果这些步骤无法解决问题,请确保您使用的 libmosek64.so 是针对您系统的架构和操作系统构建的。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions