如何在GNU Makefile中只获取文件名而不扩展名
How to get only file name without extension in GNU Makefile?
我从其他帖子中得到了这个答案。下面打印带有扩展名的文件名。这只适用于cpp文件,而不适用于在C代码中检索这个预处理器值FILE_NAME
的头文件。
-D FILE_NAME="$(<F)"
如何获得只有源文件名没有扩展名?
预定义的函数basename
从文件名中删除后缀(扩展名),因此,如果$(<F)
是您感兴趣的文件名,那么$(basename $(<F))
是没有扩展名的名称:
-D FILE_NAME="$(basename $(<F))"
我倾向于认为没有c++ 11的标准方法(但您可能有GCC或Clang特定的方法)来做到这一点。当然,您可以使用__FILE__
预定义的标准宏。
你可以采用一个约定,让你的头文件foo.h
(带include保护)做
#ifndef FOO_INCLUDED
#define FOO_INCLUDED
#define MY_HEADER_BASE_NAME FOO
/// rest of header goes here
#undef MY_HEADER_BASE_NAME
#undef /* FOO_INCLUDED*/
然后使用MY_HEADER_BASE_NAME
…顺便说一句,上面的模式不能很好地使用嵌套的头。
相关文章:
- 从 Makefile 中的 $@ 获取文件名
- 有没有一种简单的方法可以从 c++ 中的路径获取文件名?
- C++获取当前文件名并在 WinExec 上使用它
- 从 SetClipboardData 挂钩获取文件名
- 从 QFileSystemModel 中的文件路径和文件名获取 QModelIndex
- 获取打开文件名 - 预选上次打开不起作用
- 获取模块文件名 Win 7/Win 10 上的不同行为
- 如何通过键入文件名来获取文件的目录。(C++)
- 获取 Qt 标签图像的文件名
- LLVM 如何获取调用站点文件名和行号
- 如何在C++中获取可执行文件名
- C++ ( MS V S ) 获取打开文件名
- 运行正则表达式时未选中的异常 - 从文件路径获取不带扩展名的文件名
- 获取打开文件名在默认目录打开'Computer'可能吗?
- 是否有一种便携式/标准的方法可以在堆栈跟踪中获取文件名和亚麻布
- 如何从文件夹中获取文件名,并将它们添加到QT中的孩子中
- 从 Windows 上的 tmpfile() 获取文件名
- 如何在c++中从shell中获取作为输入重定向的文件名
- 如何在选项卡视图中获取活动选项卡的文件名
- 如何获取函数调用的文件名和行号