我知道已经有关于这个问题的主题,但遗憾的是由于我在C ++编程中的初学者水平,我无法解决我的问题。 我在OS X Maverick上
关于这个主题: Undefined symbols for architecture x86_64 - Mavericks (Yosemite, El Capitan...)
提到通过使用选项-stdlib = libstdc ++来解决获取“未定义的架构x86_64符号”编译错误的问题。 我的问题非常简单:你如何在Xcode上使用这个选项? 我很确定它是在Build设置中 - > Apple LLVM 5.1 - 语言 - C ++ - > C ++标准库 在哪里我可以选择libstdc ++而不是libc ++,但是当我将它设置为libstdc ++时,我仍然会收到编译错误。
我正在尝试编译的代码是一些模板实例化:
HEADER FILE (range.h)
#ifndef Proj_range_h
#define Proj_range_h
template <class Type> class Range
{
private:
Type lo;
Type hi;
public:
//Constructors
Range(); //Default constructor
Range(const Type& low, const Type& high); //low and high value
Range(const Range<Type>& ran2); //copy constructor
//Destructor
virtual ~Range();
//Modifier functions
void low(const Type& t1); //to set the low value
void high(const Type& t1); //to set the high value
//Accessing functions
Type low() const; //lowest value in range
Type high() const; //highest value in range
Type spread() const; //high - low value
};
#endif
CLASS MEMBER FUNCTIONS CODING (range.cpp)
#include "range.h"
template <class Type> Range<Type>::Range(const Range<Type>& r2)
{
//Copy constructor
lo=r2.lo;
hi=r2.hi;
}
template <class Type> Range<Type>::Range(const Type& low, const Type& high)
{
lo=*low;
hi=*high;
}
template <class Type> Type Range<Type>::spread() const
{
return hi-lo;
}
template <class Type> Range<Type>::~Range<Type>()
{
//Destructor
}
MAIN FILE (main.cpp)
#include "range.h"
#include <iostream>
int main()
{
double closingPrice=40;
double openingPrice=60;
Range<double> bearish(closingPrice,openingPrice);
return 0;
}
我希望我的问题很清楚。
谢谢