Не удается собрать файл.nexe с помощью libtomcrypt. Ошибки компиляции
Я пытаюсь собрать nexe
файлы с nacplorts lib libtomcrypt
, Построение nexe возвращает ошибку группы "undefined". Я пробовал строить с другим флагом, но ничего. Может быть, кто-то может указать, что я делаю неправильно или чего мне не хватает в текущей настройке.
- Linux 3.13.0-32-generiC#57-Ubuntu SMP Вт 15 июля 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
~/nacl/pepper_35/
~/nacl/naclports
Результат. Ошибки.
$ make
LINK newlib/Release/myproj_unstripped_x86_32.nexe
/home/ME/nacl/pepper_35/toolchain/linux_x86_newlib/i686-nacl/usr/lib/libtomcrypt.a(aes.o): In function `rijndael_test':
aes.c:(.text+0x1271): undefined reference to `__stack_chk_fail'
/home/ME/nacl/pepper_35/toolchain/linux_x86_newlib/i686-nacl/usr/lib/libtomcrypt.a(crypt_argchk.o): In function `crypt_argchk':
crypt_argchk.c:(.text+0x1c): undefined reference to `stderr'
crypt_argchk.c:(.text+0x34): undefined reference to `__fprintf_chk'
collect2: ld returned 1 exit status
make: *** [newlib/Release/myproj_unstripped_x86_32.nexe] Error 1
Makefile
VALID_TOOLCHAINS := newlib glibc pnacl linux
NACL_SDK_ROOT ?= $(abspath $(CURDIR)/../..)
include $(NACL_SDK_ROOT)/tools/common.mk
TARGET = myproj
LIBS = ppapi_cpp ppapi pthread tomcrypt
CFLAGS = -Wall
SOURCES = myproj.cc
# Build rules generated by macros from common.mk:
$(foreach src,$(SOURCES),$(eval $(call COMPILE_RULE,$(src),$(CFLAGS))))
ifeq ($(CONFIG),Release)
$(eval $(call LINK_RULE,$(TARGET)_unstripped,$(SOURCES),$(LIBS),$(DEPS)))
$(eval $(call STRIP_RULE,$(TARGET),$(TARGET)_unstripped))
else
$(eval $(call LINK_RULE,$(TARGET),$(SOURCES),$(LIBS),$(DEPS)))
endif
$(eval $(call NMF_RULE,$(TARGET),))
myproj.cc
Код содержит только одну строку, которая вызывает все ошибки. Может быть, я не добавил что-то еще. Я новичок в tomcrypt и не очень хорош с кодом C, но готов учиться. И если этот код не должен компилироваться, можете ли вы привести пример простого кода с минимальными строками, который использует tomcrypt, но не делает ничего сложного? Конечно, я могу пойти дальше.
#include <tomcrypt.h>
//...
virtual void HandleMessage(const pp::Var& var) {
register_cipher(&aes_desc); // <----------- without this line build is successful
//...
}
//...
1 ответ
Похоже, что сборка libtomcrypt в naclports никогда не работала правильно. Ошибка и исправление в обзоре здесь: https://code.google.com/p/naclports/issues/detail?id=134