0

我已经安装了超表/opt/hypertable/current/,我从超表运行了一个示例程序......

#include <Common/Compat.h>

#include <iostream>
#include <fstream>
#include <string>

#include <Common/System.h>
#include <Common/Error.h>

#include <Hypertable/Lib/Client.h>
#include <Hypertable/Lib/KeySpec.h>

using namespace Hypertable;

int main(int argc, char* argv[]) {
        ClientPtr client_ptr;
        TablePtr table_ptr;
        TableMutatorPtr mutator_ptr;
        KeySpec key;

        const char* install_dir = "/opt/hypertable/current/";

        client_ptr = new Client( System::locate_install_dir(install_dir) );

}

我收到了这个错误

g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/testes.d" -MT"src/testes.d" -o"src/testes.o" "../src/testes.cpp"
../src/testes.cpp:1: fatal error: Common/Compat.h: No such file or directory

我使用 eclipse CDT 进行开发,并使用项目进行链接Properties->c/c++build->setting->Libraries->LibrarySetPath(-L) ,并且我已将其标记为HyperCommon also in -l我将其设置为/opt/hypertable/current/include/任何人都可以告诉我您收到此错误...

4

2 回答 2

0

构建软件时需要设置两种不同的路径:包含路径和路径。你似乎把他们弄糊涂了。

包含路径是查找所有.h文件的路径。如果您遇到包含路径问题,它将在编译时(在构建每个单独的 .o 文件时)显现,这就是您所看到的。“Common/Compat.h:没有这样的文件或目录”意味着您可能缺少包含路径。

库路径是在链接时查找 DLL/共享目标文件的路径。如果您有库路径问题,它将在链接时出现(从 .o 文件创建最终可执行文件时)。你还没有达到编译的那个阶段。

所以做 LibrarySetPath 和设置-lor-L是一个链接器/库的东西;你想修复包含路径。

最有可能的是,您想要添加/opt/hypertable/current/include/包含路径(在 Eclipse 中)。在 GCC 命令行上,这将使用 完成-I /opt/hypertable/current/include/,而不是使用-L.

于 2011-03-21T03:54:37.813 回答
-1

you want to add /opt/hypertable/current/include/ThriftBroker/gen-cpp to the include path 你还得一起编译/opt/hypertable/current/include/ThriftBroker/gen-cpp下的cpp文件

于 2013-09-16T02:39:25.660 回答