我在使用GCC构建的C项目中使用预处理程序指令__BASE_FILE__
。问题是两台不同计算机构建的二进制文件必须完全相同,因此路径不能出现在生成的二进制文件中。
我无法找到一种方法来缩小预处理过程中__BASE_FILE__
(包含文件的完整路径)返回的字符串。有没有办法做到这一点?
此字符串在宏中使用,如下所示:
#define MY_MACRO() \
{ \
int file_name_size = sizeof(__BASE_NAME__); \
char* file_name = __BASE_NAME__; \
\
a_function_that_use_these_variables(file_name, file_name_size); \
}
所以我希望__BASE_FILE__
只包含文件名,而不是路径。