C ++,错误:'{'token

时间:2016-03-21 03:20:47

标签: c++ class dependencies codeblocks

我已经从github克隆了一个开源代码。这个项目是用make编译的,完全没问题。我重新配置它并创建了一个codeblocks项目添加了它的文件。我也错放了一些文件,我也做了一些修复。

我的问题是当我编译它时,我遇到了很多错误,第一个是:

error: expected class-name before '{' token
QProblem.hpp中的

#include <qpOASES/QProblemB.hpp>
#include <qpOASES/Constraints.hpp>
#include <qpOASES/ConstraintProduct.hpp>
#include <qpOASES/Matrices.hpp>


BEGIN_NAMESPACE_QPOASES

class QProblem : public QProblemB // error is here
{

QProblemB已在QProblemB.hpp中定义,其中包括:

QProblemB.hpp:

#include <qpOASES/Flipper.hpp>
#include <qpOASES/Options.hpp>
#include <qpOASES/Matrices.hpp>


BEGIN_NAMESPACE_QPOASES


class SolutionAnalysis;

class QProblemB
{
    friend class SolutionAnalysis;

    public:
        QProblemB( );

我尝试添加

class QProblemB;

但是这个想法没有用。这会导致另一个错误:

error: invalid use of incomplete type 'class qpOASES::QProblemB'

我无法进一步简化源代码。所以我上传了完整的项目here。 codeblocks项目文件位于名为codeblocks的文件夹中。

更新

我意识到通过更新所有文件并在所有文件中添加#pragma once并将所有cpp文件更改为hpp(主cpp文件除外),问题将得到解决。我仍然想知道这是什么问题。

0 个答案:

没有答案