2013-01-18 49 views
0

我想在eclipse中交叉编译一些porject,但是我得到一个让我疯狂的错误。它必须与内含物和库标题一起,在图片中可以看到项目树。 PICTUREeclipse中的库头包含错误

问题是我不明白为什么我使用的路径对于编译是错误的,有什么建议吗?

由于提前,

这是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_*/ 

回答

0
  • 第一个问题,因为它不是你的,包括被引用的Eclipse的一部分,那么它应该被报价""而不是<>包围。

  • 其次,您的包含路径不正确。有一个ibrtn子文件夹 您没有考虑其中。所以,并没有让主父文件夹,包含路径应​​该是#include "ibrdtn/utils/Utils.h"

修复这两个项目,你应该在企业。

+0

我没有看到你的第二点,包含路径在哪里? – ndarkness

+0

你有'ibrdtn-0.8.0/utils/Utils.h'我从你的照片中看到它应该是'ibrdtn-0.8.0/ibrdtn/utils/Utils.h'除非有什么你没有显示。你甚至可以在Utils.h中看到那个你有正确路径的目录(包括'ibrdtn'目录) –

+0

我已经完成了,但是我仍然有同样的问题,'代码错误:.../ibrdtn- 0.8.0/tests/utils/TestUtils.cpp:10:45:错误:ibrdtn-0.8.0/ibrdtn/utils/Utils.h:没有这样的文件或目录' – ndarkness