致命错误:json-c/json.h:在ubuntu x64上没有针对raspberry pi arm的交叉编译文件或目录
我正试图在我的UbuntuX64笔记本电脑上为Raspberry Pi编译代码 我能够在Ubuntu笔记本电脑上编译和运行代码,没有任何问题。但是,当我尝试为Raspberry Pi编译它时,我得到以下错误:致命错误:json-c/json.h:在ubuntu x64上没有针对raspberry pi arm的交叉编译文件或目录,c,linux,gcc,raspberry-pi,cross-compiling,C,Linux,Gcc,Raspberry Pi,Cross Compiling,我正试图在我的UbuntuX64笔记本电脑上为Raspberry Pi编译代码 我能够在Ubuntu笔记本电脑上编译和运行代码,没有任何问题。但是,当我尝试为Raspberry Pi编译它时,我得到以下错误: $make /home/nmohan/Development/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi-gcc -g -Wall -Wextra -I /home/nmohan/github/NiRobot/inc -f
$make
/home/nmohan/Development/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi-gcc -g -Wall -Wextra -I /home/nmohan/github/NiRobot/inc -fPIC -shared -L/home/nmohan/github/NiRobot/Obj_arm -Wl,-rpath=/home/nmohan/github/NiRobot/Obj -o /home/nmohan/github/NiRobot/Obj_arm/libRSXA.so /home/nmohan/github/NiRobot/lib/RSXA.c -lNMT_stdlib -lNMT_log -ljson-c -lc -Ljson-c
/home/nmohan/github/NiRobot/lib/RSXA.c:11:25: fatal error: json-c/json.h: No such file or directory
compilation terminated.
Makefile:101: recipe for target '/home/nmohan/github/NiRobot/Obj_arm/libRSXA.so' failed
make: *** [/home/nmohan/github/NiRobot/Obj_arm/libRSXA.so] Error 1
#---------------------------------------#
# #
#全局变量#
# #
#---------------------------------------#
PROJ_DIR=/home/nmohan/github/NiRobot
BIN_DIR=$(项目目录)/BIN
对象目录=$(项目目录)/对象目录
OBJ_DIR_ARM=$(项目目录)/OBJ_ARM
INC_DIR=$(项目目录)/INC
LIB_DIR=$(PROJ_DIR)/LIB
OUT_DIR=$(项目目录)/bld
OUT_DIR_ARM=$(项目目录)/bld_ARM
CFLAGS=-g-Wall-Wextra-I$(INC_DIR)
SFLAGS=-fPIC-共享
RPATH=-L$(对象目录)-Wl,-RPATH=$(对象目录)
RPATH\u ARM=-L$(对象目录\u ARM)-Wl,-RPATH=$(对象目录)
GCC_DIR=/home/nmohan/Development/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi-GCC
#---------------------------------------#
# #
#目标#
# #
#---------------------------------------#
OBJS=NMT_stdlib.so\
NMT_log.so\
RSXA.so\
PCA9685.so\
苏博士\
凸轮电机控制\
HCxSR04.so
#---------------------------------------#
# #
#依赖性#
# #
#---------------------------------------#
NMT_标准lib_LIBS=-lc
NMT_LOG_LIBS=-lc\
-lNMT_标准实验室\
RSXA_LIBS=-lNMT_stdlib\
-lNMT_日志\
-ljson-c\
-信用证
PCA9685_LIBS=-lNMT_stdlib\
-lNMT_日志\
-信用证\
-lwiringPi\
-lcrypt\
-lm\
-轻轨\
-lRSXA
MTDR_LIBS=-lNMT_stdlib\
-lNMT_日志\
-lwiringPi\
-lPCA9685\
-lcrypt\
-lm\
-轻轨\
-lRSXA
凸轮电机控制盘=-lNMT标准盘\
-lNMT_日志\
-lwiringPi\
-lMTDR\
-lPCA9685\
-lcrypt\
-lm\
-轻轨\
-lRSXA
HCxSR04_LIBS=-lNMT_log\
-lNMT_标准实验室\
-lRSXA\
-lwiringPi\
-lcrypt\
-lm\
-轻轨
TARGET_OBJS:=$(foreach OBJ,$(OBJS),$(OBJ_DIR)/lib$(OBJ))
TARGET_OBJS_ARM:=$(foreach OBJ,$(OBJS),$(OBJ_DIR_ARM)/lib$(OBJ))
全部:$(目标对象)\
$(目标对象和手臂)
冒牌货:全部
$(对象目录)/lib%.so:$(对象目录)/%.c$(对象目录)/%.h
gcc$(CFLAGS)$(SFLAGS)$(RPATH)-o$@$<$($(*)_LIBS)
$(OBJ_DIR_ARM)/lib%.so:$(lib_DIR)/%.c$(INC_DIR)/%.h
$(GCC_DIR)$(CFLAGS)$(SFLAGS)$(RPATH_ARM)-o$@$<$($(*)_LIBS)
$(对象目录)/库%.so:$(库目录)/%.cpp$(公司目录)/%.hpp
g++$(CFLAGS)$(SFLAGS)$(RPATH)-o$@$<$($(*)LIBS)
它取决于json-c/json.h。您需要包含这些未找到的文件 它取决于json-c/json.h。您需要包含这些未找到的文件 如何提供该文件?如果我不交叉编译,我没有问题。我如何提供该文件?如果我不交叉编译,我就没有问题。
#---------------------------------------#
# #
# Global Varibles #
# #
#---------------------------------------#
PROJ_DIR = /home/nmohan/github/NiRobot
BIN_DIR = $(PROJ_DIR)/bin
OBJ_DIR = $(PROJ_DIR)/Obj
OBJ_DIR_ARM = $(PROJ_DIR)/Obj_arm
INC_DIR = $(PROJ_DIR)/inc
LIB_DIR = $(PROJ_DIR)/lib
OUT_DIR = $(PROJ_DIR)/bld
OUT_DIR_ARM = $(PROJ_DIR)/bld_arm
CFLAGS = -g -Wall -Wextra -I $(INC_DIR)
SFLAGS = -fPIC -shared
RPATH = -L$(OBJ_DIR) -Wl,-rpath=$(OBJ_DIR)
RPATH_ARM = -L$(OBJ_DIR_ARM) -Wl,-rpath=$(OBJ_DIR)
GCC_DIR = /home/nmohan/Development/arm-bcm2708-linux-gnueabi/bin/arm-bcm2708-linux-gnueabi-gcc
#---------------------------------------#
# #
# Targets #
# #
#---------------------------------------#
OBJS = NMT_stdlib.so \
NMT_log.so \
RSXA.so \
PCA9685.so \
MTDR.so \
CAM_MOTOR_CTRL.so \
HCxSR04.so
#---------------------------------------#
# #
# Dependancies #
# #
#---------------------------------------#
NMT_STDLIB_LIBS = -lc
NMT_LOG_LIBS = -lc \
-lNMT_stdlib \
RSXA_LIBS = -lNMT_stdlib \
-lNMT_log \
-ljson-c \
-lc
PCA9685_LIBS = -lNMT_stdlib \
-lNMT_log \
-lc \
-lwiringPi \
-lcrypt \
-lm \
-lrt \
-lRSXA
MTDR_LIBS = -lNMT_stdlib \
-lNMT_log \
-lwiringPi \
-lPCA9685 \
-lcrypt \
-lm \
-lrt \
-lRSXA
CAM_MOTOR_CTRL_LIBS = -lNMT_stdlib \
-lNMT_log \
-lwiringPi \
-lMTDR \
-lPCA9685 \
-lcrypt \
-lm \
-lrt \
-lRSXA
HCxSR04_LIBS = -lNMT_log \
-lNMT_stdlib \
-lRSXA \
-lwiringPi \
-lcrypt \
-lm \
-lrt
TARGET_OBJS := $(foreach OBJ,$(OBJS),$(OBJ_DIR)/lib$(OBJ))
TARGET_OBJS_ARM := $(foreach OBJ,$(OBJS),$(OBJ_DIR_ARM)/lib$(OBJ))
all: $(TARGET_OBJS) \
$(TARGET_OBJS_ARM)
.PHONY: all
$(OBJ_DIR)/lib%.so: $(LIB_DIR)/%.c $(INC_DIR)/%.h
gcc $(CFLAGS) $(SFLAGS) $(RPATH) -o $@ $< $($(*)_LIBS)
$(OBJ_DIR_ARM)/lib%.so: $(LIB_DIR)/%.c $(INC_DIR)/%.h
$(GCC_DIR) $(CFLAGS) $(SFLAGS) $(RPATH_ARM) -o $@ $< $($(*)_LIBS)
$(OBJ_DIR)/lib%.so: $(LIB_DIR)/%.cpp $(INC_DIR)/%.hpp
g++ $(CFLAGS) $(SFLAGS) $(RPATH) -o $@ $< $($(*)_LIBS)