第三方编译时错误(保证有效)代码

时间:2013-04-16 06:37:24

标签: c++ compilation

我在我的项目中使用QuickFAST。当我尝试编译时,我在QuickFAST中收到了很多编译时错误。但QuickFAST代码保证有效(当我单独打开它时,我能够编译它。)

为什么我在有效代码中收到此编译时错误以及如何解决它?

typedef boost::shared_ptr<ValueMessageBuilder> ValueMessageBuilderPtr;

Error   3   error C4430: missing type specifier - int assumed. Note: C++ does not support default-int   e:\quickfast\quickfast_1_4_0\src\messages\ValueMessageBuilder_fwd.h 14  1   FastNativeAdapter

typedef boost::uint16_t uint16;

Error   15  error C4430: missing type specifier - int assumed. Note: C++ does not support default-int   E:\quickfast\quickfast_1_4_0\src\Common\Types.h 23  1   FastNativeAdapter

typedef boost::shared_ptr<ValueMessageBuilder> ValueMessageBuilderPtr;

Error   1   error C2653: 'boost' : is not a class or namespace name e:\quickfast\quickfast_1_4_0\src\messages\ValueMessageBuilder_fwd.h 14  1   FastNativeAdapter


void setValue(const uint64 value)

Error   255 error C2535: 'void QuickFAST::Value::setValue(const int)' : member function already defined or declared E:\quickfast\quickfast_1_4_0\src\Common\Value.h 99  1   FastNativeAdapter


virtual void addValue(FieldIdentityCPtr & identity, ValueType::Type type, const uint64 value) = 0;

Error   45  error C2535: 'void QuickFAST::Messages::ValueMessageBuilder::addValue(QuickFAST::Messages::FieldIdentityCPtr &,QuickFAST::ValueType::Type,const int)' : member function already defined or declared E:\quickfast\quickfast_1_4_0\src\Messages\ValueMessageBuilder.h 42  1   FastNativeAdapter

void setValue(const int8 value)
{
  class_ = SIGNEDINTEGER;
  cachedString_ = false;
  signedInteger_ = value;
}

Error   310 error C2065: 'value' : undeclared identifier    E:\quickfast\quickfast_1_4_0\src\Common\Value.h 147 1   FastNativeAdapter

boost include和lib文件被添加到项目中。

UPD:

我发现仅包含QuickFAST文件就足够了,就像#include "Messages/ValueMessageBuilder.h"一样。之后我收到了上面的编译错误,尽管我从未实例化或使用任何QuickFAST类。

如果删除#include "Messages/ValueMessageBuilder.h",则错误消失(因为在整个程序中,我从不引用任何QuickFAST文件。

所以关键是 - 只需要包含文件即可。因此,不知怎的QuickFAST来源与我的项目错误相关?我刚刚在项目属性中添加了include和lib文件......

1 个答案:

答案 0 :(得分:0)

FAQ of QuickFAST中找到它并帮助:

要解决此问题,大多数应用程序应将$QUICKFAST_HOME/src设置为包含目录,并在包含任何其他QuickFAST标头之前包含<Application/QuickFAST.h>使用预编译标头的应用程序应包含此标头他们的预编译头文件。

只需在任何其他包含之前加入Application/QuickFAST.h