2013-01-18 51 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