C++预处理器变量

发布于 2024-08-14 13:45:33 字数 176 浏览 3 评论 0原文

我在一个标头中的 C++ 代码上使用 SKELETON_JAR 变量。但是,我希望允许用户在编译时轻松定义 jar 的位置。我认为最简单的方法是将这个定义放在 makefile 中,是这样吗?

#define SKELETON_JAR "./Util.jar"

I'm using the SKELETON_JAR variable on my C++ code in one header. However, I want to allow the user to define the place of the jar in the compile time easily. I think the easiest way to do that is to put this define in makefile is that so?

#define SKELETON_JAR "./Util.jar"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

策马西风 2024-08-21 13:45:33

在您的代码中:

#ifndef SKELETON_JAR
  #define SKELETON_JAR "./Util.jar" // default path
#endif

然后在 makefile 中使用 CPPFLAGS:=-DSKELETON_JAR="./Util.jar"

当然,您必须确保将 CPPFLAGS 作为编译规则的一部分传递给编译器,如果您使用默认的隐式规则,就是这种情况。

来自 GNU Make 文档

编译C程序

no 是由 nc 使用“$(CC) -c $(CPPFLAGS) $(CFLAGS)”形式的命令自动生成的

In your code:

#ifndef SKELETON_JAR
  #define SKELETON_JAR "./Util.jar" // default path
#endif

and then in the makefile use CPPFLAGS:=-DSKELETON_JAR="./Util.jar".

Of course you have to make sure CPPFLAGS are passed to the compiler as part of the compile rule which is the case if you're using the default implicit rules.

From GNU Make documentation:

Compiling C programs

n.o is made automatically from n.c with a command of the form `$(CC) -c $(CPPFLAGS) $(CFLAGS)'

才能让你更想念 2024-08-21 13:45:33

根据您的编译器,执行此操作的正常方法是在 makefile 中使用编译器的 -D 标志。例如:

MYFLAGS = -DSKELETON_JAR="foo"

然后是:

gcc $(MYFLAGS) $(OTHER_STUFF)

Depending on your compiler, the normal way to do this is to use the compiler's -D flag in the makefile. For example:

MYFLAGS = -DSKELETON_JAR="foo"

then later on:

gcc $(MYFLAGS) $(OTHER_STUFF)

自在安然 2024-08-21 13:45:33

使用相同的编译标志并在 Makefile 中定义标志。

Use compilation flags for same and define flag in Makefile.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文