【发布时间】:2014-03-24 06:23:11
【问题描述】:
在 MAC 上,我可以使用命令行成功编译 c++ 程序
g++ *.cpp *.h -o executablename
但是它在 Sublime 2 中失败了——我为此创建了一个构建系统
{
"cmd" : ["g++", "*.cpp", "*.h", "-o", "executablename"]
}
有了这些结果
i686-apple-darwin11-llvm-g++-4.2: *.cpp: No such file or directory
i686-apple-darwin11-llvm-g++-4.2: *.h: No such file or directory
i686-apple-darwin11-llvm-g++-4.2: no input files
[Finished in 0.0s with exit code 1]
但是,如果我在项目中创建具有特定文件名的构建系统,它就可以工作:
{
"cmd" : ["g++", "Test.cpp", "TestCode.cpp", "TestCode.h", "TestCode2.cpp", "TestCode2.h", "-o", "executablename"]
}
如何在 Sublime 2 中创建使用命令行模式编译多个文件的构建系统,就像在命令行上一样?
【问题讨论】:
-
你永远不会直接编译
.h文件。当它们在.cpp文件中为#included 时,它们会根据需要进行编译。所以至少删除*.h。 -
在Sublime Text中使用
*.cpp失败的原因是,gcc没有做通配符扩展。当您使用通配符从命令行运行 gcc 时,shell 会扩展它们并为 gcc 提供文件名列表。所以你需要了解如何在 Sublime Text 中做等效(通过通配符或其他类似方法获取文件名)。 -
另外说明一下,直接调用编译器是非常的,这个怎么放,原始方式来构建软件。通常使用 makefile 或其他更高级的方法。
-
让一个 c++ 从 Sublime 2 构建和运行一直是一个挑战,只是让它工作。如果有人对更好的方法有建议,我将不胜感激。
标签: c++ g++ sublimetext2 build-system