我试图在日食中交叉编译一些项目,但是我收到的错误让我发疯了。它必须与包含和库标题一起,在图片中可以看到项目树。 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_*/
答案 0 :(得分:0)
第一个问题,因为它不是Eclipse引用的include的一部分,所以它应该用引号""
而不是<>
包围。
其次,您的包含路径不正确。有一个ibrtn
子文件夹
你没有考虑到这一点。因此,包含路径应该是#include "ibrdtn/utils/Utils.h"
修复这两项,你应该开展业务。