Jetson Nano编译DLPC-API时报错“无法识别命令行选项-m32”如何解决?
问题原因
Jetson Nano为AArch64(ARM64)架构,自带的GCC编译器不支持-m32参数——该参数是用于x86架构下生成32位程序的编译选项,DLPC-API的CMake配置脚本默认针对x86架构添加了该参数,未适配ARM架构,因此编译时报错。
解决步骤
- 第一步:删除CMake配置中的
-m32参数
找到DLPC-API根目录、样本目录(dlpc654x_samples)或API目录下的CMakeLists.txt文件,搜索所有包含-m32的行,一般格式类似:
直接删除上述行中的set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -m32")-m32参数即可。 - 第二步:清理旧构建缓存
进入之前的build目录,删除所有历史生成文件:cd ~/Desktop/Texas Instruments/DLPC-API-1.8/samples/dlpc654x_samples/build rm -rf ./* - 第三步:重新生成构建文件并编译
重新执行cmake和make命令,若仍有架构识别异常,可手动指定ARM64编译参数:cmake ../ -DCMAKE_C_FLAGS="-march=armv8-a" -DCMAKE_CXX_FLAGS="-march=armv8-a" make -j4
后续校验
编译成功后生成的可执行文件可直接在Jetson Nano上运行,若出现链接依赖错误,只需安装对应AArch64版本的依赖库即可。
内容的提问来源于stack exchange,提问作者PJL
相关产品推荐
相关产品推荐

