3

別の cpp ファイルを含む cpp のコンパイルに問題があるため、Main.cpp Numbers.h と Numbers.cpp があり、TextMate は Main.cpp のみをコンパイルし、残りは含まれないようです。私はxcodeを使ってみましたが、うまくいきました..

TextMate cmd+R からのエラーは次のとおりです。

未定義のシンボル: "Numbers::Numbers(int)"、参照元: ccMrD1Eq.o の _main "Numbers::print()"、参照元: ccMrD1Eq.o の _main ld: シンボルが見つかりません collect2: ld が返されました1 終了ステータス

なにか提案を?

ところで、呼び出されたコマンドは次のとおりです。

#!/usr/bin/env ruby

require ENV["TM_SUPPORT_PATH"] + "/lib/tm/executor"
require ENV["TM_SUPPORT_PATH"] + "/lib/tm/save_current_document"

mode = ENV["TM_SCOPE"].slice(/.*?\bsource\.((?:obj)?c(\+\+)?)/, 1)


case mode
when "c"
  g    = "GCC"
  env  = "C"
  ext  = "c"
  lang = "c"
when "c++"
  g    = "GXX"
  env  = "CXX"
  ext  = "cc"
  lang = "c++"
when "objc"
  g    = "GCC"
  env  = "OBJC"
  ext  = "m"
  lang = "objective-c"
when "objc++"
  g    = "GXX"
  env  = "OBJCXX"
  ext  = "mm"
  lang = "objective-c++"
end

TextMate.save_current_document(ext)
TextMate::Executor.make_project_master_current_document

flags = ENV["TM_#{env}_FLAGS"] || "-Wall -include stdio.h #{"-include iostream" unless mode[/c\+\+$/].nil?} #{"-framework Cocoa" unless mode[/^obj/].nil?}"
args = [ENV["TM_#{g}"] || g.downcase.gsub("x", "+"), flags + " -x #{lang}", ENV["TM_FILEPATH"]] 

TextMate::Executor.run(args, :version_args => ["--version"], :version_regex => /\A([^\n]*) \(GCC\).*/m)
4

3 に答える 3

1

おそらく、コマンドラインパラメータを追加する必要があります...

変数TM_CXX_FLAGSを変更することにより、g++にコマンドラインパラメーターを追加できます。

これを行うための最良の方法は、おそらくプロジェクトごとの変数を追加することです:http: //manual.macromates.com/en/environment_variables#project_dependent_variables

変更がグローバルであることが意図されている場合は、TextMateの静的変数セクションhttp://manual.macromates.com/en/environment_variables#static_variablesに追加できます 。

于 2011-07-16T04:21:18.707 に答える
1

TextMate は、現在編集中の .cpp ファイルの単純なコンパイルのみを行います。Xcode やその他の完全な開発環境とは異なり、プロジェクト内の他のソース ファイルをコンパイルしたり、リンクを実行したりしません。

(TextMate で、Bundles > Bundle Editor > Show Bundle Editor をクリックし、C セクションで Run を選択すると、.cpp ファイルを「実行」したときに TextMate が何をしているかを正確に確認できます。)

于 2011-02-05T09:29:23.307 に答える
0

あなたが呼び出しているコマンドを特定するのに十分な情報がありません。

Xcode.tmbundle Build and Run の場合は、xcodebuild を呼び出しています。Xcode でエラーを再現して修正できるはずです。

于 2011-02-05T09:34:53.923 に答える