GNU make 无法识别%

发布于 2024-10-01 17:31:49 字数 733 浏览 2 评论 0原文

我正在尝试制作一个 makefile 来编译子文件夹中的各种示例。 makefile 包含以下内容:

S_1_2.exe : Twister.cpp Parsing.cpp ./Surfaces/S_1_2.cpp
    g++ -o [email protected] $^ -I . -W -Wall

使用命令“make S_1_2.exe”运行时工作正常。但是:

%S_1_2.exe : Twister.cpp Parsing.cpp ./Surfaces/S_1_2.cpp
    g++ -o [email protected] $^ -I . -W -Wall

即使使用命令 make S_1_2.exe 运行,也会失败,并出现错误“make: * 没有规则可以生成目标 'S_1_2.exe'。停止。”

%S_1_2.exe 不应该进行模式匹配并匹配 S_1_2.exe 吗?在这种情况下为什么不符合这个规则呢?

我正在使用 GNU Make 3.81

I'm trying to make a makefile for compiling various examples that are within a subfolder. The makefile consisting of just:

S_1_2.exe : Twister.cpp Parsing.cpp ./Surfaces/S_1_2.cpp
    g++ -o [email protected] $^ -I . -W -Wall

Works fine when run with the command "make S_1_2.exe". However:

%S_1_2.exe : Twister.cpp Parsing.cpp ./Surfaces/S_1_2.cpp
    g++ -o [email protected] $^ -I . -W -Wall

fails, even when run with the command make S_1_2.exe, with the error "make: * No rule to make target 'S_1_2.exe'. Stop."

Shouldn't %S_1_2.exe do pattern matching and so match S_1_2.exe? In which case why is it not matching this rule?

I am using GNU Make 3.81

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

卖梦商人 2024-10-08 17:31:49

百分比符号与非空字符串匹配。因此,您应该使用 %_1_2.exe 或更好的 - %.exe。我不知道是否还有其他符号也与空字符串匹配。

The percentage symbol matches a non-empty string. So you should use %_1_2.exe or better yet - %.exe. I don't know if there is any other symbol that matches empty strings too.

妖妓 2024-10-08 17:31:49

% 用于将目标的一部分与一个或多个依赖项中的相同部分进行匹配。
您不能从所有依赖项中省略它。

The % is for matching a part of the target against the same part in one or more dependencies.
You can't omit it from all dependencies.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文