无法在 Mac 上使用通配符 (*) 编译多个 C++ 文件,但在 Windows 上工作正常

Tra*_*les 2 c++ macos sublimetext2

我正在尝试在 Sublime Text 2 sublime-build file中使用 g++ 一次编译多个 C++ 文件。使用通配符在我的 Windows 桌面上工作正常,但在我的 Macbook 上不起作用,如何让通配符在我的 Mac 上工作?

崇高构建文件:

{
"cmd": ["g++", "-std=c++11", "-I", "/Users/Dan2/YorickTheSavant/include",

"/Users/Dan2/YorickTheSavant/src/*",

"-o", "/Users/Dan2/YorickTheSavant/Yorick the Savant",
"-F", "/Users/Dan2/Library/Frameworks",
"-framework", "sfml-system",
"-framework", "sfml-window",
"-framework", "sfml-graphics"],

"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "/Users/Dan2/YorickTheSavant/",
"selector": "source.c, source.c++",

"variants":
[
    {
        "name": "Run",
        "cmd": ["/Users/Dan2/YorickTheSavant/Yorick the Savant"]
    }
]
}
Run Code Online (Sandbox Code Playgroud)

输出:

clang: error: no such file or directory: '/Users/Dan2/YorickTheSavant/src/*'

pau*_*sm4 5

问题是这样的:

在Sublime 2中使用G++编译多个*.cpp和*.h文件

在 Sublime Text 中使用 *.cpp 失败的原因是,gcc 不做通配符扩展。当您使用通配符从命令行运行 gcc 时,shell 会展开它们并为 gcc 提供文件名列表。因此,您需要了解如何在 Sublime Text 中执行等效操作(通过通配符或其他类似方法获取文件名)。

OP 能够使用此解决方法:

{
"cmd" : ["g++ *.cpp -o executablename"],
"shell":true
}
Run Code Online (Sandbox Code Playgroud)