在Jenkins中运行make命令

时间:2018-04-29 11:11:31

标签: c++ ubuntu jenkins makefile

我正在尝试构建c ++项目。

当我在终端中运行make命令时,它工作, 但是当我通过Jenkins这样做时,它会向我显示文件丢失的消息。

可能是什么问题,我该如何解决?

错误:

+ make
make -f enclave_lib.mk SGX_DEBUG=1
make[1]: Entering directory '/home/yoni/Documents/private_ledger-tp/CryptoLib'
mt19937ar.c:44:19: fatal error: stdio.h: No such file or directory

2 个答案:

答案 0 :(得分:1)

从您的评论中,问题是Jenkins是以root用户身份执行的,无法找到lib stdio.h。

要解决此问题,您可以选择以下几种方法:

  • 找到stdio.h 您从用户运行此命令。它将为您提供stdio.h的路径。你可以用你的作品提供
  • sudo apt-get install build-essential

以root用户身份安装build-essential。那应该安装这个缺少的依赖

  • 使用您的权限执行Jenkins,而不是使用root权限
  • 在您的构建过程中,连接到您的帐户(su youruser)

答案 1 :(得分:1)

事实证明,在我们的案例中,这是环境变量的问题。

我要解决的是

  1. 从终端和Jenkins获取有关环境变量的数据,并将它们分类为2个文件。
  2. 将2个文件与meld进行比较
  3. 任何与终端环境和Jenkins没有放入/ etc / environment文件相关的变量(Jenkins从那里获取额外的环境变量)

    env |排序> envInTerminal.txt

    env |排序> envInJenkins.txt

    meld envInTerminal.txt envInJenkins.txt

    sudo gedit / etc / environment

相关问题