gpt4 book ai didi

c - 使用 gcc 获取二进制文件中不带路径的文件名

转载 作者:行者123 更新时间:2023-11-30 15:02:27 26 4
gpt4 key购买 nike

我在使用 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__ 只包含文件名,而不包含路径。

最佳答案

How about you add something like -D__BASE_FILE_NAME__=$(notdir $<) to the $(CC) recipes in the Makefiles (defining the base name of the first prerequisite as macro BASE_FILE_NAME)?

这个解决方案有效。

关于c - 使用 gcc 获取二进制文件中不带路径的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41058140/

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