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

Cannot compile multiple C++ files using wildcard (*) on Mac, works fine on Windows

本文关键字:Windows 文件 工作 常工作 c++ 编译 Mac 通配符      更新时间:2023-10-16

我试图在Sublime Text 2 Sublime -build文件中一次使用g++编译多个c++文件。使用通配符在我的Windows Desktop上工作得很好,但在我的Macbook上不行,我怎么才能让通配符在我的Mac上工作呢?

sublime-build文件:

{
"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"]
    }
]
}
输出:

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

问题是:

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

在Sublime Text中使用*.cpp失败的原因是,gcc做不到外卡扩展。从命令行运行gcc时,使用wildshell将卡片展开,并向GCC提供一个文件名列表。所以您需要了解如何执行与获取文件名相同的操作

OP可以使用这个解决方案:

{
"cmd" : ["g++ *.cpp -o executablename"],
"shell":true
}