gpt4 book ai didi

c - Gradle宏__FILE__的奇怪行为

转载 作者:行者123 更新时间:2023-12-03 03:08:53 26 4
gpt4 key购买 nike

如您所知,c / c++中的macro__FILE__包含文件的编译路径。
例如:

gcc test.c -o test
./test
test.c

gcc myFolder/test.c -o test
./test
myFolder/test.c

但是,当我尝试使用gradle进行编译时,它将输出文件的完整路径,例如:
home/usr/myFolder/test.c.

我想预编译宏__FILE__仅包含内部项目路径,但不完整。

Gradle文件:
apply plugin: 'c'

model {
components {
main(NativeExecutableSpec) {
sources {
c {
source {
srcDir "./"
include "*.c"
}
}
}
}
}
}

test.c:
#include <stdio.h>

void main(void)
{
printf("%s\n", __FILE__);
}

最佳答案

不幸的是,由于gradle如何调用编译器,这是可以预期的。如果您只想获取相对项目路径,则可以执行以下操作

#include <stdio.h>

void main(void)
{
printf("%s\n", __FILE__ + PROJECT_PATH_LEN);
}

然后在 PROJECT_PATH_LEN中添加适当的 file("./").absolutePath.length定义(请参阅 gradle documentation on how to add defines)。

关于c - Gradle宏__FILE__的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38219569/

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