首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法编译Linux内核4.7-rc2

无法编译Linux内核4.7-rc2
EN

Unix & Linux用户
提问于 2016-06-06 10:19:32
回答 1查看 3.7K关注 0票数 3

我试图从源代码编译Linux内核。我以前编译过内核,但没有出现任何错误。但这一次我面临一个错误。错误是

代码语言:javascript
复制
   CHK     include/generated/asm-offsets.h
   CALL    scripts/checksyscalls.sh
   HOSTCC  scripts/sign-file
  /tmp/cczyW3hq.o: In function `main':
  sign-file.c:(.text.startup+0x52): undefined reference to `OPENSSL_init_crypto'
  sign-file.c:(.text.startup+0x5e): undefined reference to `OPENSSL_init_crypto'
  sign-file.c:(.text.startup+0x247): undefined reference to `OPENSSL_init_crypto'
  collect2: error: ld returned 1 exit status
  scripts/Makefile.host:91: recipe for target 'scripts/sign-file' failed
  make[1]: [scripts/sign-file] Error 1

当我检查脚本/符号-file.c时,我看到评论中写着Sign a module file using the given key.。所以我重新运行了make menuconfig,并启动了Module signature verification。并试图再次编译。现在,删除了以前的错误,但是出现了新的错误,它与上面的相同,但在不同的文件上。这是错误,

代码语言:javascript
复制
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  HOSTCC  scripts/extract-cert
  /tmp/ccA63AAC.o: In function `main':
  extract-cert.c:(.text.startup+0x25): undefined reference to `OPENSSL_init_crypto'
  extract-cert.c:(.text.startup+0x31): undefined reference to `OPENSSL_init_crypto'
  collect2: error: ld returned 1 exit status
  scripts/Makefile.host:91: recipe for target 'scripts/extract-cert' failed
  make[1]: *** [scripts/extract-cert] Error 1
  Makefile:556: recipe for target 'scripts' failed
  make: *** [scripts] Error 2

所以我想知道这个问题是与libssl有关还是某些配置错误?我将Ubuntu 16.04LTSgcc-5.3.1结合使用。

编辑:我尝试过重新安装libssl,也尝试过从源代码编译openssl,然后也进行安装。我已经将配置文件从/boot/config-4.4.0-22-generic复制到源目录。

UPDATE:使用make scripts V=1,下面是输出:

代码语言:javascript
复制
make -f ./scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f ./scripts/Makefile.asm-generic \
        src=asm obj=arch/x86/include/generated/asm
make -f ./scripts/Makefile.asm-generic \
        src=uapi/asm obj=arch/x86/include/generated/uapi/asm
make -f ./scripts/Makefile.build obj=scripts
make -f ./scripts/Makefile.build obj=scripts/gdb
make -f ./scripts/Makefile.build obj=scripts/gdb/linux
make -f ./scripts/Makefile.build obj=scripts/genksyms
make -f ./scripts/Makefile.build obj=scripts/mod
make -f ./scripts/Makefile.build obj=scripts/selinux
make -f ./scripts/Makefile.build obj=scripts/selinux/genheaders
make -f ./scripts/Makefile.build obj=scripts/selinux/mdp
  gcc -Wp,-MD,scripts/.sign-file.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89   -I./tools/include  -o scripts/sign-file scripts/sign-file.c  -lcrypto
/tmp/cc7o2Y1C.o: In function `main':
sign-file.c:(.text.startup+0x52): undefined reference to `OPENSSL_init_crypto'
sign-file.c:(.text.startup+0x5e): undefined reference to `OPENSSL_init_crypto'
sign-file.c:(.text.startup+0x247): undefined reference to `OPENSSL_init_crypto'
collect2: error: ld returned 1 exit status
scripts/Makefile.host:91: recipe for target 'scripts/sign-file' failed
make[1]: *** [scripts/sign-file] Error 1
Makefile:556: recipe for target 'scripts' failed
make: *** [scripts] Error 2
EN

回答 1

Unix & Linux用户

发布于 2019-06-25 15:59:42

由于启用了内核模块签名,内核编译过程也试图生成sign-file工具--这需要OpenSSL库。

更具体地说,编译任何需要OpenSSL的内容都意味着您应该首先安装OpenSSL的开发包(通常是openssl-devopenssl-devel,这取决于发行版)。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/287930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档