gpt4 book ai didi

linux - "make -C X"与 "cd X; make"

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:16 25 4
gpt4 key购买 nike

我想知道为什么这两个命令返回两个不同的结果。第一个是:

[root@node30 par-run-d2]# make -C NQU/
make: Entering directory `/home/ut/gpgpu-sim/benchmarks/par-run-d2/NQU'
nvcc -c -arch sm_11 --keep --compiler-options -fno-strict-aliasing \
-I. -I/usr/local/cuda//include/ -I/home/ut/NVIDIA_GPU_Computing_SDK/C//common/inc/ \
-L/home/ut/NVIDIA_GPU_Computing_SDK/C//lib -lcutil -DUNIX nqueen.cu -o nqueen
nqueen.cu(681): warning: variable "start" was declared but never referenced

nqueen.cu(681): warning: variable "end" was declared but never referenced

nqueen.cu(681): warning: variable "start" was declared but never referenced

nqueen.cu(681): warning: variable "end" was declared but never referenced

gcc -g -c nqueen.cu.cpp -o nqueen.cu_o
echo ../../..
../../..
../../../scripts/gen_ptxinfo
Generating nqueen.ptxinfo...
make: *** [nqueen.cu_o] Error 255
make: Leaving directory `/home/ut/gpgpu-sim/benchmarks/par-run-d2/NQU'

第二个是:

[root@node30 par-run-d2]# cd NQU/
[root@node30 NQU]# make
g++ -g nqueen.cu_o -L../../../libcuda/ -lcuda \
-L/home/ut/NVIDIA_GPU_Computing_SDK/C//lib -lcutil \
-L../../../src/ -lgpgpusim \
-L../../../src/intersim -lintersim \
-L../../../src/cuda-sim/ -lgpgpu_ptx_sim \
-lm -lz -lGL -o gpgpu_ptx_sim__nqueen
rm -rf *.cpp*.i *.cpp*.ii *.cu.c *.cudafe*.* *.fatbin.c *.cu.cpp *.linkinfo *.cpp_o core *.cubin cubin.bin *_o *.hash nqueen

知道为什么“make -C X”与“cd X/; make”不同吗?

最佳答案

序列cd X; make正在更改调用 shell(终端的交互式 shell)的当前目录。使它成为像 (cd X; make) 这样的子 shell为了避免这种情况,输入的时间比 make -C X 长得多chdir 是哪个make 中的系统调用process 所以不能改变父进程的工作目录(通常是你的交互式 shell)。

还有 -w标志行为会有所不同。而大多数递归 $(MAKE)Makefile -s 正在做 -C somesubdir

附言。请记住 cd shell 内置调用 chdir(2)对父进程没有影响的系统调用。

关于linux - "make -C X"与 "cd X; make",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12466340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com