如您所知,c/C++中的macro__FILE__包含文件的路徑,它從編譯的位置開始。 例如:宏__FILE__與Gradle的奇怪行爲
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__只包含內部項目路徑,但不充分。
搖籃文件:
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__);
}