c/C++のmacro__FILE__には、コンパイルされた場所からファイルへのパスが含まれています。たとえば :グラデーションを使用したマクロ__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.
私はmacro__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__);
}