Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux makefile不';无法正确导入路径_Linux_Makefile_Build_Ubuntu 14.04 - Fatal编程技术网

Linux makefile不';无法正确导入路径

Linux makefile不';无法正确导入路径,linux,makefile,build,ubuntu-14.04,Linux,Makefile,Build,Ubuntu 14.04,我有一个简单的Makefile。由于某些原因,我没有正确导入路径: 以下是我在终端中运行echo$PATH时得到的结果 /home/someuser/myfs/opt/petalinux-v2016.2-final/tools/common/petalinux/bin:/home/someuser/myfs/opt/pkg/petalinux-v2016.2-final/tools/linux-i386/petalinux/bin:/home/someuser/pituser/petalinux

我有一个简单的Makefile。由于某些原因,我没有正确导入路径:

以下是我在终端中运行
echo$PATH
时得到的结果

/home/someuser/myfs/opt/petalinux-v2016.2-final/tools/common/petalinux/bin:/home/someuser/myfs/opt/pkg/petalinux-v2016.2-final/tools/linux-i386/petalinux/bin:/home/someuser/pituser/petalinux-v2016.2-final/tools/common/petalinux/bin:/home/someuser/myfs/opt/pkg/petalinux-2016.2-2016.2-microblaze-elf/bin:/home/someuser/myfs/opt/pkg/petalinux-v2016.2-final/tools/linux-i386/microblazeel xilinx linux gnu/bin:/home/someuser/myfs/opt/pkg/petalinux-v2016.2-final/tools/linux-i386/gcc arm none eabi/bin:/home/someuser/myfs/opt/pkg/petalinux/petalinux-v2016.2-final/tools/linux-i386/gcc arm linux-gnueabi/bin:/home/someuser/myfs/opt/pkg/petalinux-i386/aarch64非elf/bin:/home/someuser/myfs/opt/pkg/petalinux-v2016.2-final/tools/linux-i386/aarch64 linux-gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/usr/games:/usr/local/games

以下是运行
make

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

有人知道发生了什么事吗

Makefile
在下面,这是我的系统描述

uname -a
4.4.0-72-generic #93~14.04.1-Ubuntu SMP Fri Mar 31 15:05:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:    14.04
Codename:   trusty
Makefile

.PHONY: linux bootimage fsbl dts build-dts

all: linux bootimage

dts: build-dts package bootimage

rootfs: build-rootfs package bootimage

fsbl:
    petalinux-build -c bootloader

clean:
    echo $(PATH)
    petalinux-build -x distclean

linux:
    petalinux-build

build-dts:
    petalinux-build -c device-tree

build-rootfs:
    petalinux-build -c rootfs

package:
    petalinux-build -x package

bootimage:
    petalinux-package --boot --force --fsbl ${BOOT_FSBL_IMAGE} --fpga ${BOOT_BIT_IMAGE} --u-boot=${BOOT_UBOOT_IMAGE} -o ${BOOT_IMAGE}
这是我运行make时得到的路径

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

在这里,make文件没有运行程序所需的路径文件

最简单的导出方法是在makefile中这样做

导出路径:=bin:$(路径)

也许是这样的。

export PATH := $(shell pwd)/bin:$(PATH)

target:
    mkdir -p ./bin 
    export PATH
    echo $(PATH)
或者另一种方法是导出所有path变量,并将其添加到~/.bashrc中,完成后显式设置

您可以使用“:”追加更多路径,将此行添加到~/.bashrc

export PATH=$PATH:~/your/bin1:~/your/bin2
在环境路径中附加更多路径的示例:

export PATH=/opt/bin:/usr/local/bin:/usr/contrib/bin:/bin:/usr/bin:/usr/sbin:/usr/bin/X11

我想你误解了我的问题。我试图理解为什么
make
没有正确地将
PATH
导入到它的环境中?我的环境
PATH
看起来与
make
显示的环境完全不同。我的问题是为什么