记录使用珞石机械臂SDK时的问题

记录使用珞石机械臂SDK时的问题:

本文作者的系统是Ubuntu 22.04,使用Cmake编译rokae机械臂C++的SDK时出现很奇怪的问题,特地记录一下,供后来者学习


问题记录

本文作者先是使用git工具调取github上的珞石机械臂SDK包。
打开终端输入如下指令。

git clone https://github.com/RokaeRobot/xCoreSDK-CPP.git

然后创建一个 build 文件夹,使用cmake编译整个工程。


cd ./xCoreSDK-CPP/
mkdir -p build
cd ./build/
cmake ..
make

可是在上述指令运行完毕后,整个工程编译的的过程中出现如下的问题

[  4%] Building CXX object example/CMakeFiles/sdk_example.dir/sdk_example.cpp.o
[  8%] Linking CXX executable ../bin/sdk_example
/usr/bin/ld:../../lib/Linux/cpp/x86_64/libxCoreSDK.a: file format not recognized; treating as linker script
/usr/bin/ld:../../lib/Linux/cpp/x86_64/libxCoreSDK.a:1: syntax error
collect2: error: ld returned 1 exit status
make[2]: *** [example/CMakeFiles/sdk_example.dir/build.make:99:bin/sdk_example] 错误 1
make[1]: *** [CMakeFiles/Makefile2:207:example/CMakeFiles/sdk_example.dir/all] 错误 2
make: *** [Makefile:136:all] 错误 2

我们可以发现工程在链接的时候出现了错误,他说文件格式并未能识别。一开始我检查了
CMakeList.txt文件是不是有问题,后来查阅 MakeFile均未出现问题。随后开始面向CSDN编程,我找到了这篇文章。

https://blog.csdn.net/qq_39093373/article/details/118220195?ops_request_misc=%257B%2522request%255Fi

此文章作者也出现了类似的问题,是由于在windows系统中解压压缩包再转到linux下出现的问题,可是哥们全程都使用linux系统,而且是直接git clone命令,完全不存在解压的情况呀。于是本文作者痛定思痛,开始检查出现错误的这个文件。libxCoreSDK.a是linux系统中的静态链接库文件,用于程序的封装,像珞石这样的大长使用这种方式来发布SDK也是很正常的,但是为什么系统会识别不了呢?查阅了很多资料也无果,直到我使用VScode打开工程的时候出现了端倪。
在这里插入图片描述怎么你家的静态链接库文件就几行字啊?虽然哥们学识尚浅但是也不能这么糊弄我呀。于是我使用file命令查看这个文件的类型。

file ./lib/Linux/cpp/x86_64/libxCoreSDK.a

好家伙命令行直接提示库文件变成了ASCII文本形式,如下所示:

./lib/Linux/cpp/x86_64/libxCoreSDK.a: `ASCII text`

然后我们再来查看一下文件的大小

fishros@fishros-linux:~/xCoreSDK-CPP$ ls -lh ./lib/Linux/cpp/x86_64/
总计 4.2M
-rw-rw-r-- 1 fishros fishros  132  116 14:22 libxCoreSDK.a
-rw-rw-r-- 1 fishros fishros 2.0M  116 14:22 libxCoreSDK.nomodel.so.0.3.4
-rw-rw-r-- 1 fishros fishros 2.3M  116 14:22 libxCoreSDK.so.0.3.4
-rw-rw-r-- 1 fishros fishros  132  116 14:22 libxMateModel.a

整个文件夹只有4.2M大,而两个库文件只有132Bytes,这不是在搞笑吗。于是我又查了很多这是什么情况,最终在一篇关于CUDA的github项目上找到了类似的问题。
在这里插入图片描述

在评论区的各类外国友人里面看到了一位亲切的中国人,用着纯正的中国腔告诉了我这个疑难杂症最好的解决办法。

在这里插入图片描述

而你,我的朋友,你是真正的英雄!

于是我删除了/xCoreSDK-CPP/lib/Linux/cpp/x86_64/文件夹下面的libxCoreSDK.alibxMateModel.a文件,重新在rokae的github网址上下载,只下载这两个静态链接库,再次查看文件大小。

fishros@fishros-linux:~/xCoreSDK-CPP$ ls -lh ./lib/Linux/cpp/x86_64/
总计 13M
-rw-rw-r-- 1 fishros fishros 5.1M  116 15:07 libxCoreSDK.a
-rw-rw-r-- 1 fishros fishros 2.0M  116 14:22 libxCoreSDK.nomodel.so.0.3.4
-rw-rw-r-- 1 fishros fishros 2.3M  116 14:22 libxCoreSDK.so.0.3.4
-rw-rw-r-- 1 fishros fishros 3.5M  116 03:22 libxMateModel.a
fishros@fishros-linux:~/xCoreSDK-CPP$ file ./lib/Linux/cpp/x86_64/libxCoreSDK.a
./lib/Linux/cpp/x86_64/libxCoreSDK.a: `current ar archive`


明显大了很多,而且查看文件的类型也终于不是ASCII码的格式,现在进行编译试试。

[  4%] Building CXX object example/CMakeFiles/sdk_example.dir/sdk_example.cpp.o
[  8%] Linking CXX executable ../bin/sdk_example
[  8%] Built target sdk_example
[ 12%] Building CXX object example/CMakeFiles/move_example.dir/move_example.cpp.o
[ 16%] Linking CXX executable ../bin/move_example
[ 16%] Built target move_example
[ 20%] Building CXX object example/CMakeFiles/path_record.dir/path_record.cpp.o
[ 25%] Linking CXX executable ../bin/path_record
[ 25%] Built target path_record
[ 29%] Building CXX object example/CMakeFiles/rl_project.dir/rl_project.cpp.o
[ 33%] Linking CXX executable ../bin/rl_project
[ 33%] Built target rl_project
[ 37%] Building CXX object example/CMakeFiles/read_robot_state.dir/read_robot_state.cpp.o
[ 41%] Linking CXX executable ../bin/read_robot_state
[ 41%] Built target read_robot_state
[ 45%] Building CXX object example/rt/CMakeFiles/joint_position_control.dir/joint_position_control.cpp.o
[ 50%] Linking CXX executable ../../bin/joint_position_control
[ 50%] Built target joint_position_control
[ 54%] Building CXX object example/rt/CMakeFiles/joint_impedance_control.dir/joint_impedance_control.cpp.o
[ 58%] Linking CXX executable ../../bin/joint_impedance_control
[ 58%] Built target joint_impedance_control
[ 62%] Building CXX object example/rt/CMakeFiles/cartesian_impedance_control.dir/cartesian_impedance_control.cpp.o
[ 66%] Linking CXX executable ../../bin/cartesian_impedance_control
[ 66%] Built target cartesian_impedance_control
[ 70%] Building CXX object example/rt/CMakeFiles/move_commands.dir/move_commands.cpp.o
[ 75%] Linking CXX executable ../../bin/move_commands
[ 75%] Built target move_commands
[ 79%] Building CXX object example/rt/CMakeFiles/joint_s_line.dir/joint_s_line.cpp.o
[ 83%] Linking CXX executable ../../bin/joint_s_line
[ 83%] Built target joint_s_line
[ 87%] Building CXX object example/rt/CMakeFiles/cartesian_s_line.dir/cartesian_s_line.cpp.o
[ 91%] Linking CXX executable ../../bin/cartesian_s_line
[ 91%] Built target cartesian_s_line
[ 95%] Building CXX object example/rt/CMakeFiles/rt_industrial.dir/rt_industrial.cpp.o
[100%] Linking CXX executable ../../bin/rt_industrial
[100%] Built target rt_industrial
fishros@fishros-linux:~/xCoreSDK-CPP/build$ make install
Consolidate compiler generated dependencies of target sdk_example
[  8%] Built target sdk_example
Consolidate compiler generated dependencies of target move_example
[ 16%] Built target move_example
Consolidate compiler generated dependencies of target path_record
[ 25%] Built target path_record
Consolidate compiler generated dependencies of target rl_project
[ 33%] Built target rl_project
Consolidate compiler generated dependencies of target read_robot_state
[ 41%] Built target read_robot_state
Consolidate compiler generated dependencies of target joint_position_control
[ 50%] Built target joint_position_control
Consolidate compiler generated dependencies of target joint_impedance_control
[ 58%] Built target joint_impedance_control
Consolidate compiler generated dependencies of target cartesian_impedance_control
[ 66%] Built target cartesian_impedance_control
Consolidate compiler generated dependencies of target move_commands
[ 75%] Built target move_commands
Consolidate compiler generated dependencies of target joint_s_line
[ 83%] Built target joint_s_line
Consolidate compiler generated dependencies of target cartesian_s_line
[ 91%] Built target cartesian_s_line
Consolidate compiler generated dependencies of target rt_industrial
[100%] Built target rt_industrial
Install the project...
-- Install configuration: "Release"
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/lib/libxCoreSDK.nomodel.so.0.3.4
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/sdk_example
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/move_example
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/path_record
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/rl_project
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/read_robot_state
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/joint_position_control
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/joint_impedance_control
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/cartesian_impedance_control
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/move_commands
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/joint_s_line
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/cartesian_s_line
-- Installing: /home/fishros/xCoreSDK-CPP/build/dist/bin/rt_industrial
fishros@fishros-linux:~/xCoreSDK-CPP/build$ ./bin/sdk_example 
网络异常: 网络连接错误

最后运行一下bin文件下的sdk_example程序,没有出现奇怪的错误,只是显示网络连接异常,可能是因为我没有连接机械臂的原因,这里如果有了解为什么的大佬也欢迎和我讨论。所以编译问题终于解决,哥们也终于能好好睡个觉了。

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值