2017-02-05 14 views
1

Я пытаюсь использовать библиотеку ECC на contiki os.
Но у меня есть ошибка для зависимости. Я думаю, проблема в моем Makefile, но я не уверен, где это неправильно.Неустранимая ошибка: открытие файла зависимостей

Я скачал из источника https://github.com/nist-emntg/ecc-light-certificate, но у меня была проблема с использованием git submodule update после I git клона из источника, так что я вручную загрузить и вставить файл Contiki в папку Contiki.
Может ли это быть проблемой?

Сообщение об ошибке

> make TARGET=cooja clean 
rm -f *~ *core core *.srec \ 
    *.lst *.map \ 
    *.cprg *.bin *.data contiki*.a *.firmware core-labels.S *.ihex *.ini \ 
    *.ce *.co 
rm -rf 
rm -rf obj_cooja 

> make sender-node.cooja TARGET=cooja 
    CC  sender-node.c 
sender-node.c: In function 'process_thread_sender_node_process': 
sender-node.c:104:11: warning: unused variable 'pubKey' [-Wunused-variable] 
mkdir obj_cooja 
    CC  ../../../platform/cooja/./contiki-cooja-main.c 
../../../platform/cooja/./contiki-cooja-main.c: In function 'contiki_init': 
../../../platform/cooja/./contiki-cooja-main.c:230:14: warning: variable 'shortaddr' set but not used [-Wunused-but-set-variable] 
../../../platform/cooja/./contiki-cooja-main.c:288:5: warning: passing argument 1 of 'rimeaddr_copy' from incompatible pointer type [enabled by default] 
../../../core/./net/rime/rimeaddr.h:79:6: note: expected 'union rimeaddr_t *' but argument is of type 'uint8_t *' 
mv contiki-cooja-main.o obj_cooja/mtype371.o 
    CC  ../../../../ecc/ecc.c 
../../../../ecc/ecc.c:700:1: fatal error: opening dependency file obj_cooja/../../../../ecc/ecc.d: No such file or directory 
compilation terminated. 
make: *** [obj_cooja/../../../../ecc/ecc.o] Error 1 
Process returned error code 2 

Это мой Makefile

all: sender-node receiver-node root-node 
extra: example tools tests 
CONTIKI=../../.. 

WITH_UIP6=1 
UIP_CONF_IPV6=1 

include $(CONTIKI)/../Makefile.curve 
CURVE_DIR=$(CONTIKI)/../ecc/curve-params 
CFLAGS+= -DUIP_CONF_IPV6_RPL\ 
     -DSHA2_USE_INTTYPES_H \ 
     -DWITH_SHA256 \ 
     -D$(DOMAIN_PARAMS) \ 
     -DTHIRTYTWO_BIT_PROCESSOR \ 
     -DDOMAIN_PARAMS=$(DOMAIN_PARAMS) 

CFLAGS+=-DPROJECT_CONF_H=\"project-conf.h\" 

PROJECT_SOURCEFILES += $(CONTIKI)/../ecc/ecc.c $(CONTIKI)/../ecc/ecdsa.c $(CONTIKI)/../ecc/nn.c $(CONTIKI)/../sha2/sha2.c $(CONTIKI)/../certificate/certificate.c 
PROJECTDIRS += sha2 ecc $(CURVE_DIR) certificate 

include $(CONTIKI)/../ecc/curve-params/Makefile.curve_params 

# mc1322x is little endian only 
ifeq ($(TARGET),econotag) 
CFLAGS+= -DWORDS_LITTLEENDIAN 
endif 

ifdef WITH_COMPOWER 
APPS+=powertrace 
CFLAGS+= -DCONTIKIMAC_CONF_COMPOWER=1 -DWITH_COMPOWER=1 -DQUEUEBUF_CONF_NUM=4 
endif 

ifdef SERVER_REPLY 
CFLAGS+=-DSERVER_REPLY=$(SERVER_REPLY) 
endif 
ifdef PERIOD 
CFLAGS+=-DPERIOD=$(PERIOD) 
endif 

include $(CONTIKI)/Makefile.include 
example: 
    make -C example 

tools: 
    make -C tools 

tests: 
    make -C tests 

ответ

1

but I had problem using git submodule update after I git clone from the source, so I manually download and paste the contiki file into the contiki folder.

Вы не можете просто загрузить любой файл Contiki, так как идея подмодуль ссылаться на точный SHA1 другого Сделки рЕПО.

Попробуйте еще раз, чтобы клонировать главный репозиторий, на этот раз с --recursive (и обязательно использовать последнюю версию Git 2.11.1)

cd /path/to/ly/local/clone/of/ecc-light-certificate 
cd .. 
move ecc-light-certificate ecc-light-certificate.old 
git clone --recursive https://github.com/nist-emntg/ecc-light-certificate 

Ошибка:

no such remote ref 7a493c44edb6952bf82fc808b9dd91c30d49c871 
Fetched in submodule path 'contiki', but it did not contain 7a493c44edb6952bf82fc808b9dd91c30d49c871. 
Direct fetching of that commit failed 

Первое: https://github.com/tcheneau/[email protected] существует.

Однако, глядя на своих commit page 7a493c4, вы можете видеть, что это не относится к какой-либо отрасли или тега: это коммит до сих пор хранится в удаленном репо GitHub, но не выборки по умолчанию (потому что, не раз, ни одна ветвь или тег включает в себя)

Вам необходимо открыть вопрос о проекте nist-emntg/ecc-light-certificate/issues, чтобы предупредить их об этой несуществующей ссылке на фиксацию для субмодуля contiki.

Если вы посмотрите на тот коммит, вы найдете commit 1396dfd из родного fix-native-build branch:

C:\Users\vonc\prog\git\ecc-light-certificate\contiki>git log --all --grep="prevent the native target" 
commit 1396dfd817424eb7d3218cc6c51186f80b032e9f 
Author: Tony Cheneau <[email protected]> 
Date: Fri Oct 25 17:53:27 2013 -0400 

    Fix a typo (?) that would prevent the native target from building the examples. 

Это типично вишневого взял обязательство.

Чтобы решить текущую ситуацию, непосредственно проверка право совершать:

C:\Users\vonc\prog\git\ecc-light-certificate\contiki>git checkout 1396dfd817424eb7d3218cc6c51186f80b032e9f 
Checking out files: 100% (3223/3223), done. 
Note: checking out '1396dfd817424eb7d3218cc6c51186f80b032e9f'. 

You are in 'detached HEAD' state. You can look around, make experimental 
changes and commit them, and you can discard any commits you make in this 
state without impacting any branches by performing another checkout. 

If you want to create a new branch to retain commits you create, you may 
do so (now or later) by using -b with the checkout command again. Example: 

    git checkout -b <new-branch-name> 

HEAD is now at 1396dfd81... Fix a typo (?) that would prevent the native target from building the examples. 

C:\Users\vonc\prog\git\ecc-light-certificate\contiki>git st 
HEAD detached at 1396dfd81 
nothing to commit, working tree clean 
+0

привет @VonC относительно этих команд кд/путь/к/LY/локальный/клон/из/ЕСС-свет-сертификат кд. Переместить ecc-light-сертификат ecc-light-certificate.old следует использовать после клонирования? – lol

+0

@lol Прежде: идея состоит в том, чтобы переместить старый клон, прежде чем клонировать снова одно и то же репо в той же папке. Это позволит избежать сбоя Git, потому что имя папки уже существует. – VonC

+0

Я попытался использовать git clone --recursive. Но у него такая же проблема, когда он не смог получить папку contiki. – lol

 Смежные вопросы

  • Нет связанных вопросов^_^