我在C++代码的一个头文件中使用了SKELETON_JAR
变量。然而,我想让用户在编译时轻松定义jar包的位置。我认为最简单的方法是将此定义放入makefile中,这样可以吗?
#define SKELETON_JAR "./Util.jar"
我在C++代码的一个头文件中使用了SKELETON_JAR
变量。然而,我想让用户在编译时轻松定义jar包的位置。我认为最简单的方法是将此定义放入makefile中,这样可以吗?
#define SKELETON_JAR "./Util.jar"
#ifndef SKELETON_JAR
#define SKELETON_JAR "./Util.jar" // default path
#endif
然后在makefile中使用CPPFLAGS:=-DSKELETON_JAR="./Util.jar"
。
当然,您需要确保将CPPFLAGS
作为编译规则的一部分传递给编译器,如果您正在使用默认的隐式规则,则是这种情况。
编译C程序
n.o会自动从n.c生成,命令形式为`$(CC) -c $(CPPFLAGS) $(CFLAGS)'
根据您使用的编译器,在makefile中通常使用编译器的-D标志来实现此操作。例如:
MYFLAGS = -DSKELETON_JAR="foo"
然后稍后:
gcc $(MYFLAGS) $(OTHER_STUFF)
makefile
标签。 - Gregory Pakosz使用编译标志相同,并在Makefile中定义标志。