2011-02-05 9 views
2

別のcppファイル を含むcppのコンパイルに問題があります。したがって、Main.cpp Numbers.hとNumbers.cppがあり、TextMateはMain.cppのみをコンパイルし、残りの部分は含めません。 。私はXcodeのを使用してみました、それが働いていた罰金..ここC++をテキストメイトでコンパイル

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

未定義のシンボル: "番号::番号(int型)"、から参照:ccMrD1Eqで _main ccMrD1Eq.o LDに _main:から参照した.o "番号::プリント()"、記号(複数可) 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) 

答えて

1

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

(TextMateのではその後、Cのセクションでファイル名を指定して実行]を選択し、TextMateはときに「ファイル名を指定して実行」.cppファイルやっている正確に何を参照してくださいよ、バンドル>バンドルエディタ>ショーバンドルEditor]をクリックします。)

+0

オーケーに追加することができます。..ありがとう..私は、実行コマンドを変更しようとします。 – BlackSoil

0

私はあなたが呼んでいるコマンドの特定のための十分な情報がありません。

Xcode.tmbundleビルドして実行すると、xcodebuildが起動します.Xcodeでエラーを再現して修正できるはずです。

+0

私は上に呼び出されたコマンドをアタッチしました。私はそれをいかに修正すればよいかわかりません。javaやrubyの実行コマンドほど直感的ではありません... – BlackSoil

1

あなたは、おそらくあなたは、G ++変数TM_CXX_FLAGSを変更することによって、追加のコマンドラインパラメータを追加することができます

...追加のコマンドラインパラメータを追加する必要があります。

これを行うための最善の方法は、プロジェクト変数ごとに追加することはおそらくです:変更はグローバルであることを意味する http://manual.macromates.com/en/environment_variables#project_dependent_variables

場合は、TextMateのの静的VARSセクション http://manual.macromates.com/en/environment_variables#static_variables

関連する問題