在这之前需要注意以下几点:
1、需要 确保CLion能连接Ubuntu14
2、cmakelist.txt文件配置
3、知道部署路径:
问题一:/usr/bin/ld: cannot open output file GreedySnake: Is a directory
否则就会出现make以后应该生成一个可执行文件,而你的/tmp/tmp.b0EQetLhHD/cmake-build-debug(你的部署路径)下有一个同名的文件夹,所以会报错。
问题二:error adding symbols: File in wrong format
报错的可能原因:
-
不匹配的架构:您的项目可能在尝试链接一个与其目标架构不匹配的库。例如,如果您的项目是为 64 位架构编译的,而您尝试链接的是一个 32 位的库,或反之亦然。
-
使用了错误的库版本:
如果您使用的是不同版本的 Qt 库,可能会导致这个错误。确保使用的 Qt 库与您的应用程序版本一致。 -
损坏的库文件:
该库文件可能已损坏,导致无法正常链接。 -
编译工具链不匹配:
您可能在使用不同的编译工具链(如 GCC、G++ 等)来编译代码和链接库,确保这两者一致。
解决方法:
-
检查库文件架构:
使用file
命令检查库文件的架构:确认它与您的应用程序的目标架构一致(32 位或 64 位)file /opt/qtlib560_base/lib/libQt5Core.so.5.6.0 //opt/qtlib560_base/lib/libQt5Core.so.5.6.0是我的编译链路径
-
确认 Qt 版本一致性:
检查您在项目中引用的 Qt 库版本与安装的 Qt 版本是否匹配。可以使用qmake --version
查看当前使用的 Qt 版本。 -
重新安装 Qt 库:
如果可能,尝试重新安装或更新 Qt 相关库,以确保没有损坏。 -
确认编译工具链一致性:
确保在构建项目和链接库时使用相同的编译工具链。例如,确保在使用 GCC 时都使用相同的 GCC 版本。
检查后发现我的错误原因属于第一种:项目与其目标架构不匹配,我的Ubuntu14里面安装的编译库是32位的,而我在windows创建的qt项目是64位的(我的电脑上有两个版本的Qt,一个14.02(64位),一个4.3.0(32位),顺便知道了为啥我每次在4.3.0里面运行不了这个项目了......)
我有两个选择:
第一:在Ubuntu14里面再安装64位的编译库。
第二:直接在32位的Qt里面新建项目把原本的项目CV过来就好了(就是创建对应32位的项目)。
问题三:语法错误
我遇到的是:
在某些旧版的编译器、特定的项目或库中,可能不完全支持 C++11 或以上的标准,这可能导致无法识别 nullptr
,从而需要使用 NULL
来替代
最后要检查你生成的可执行文件是不是arm架构,才能在开发板上运行