如何在GNU Makefile中只获取没有扩展名的文件名?

cha*_*han 4 c++ makefile

我从其他帖子中得到了这个答案。以下打印带有扩展名的文件名。这仅适用于 cpp 文件,不适用于FILE_NAME在 C 代码中检索此预处理器值时的头文件。

-D FILE_NAME=\"$(<F)\"
Run Code Online (Sandbox Code Playgroud)

如何只获取没有扩展名的源文件名?

Jon*_*ely 7

预定义函数basename从文件名中删除后缀(扩展名),因此如果$(<F)您感兴趣的文件名$(basename $(<F))是不带扩展名的名称:

-D FILE_NAME=\"$(basename $(<F))\"
Run Code Online (Sandbox Code Playgroud)