Sub*_* S. 11 c++ autocomplete cmake sublimetext sublimetext2
我一直试图使用SublimeText2一段时间了.虽然使用Python几乎可以很容易地使用它,但使用C++会有点棘手.我可以设法通过复制和修改现有的Makefile脚本来设置CMake构建脚本,但有很多东西不像在CMake支持的IDE中那样工作,比如Eclipse CDT.SublimeText 2似乎不理解单独的构建目录的概念,如果我包含参考CMake中添加的目录的库,它也无法让我通过SublimeClang自动完成.SublimeClang一直在抱怨它无法找到库,当我尝试时#include,它甚至无法在标准STL头文件名上提供自动完成功能,例如算法.如果有人找到了管道,我将不得不听到它.
我之前在更多通用的使用相关论坛中问过这个问题,我没有得到任何回复,这就是我想在这里发帖的原因.
Emi*_*son 10
我使用Sublime Text 2与CMake和SublimeClang.我也使用SublimeGDB.我的构建目录在[project root]/build.看看我的项目文件,看看它是否对您有所帮助:
{
"folders":
[
{
"path": "."
}
],
"build_systems":
[
{
"name": "Build",
"cmd": [ "make", "-C", "build" ],
"file_regex": "/([^/:]+):(\\d+):(\\d+): "
}
],
"settings":
{
"sublimegdb_commandline": "gdb --interpreter=mi myapp",
"sublimegdb_workingdir": "build",
"sublimeclang_options" :
[
"-Wno-reorder"
],
"sublimeclang_options_script": "${project_path:scripts/compileflags.rb} ${project_path:build}"
}
}
Run Code Online (Sandbox Code Playgroud)
该compileflags.rb脚本用于搜索flags.makeCMake构建树中的文件,CMake保存其编译标志.需要这些标志,以便SublimeClang知道在哪里找到您的包含.
这是脚本,位于scripts/:
#!/usr/bin/env ruby
# Searches for a flags.make in a CMake build tree and prints the compile flags.
def search_dir(dir, &block)
Dir.foreach(dir) do |filename|
next if (filename == ".") || (filename == "..")
path ="#{dir}/#{filename}"
if File.directory?(path)
search_dir(path, &block)
else
search_file(path, &block)
end
end
end
def search_file(filename)
return if File.basename(filename) != "flags.make"
File.open(filename) do |io|
io.read.scan(/[a-zA-Z]+_(?:FLAGS|DEFINES)\s*=\s*(.*)$/) do |match|
yield(match.first.split(/\s+/))
end
end
end
root = ARGV.empty? ? Dir.pwd : ARGV[0]
params = to_enum(:search_dir, root).reduce { |a, b| a | b }
puts params
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10750 次 |
| 最近记录: |