NVIDIA Jetson TX2中无法识别的命令行选项“ -m64”

时间:2018-07-20 11:13:56

标签: linux makefile nvidia-jetson

我正在使用NVIDIA Jetson TX2。我正在尝试使用DynamixelSDK的“ make”生成一个“ .so”文件。但我收到此错误:

mkdir -p ./.objects/
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include/dynamixel_sdk -m64 -fPIC -g -c ../../src/dynamixel_sdk/group_bulk_read.c -o .objects/group_bulk_read.o
gcc: error: unrecognized command line option ‘-m64’
Makefile:114: recipe for target '.objects/group_bulk_read.o' failed
make: *** [.objects/group_bulk_read.o] Error 1

您可以在以下位置访问Make文件:https://pastebin.com/zz9MNnqp

这是MakeFile的一部分:

#---------------------------------------------------------------------
# C COMPILER, COMPILER FLAGS, AND TARGET PROGRAM NAME
#---------------------------------------------------------------------
DIR_DXL     = ../..
DIR_OBJS    = ./.objects

INSTALL_ROOT = /usr/local

MAJ_VERSION = 2
MIN_VERSION = 0
REV_VERSION = 0

TARGET      = libdxl_x64_c.so
TARGET1     = $(TARGET).$(MAJ_VERSION)
TARGET2     = $(TARGET).$(MAJ_VERSION).$(MIN_VERSION)
TARGET3     = $(TARGET).$(MAJ_VERSION).$(MIN_VERSION).$(REV_VERSION)

CHK_DIR_EXISTS = test -d
PRINT       = echo
STRIP       = strip
AR          = ar
ARFLAGS     = cr
LD          = g++
LDFLAGS     = -shared -fPIC $(FORMAT)#-Wl,-soname,dxl
LD_CONFIG   = ldconfig
CP          = cp
CP_ALL      = cp -r
RM          = rm
RM_ALL      = rm -rf
SYMLINK     = ln -s
MKDIR       = mkdir
CC          = gcc
CX          = g++
CCFLAGS     = -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c $(INCLUDES) $(FORMAT) -fPIC -g
CXFLAGS     = -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c $(INCLUDES) $(FORMAT) -fPIC -g
FORMAT     = -m64
INCLUDES    += -I$(DIR_DXL)/include/dynamixel_sdk
 #---------------------------------------------------------------------

尝试了MakeFile的32位和64位版本(对于Linux)。

我不知道要解决这个错误。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

makefile假定目标是x86-64体系结构。第一步,您可以简单地从-m64行中删除FORMAT选项,以进一步了解构建过程。但是,如果项目从未移植到其他体系结构,那么很可能还有其他目标依赖项。

答案 1 :(得分:0)

如果未正确定义march(即目标计算机的体系结构),则会出现此错误。 -m64行表示它正在针对64位体系结构进行编译。如果您看到32位Makefile,则为-m32

尝试更改makefile,使其读取类似:

...

FORMAT     = -march=armv8-a+crypto -mcpu=cortex-a57+crypto

....

3月通常用于Jetson TX2。

此外,对于TX2,要记住的GCC选项是:

  • 使用最新的GCC工具链7.2
  • 使用CLANG llvm前端替代GCC
  • -march = armv8.a + crypto + simd,这将启用SIMD,加密和浮点指令集,并且可能会有所帮助。