传递参数以进行更改#define变量[复制]
发布时间:2020-12-16 09:22:39 所属栏目:百科 来源:网络整理
导读:参见英文答案 Passing additional variables from command line to make????????????????????????????????????7个 我想通过将不同的参数传递给#define变量,通过Makefile多次编译C代码.我应该把我的诺贝克手放在哪里? 在我的C代码中,我有一个矩阵’尺寸的大
参见英文答案 >
Passing additional variables from command line to make????????????????????????????????????7个
我想通过将不同的参数传递给#define变量,通过Makefile多次编译C代码.我应该把我的诺贝克手放在哪里? 在我的C代码中,我有一个矩阵’尺寸的大小定义 #define N 500 我想在循环中多次编译它,但我无法理解如何通过它 -DN=(different sizes) 在Makefile里面. 该工作的结构如下: 我的Makefile现在看起来像这样: exe_name = exe CC = gcc CFLAGS = -g -O2 -ggdb LDFLAGS = -lm -L. -Wall -Wextra OMPFLAGS = -fopenmp OBJS = ompmatmul.o default: $(exe_name) $(exe_name): $(OBJS) $(CC) -o $@ $^ $(LDFLAGS) $(OMPFLAGS) %.o: %.c $(CC) -c $< -o $@ $(CFLAGS) $(OMPFLAGS) clean: rm -f $(OBJS) $(exe_name) *~ .PHONY: clean #Don't look for a file named 'clean' 虽然我将插入make的循环如下: for size in $(seq 500 500 3000); do make clean make #define_new_size #do_performance_and_acquire_results done 解决方法
要将参数传递给make文件,请添加如下参数:
make N=500 然后你的makefile将包含: ifndef N # provide a default N=500 endif ... $(exe_name): $(OBJS) $(CC) -DN=$(N) -o $@ $^ $(LDFLAGS) $(OMPFLAGS) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |