与eclipse的库头包含错误

时间:2013-01-18 15:55:04

标签: c++ eclipse

我试图在日食中交叉编译一些项目,但是我收到的错误让我发疯了。它必须与包含和库标题一起,在图片中可以看到项目树。 PICTURE

问题在于我无法理解为什么我使用的路径编译错误,有什么建议吗?

提前致谢,

这是包含错误的TestUtils.cpp

#include "TestUtils.h"

#include <ibrdtn-0.8.0/utils/Utils.h> //sucks

CPPUNIT_TEST_SUITE_REGISTRATION (TestUtils);

void TestUtils::setUp()
{
}

void TestUtils::tearDown()
{
}

void TestUtils::tokenizeTest()
{
    using namespace dtn::utils;
    CPPUNIT_ASSERT(Utils::tokenize(":", "").empty());
    CPPUNIT_ASSERT(Utils::tokenize(":", "::").empty());
    CPPUNIT_ASSERT_EQUAL((int)Utils::tokenize(":", ":a:test::", 2).size(), 2);
    CPPUNIT_ASSERT_EQUAL((int)Utils::tokenize(":", ":a:test::b::", 2).size(), 3);
    //TODO how should the added string in the last item look like? "b::" or ":b::" or "::b::"
    CPPUNIT_ASSERT(Utils::tokenize(":", ":a:test::b::", 2)[2] == "b::");
    CPPUNIT_ASSERT_EQUAL((int)Utils::tokenize(":", ": :", 1).size(), 1);
    CPPUNIT_ASSERT_EQUAL((int)Utils::tokenize(":", ":    :t e s t: ").size(), 3);
}

错误就是这个 /tests/utils/TestUtils.cpp:10:38:警告:ibrdtn-0.8.0 / utils / Utils.h:没有这样的文件或目录

似乎不存在的Utils.h就是这个

#ifndef UTILS_H_
#define UTILS_H_


#include "ibrdtn/data/Bundle.h"
#include "ibrdtn/data/CustodySignalBlock.h"
#include "ibrdtn/data/StatusReportBlock.h"
#include "ibrdtn/data/PayloadBlock.h"

namespace dtn
{
    namespace utils
    {
        class Utils
        {
        public:
            static void rtrim(std::string &str);
            static void ltrim(std::string &str);
            static void trim(std::string &str);

            static vector<string> tokenize(std::string token, std::string data, size_t max = std::string::npos);
            static double distance(double lat1, double lon1, double lat2, double lon2);

            static void encapsule(dtn::data::Bundle &capsule, const std::list<dtn::data::Bundle> &bundles);
            static void decapsule(const dtn::data::Bundle &capsule, std::list<dtn::data::Bundle> &bundles);

        private:
            static void encapsule(ibrcommon::BLOB::Reference &ref, const std::list<dtn::data::Bundle> &bundles);
            static double toRad(double value);
            static const double pi;
        };
    }
}

#endif /*UTILS_H_*/

1 个答案:

答案 0 :(得分:0)

  • 第一个问题,因为它不是Eclipse引用的include的一部分,所以它应该用引号""而不是<>包围。

  • 其次,您的包含路径不正确。有一个ibrtn子文件夹 你没有考虑到这一点。因此,包含路径应​​该是#include "ibrdtn/utils/Utils.h"

  • ,而不是主父文件夹

修复这两项,你应该开展业务。