【发布时间】:2011-02-05 09:20:10
【问题描述】:
我在编译包含另一个 cpp 文件的 cpp 时遇到问题 所以我有 Main.cpp Numbers.h 和 Numbers.cpp 似乎 TextMate 只编译了我的 Main.cpp 而不包括其余部分。我尝试使用 xcode,它工作正常..
这是来自 TextMate cmd+R 的错误:
未定义的符号: “Numbers::Numbers(int)”,引用自: _main 在 ccMrD1Eq.o “Numbers::print()”,引用自: _main 在 ccMrD1Eq.o 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)
【问题讨论】: