更改makefile中变量的值

问题描述 投票:0回答:2

因此,我试图使用OMP_NUM_THREADS更改openMP中的线程值。当我在提示符下键入export OMP_NUM_THREADS = value时,它工作正常,它更改了线程数,但是当我尝试在Makefile中执行此操作时,它不起作用。我的makefile:

run:
export OMP_NUM_THREADS=4
./cowichan_openmp vecdiff >> out
c++ makefile openmp
2个回答
1
投票

原因是,每一行都在新的子Shell中执行。另请参阅here

您可以尝试:

run: export OMP_NUM_THREADS=4 ./cowichan_openmp vecdiff >> out

或作为另一个答案:

run: OMP_NUM_THREADS=4 ./cowichan_openmp vecdiff >> out


6
投票

配方的每一行都在单独的外壳中运行。因此,在这种情况下,您正在运行一个外壳,设置OMP_NUM_THREADS,然后退出该外壳并运行另一个外壳(没有该变量)。

您可以将变量定义和对cowichan_openmp的调用放在同一行:

run:
  OMP_NUM_THREADS=4 ./cowichan_openmp vecdiff >> out
© www.soinside.com 2019 - 2024. All rights reserved.