私はCMakeとSublimeClangで崇高なテキスト2を使用します。私はまた、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}"
}
}
compileflags.rb
スクリプトはcmakeのは、そのコンパイルフラグを保存する場所でツリーを構築CMakeのでflags.make
ファイルを検索するために使用されます。これらのフラグは、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
あなたが取得しているエラーに関するより具体的なのだろうか? SublimeClangはこれらのライブラリについて何を言っていますか?私はあなたが "図書館を含める"という意味を理解していません。 C++のソースコードにはライブラリを含め、ヘッダーだけを含むものはありません。 – Syncopated