nexe
nacplorts lib でファイルをコンパイルしようとしていますlibtomcrypt
。nexe をビルドすると、"undefined" の束のエラーが返されます。別のフラグでビルドしようとしましたが、何もしませんでした。たぶん、誰かが私が間違っていることや現在のセットアップに欠けていることを指摘できるでしょう。
- Linux 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 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
コードには、すべてのエラーをトリガーする 1 行のみが含まれます。多分私はもっと何かを追加しませんでした。私は tomcrypt を初めて使用し、C コードはあまり得意ではありませんが、喜んで学びます。また、このコードをコンパイルできない場合は、Tomcrypt を使用するが複雑なことは何も行わない単純な「最小行数」コードの例を教えてください。確実にもっと先に行けるように。
#include <tomcrypt.h>
//...
virtual void HandleMessage(const pp::Var& var) {
register_cipher(&aes_desc); // <----------- without this line build is successful
//...
}
//...