对小牛的终端通过G ++编译时错误

我用G ++编译器和用于终端单编译C ++文件和项目,以及(在项目中,我指的是在同一目录的文件,而不是一个真正的Xcode项目)。 我没有问题,但我升级到OS X的小牛,并且从这一点来说,我只能够编译单个文件。 在那之后,我安装的Xcode 5.0.1,并安装命令行工具,但并没有解决我的问题。

所以,现在我使用的OS X 10.9小牛的Xcode 5.0.1(5A2053)。

我想,这个问题是我的源代码,但现在我已经做了一个非常简单的程序,但我得到了同样的错误:

Steve-MacBook:test szaboistvan$ g++ -o main main.cpp Undefined symbols for architecture x86_64: "Myclass::geta()", referenced from: _main in main-0bDtiC.o "Myclass::getb()", referenced from: _main in main-0bDtiC.o "Myclass::Myclass()", referenced from: _main in main-0bDtiC.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

该项目的文件:main.cpp中

#include <iostream> #include "Myclass.h" using namespace std; int main(){ Myclass one; cout<<one.geta()<<endl<<one.getb()<<endl; return 0; }

Myclass.h

#include <iostream> class Myclass { private: int a; double b; public: Myclass(); int geta(); double getb(); };

Myclass.cpp

#include <iostream> #include "Myclass.h" using namespace std; Myclass(){ int a=5; double b=3.0; } int geta(){ return a; } double getb(){ return b; }

先谢谢你!

--------------解决方案-------------

除非我被厚厚的(提示,我不是),你还没有实现

MyClass::geta() 相反,你实现了一个函数调用geta

你的类中的方法应该是这样的:

MyClass::Myclass()
{
int a=5;
double b=3.0;
}

int MyClass::geta()
{
....
}

等等

此外,你不能被编译MyClass.cpp ,因为那里的代码无效。

分类:C# 时间:2015-03-15 人气:0
本文关键词: GCC
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.203 (s). 10 q(s)