#c #bash #makefile #eclipse-cdt #pkg-config
#c #bash #makefile #eclipse-cdt #pkg-config
Вопрос:
У меня есть следующий скрипт bash и makefile.
Возможно ли создать обычный проект eclipse CDT на основе этой информации или мне нужно кропотливо пройти и настроить все вручную.
Также как мне настроить пути pkg-config в Eclipse.
Я использую версию 2019-03, целью является встроенная Linux-система ARM, использующая SDK, созданный с помощью Yocto, а моя рабочая станция — Linux Mint 17.3
сценарий bash (исходный код):
export SDKTARGETSYSROOT=/opt/gad/1.0.0/sysroots/cortexa9hf-vfp-neon-gad-linux-gnueabi
export PATH=/opt/gad/1.0.0/sysroots/x86_64-gadsdk-linux/usr/bin:/opt/gad/1.0.0/sysroots/x86_64-gadsdk-linux/usr/bin/arm-gad-linux-gnueabi:$PATH
export PKG_CONFIG_SYSROOT_DIR=$SDKTARGETSYSROOT
export PKG_CONFIG_PATH=$SDKTARGETSYSROOT/usr/lib/pkgconfig
export CONFIG_SITE=/opt/gad/1.0.0/site-config-cortexa9hf-vfp-neon-gad-linux-gnueabi
export OECORE_NATIVE_SYSROOT="/opt/gad/1.0.0/sysroots/x86_64-gadsdk-linux"
export OECORE_TARGET_SYSROOT="$SDKTARGETSYSROOT"
export OECORE_ACLOCAL_OPTS="-I /opt/gad/1.0.0/sysroots/x86_64-gadsdk-linux/usr/share/aclocal"
export PYTHONHOME=/opt/gad/1.0.0/sysroots/x86_64-gadsdk-linux/usr
export CC="arm-gad-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=$SDKTARGETSYSROOT"
export CXX="arm-gad-linux-gnueabi-g -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=$SDKTARGETSYSROOT"
export CPP="arm-gad-linux-gnueabi-gcc -E -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=$SDKTARGETSYSROOT"
export AS="arm-gad-linux-gnueabi-as "
export LD="arm-gad-linux-gnueabi-ld --sysroot=$SDKTARGETSYSROOT"
export GDB=arm-gad-linux-gnueabi-gdb
export STRIP=arm-gad-linux-gnueabi-strip
export RANLIB=arm-gad-linux-gnueabi-ranlib
export OBJCOPY=arm-gad-linux-gnueabi-objcopy
export OBJDUMP=arm-gad-linux-gnueabi-objdump
export AR=arm-gad-linux-gnueabi-ar
export NM=arm-gad-linux-gnueabi-nm
export M4=m4
export TARGET_PREFIX=arm-gad-linux-gnueabi-
export CONFIGURE_FLAGS="--target=arm-gad-linux-gnueabi --host=arm-gad-linux-gnueabi --build=x86_64-linux --with-libtool-sysroot=$SDKTARGETSYSROOT"
export CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types"
export CXXFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types"
export LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
export CPPFLAGS=""
export OECORE_DISTRO_VERSION="1.0.0"
export OECORE_SDK_VERSION="1.0.0"
export ARCH=arm
export CROSS_COMPILE=arm-gad-linux-gnueabi-
Файл make:
EXTRACFLAGS =$(shell pkg-config --cflags libshareddata)
EXTRALDFLAGS =$(shell pkg-config --libs libshareddata)
EXTRACFLAGS =$(shell pkg-config --cflags libcan)
EXTRALDFLAGS =$(shell pkg-config --libs libcan)
EXTRACFLAGS =$(shell pkg-config --cflags libtguxtools)
EXTRALDFLAGS =$(shell pkg-config --libs libtguxtools)
EXTRACFLAGS =$(shell pkg-config --cflags libcjson)
EXTRALDFLAGS =$(shell pkg-config --libs libcjson)
EXTRACFLAGS =$(shell pkg-config --cflags libsettings)
EXTRALDFLAGS =$(shell pkg-config --libs libsettings)
EXTRACFLAGS =$(shell pkg-config --cflags libactiagps)
EXTRALDFLAGS =$(shell pkg-config --libs libactiagps)
EXTRACFLAGS =$(shell pkg-config --cflags libJ1939)
EXTRALDFLAGS =$(shell pkg-config --libs libJ1939)
EXTRACFLAGS =$(shell pkg-config --cflags dbus-c -shiny-1 glib-2.0 dbus-glib-1 dbus-1 actia-platform-1)
EXTRALDFLAGS =$(shell pkg-config --libs dbus-c -shiny-1 glib-2.0 dbus-glib-1 dbus-1 actia-platform-1)
EXTRACFLAGS =-DTGUR_PLATFORM
EXTRALDFLAGS =-L/media/apps/userfs/lib/TGU/
EXTRACFLAGS =-I./inc/ -std=c 11
CFLAGS_RLINK=-Wl,-rpath
#Get Current directory
CURDIR=$(shell pwd)
OUTPUT_BIN_DIR=${CURDIR}/output/bin/
ISA_BIN=${OUTPUT_BIN_DIR}ISA_daemon
SRC=$(wildcard src/*.c)
OBJ=$(patsubst %.c,%.o,$(SRC))
LibIsaLibraryPath=$(wildcard lib/libIsaLibrary.so*)
LibIsaLibrary=$(patsubst lib/%,%,$(LibIsaLibraryPath))
LibIsaUpdaterLibraryPath=$(wildcard lib/libIsaUpdaterLibrary.so*)
LibIsaUpdaterLibrary=$(patsubst lib/%,%,$(LibIsaUpdaterLibraryPath))
LibGeoFencingLibraryPath=$(wildcard lib/libGeoFencingLibrary.so*)
LibGeoFencingLibrary=$(patsubst lib/%,%,$(LibGeoFencingLibraryPath))
LibActiaGeoJsonLibraryPath=$(wildcard lib/libActiaGeoJsonLibrary.so*)
LibActiaGeoJsonLibrary=$(patsubst lib/%,%,$(LibActiaGeoJsonLibraryPath))
EXTRALDFLAGS =-lpthread
EXTRALDFLAGS =-lrt
EXTRALDFLAGS =-ldl
EXTRALDFLAGS =-ldl
EXTRALDFLAGS =-lstdc
ISA_SRC_PATH=${CURDIR}/src/
all: ISA_daemon
ISA_daemon:${OBJ}
mkdir -p ${OUTPUT_BIN_DIR}
${CXX} -Wall -o ${ISA_BIN} ${OBJ} ${EXTRALDFLAGS}
-include $(OBJ:.o=.d)
%.o: %.c
${CXX} -o $@ -c ${EXTRACFLAGS} $(CFLAGS_RLINK) $*.c
${CXX} -MM -MT $@ ${EXTRACFLAGS} $(CFLAGS_RLINK) $*.c > $*.d
clean:
@find ${ISA_SRC_PATH} -name "*.o" | xargs rm -rvf
@find ${ISA_SRC_PATH} -name "*.d" | xargs rm -rvf
@find ${CURDIR} -name "*.~" | xargs rm -rvf
@rm -rvf ${ISA_BIN}
.PHONY: all ISA_daemon clean
Спасибо
Тим