2

我正在尝试编译一个源文件 driver.cxx,它的包含文件中有一个名为的库

这个文件的路径是/home/terry/Downloads/libodb-2-4-0/odb/sqlite/database.hxx

要编译它,我输入以下内容:

g++ -c driver.cxx -I/home/terry/Downloads/libodb-2.4.0/odb

并得到消息

driver.cxx:10:35:致命错误:odb/sqlite/database.hxx:没有这样的文件或目录#include ^ 编译终止。

使用 g++ 的 -I 标志时如何提及路径?

4

4 回答 4

3

根据您粘贴的错误,您的 include 命令看起来像:

#include "odb/sqlite/database.hxx"

如果是这样,您的-I选项应该没有odbdir(因为它已经在包含中提到):

-I/home/terry/Downloads/libodb-2.4.0/

总而言之,-I与包含连接的应该是确切的路径。


这意味着如果您决定包括:

#include "database.hxx"

您的-I选择应该是:

-I/home/terry/Downloads/libodb-2.4.0/odb/sqlite

同样,-I+ 包含 = 确切路径。

于 2015-06-24T12:43:06.983 回答
1

由于错误消息提到路径的“odb”部分,我会将其从 -I 标志中删除

于 2015-06-24T12:42:52.090 回答
0

假设您要database.hxx.cpp文件中使用。然后在你的.cpp文件中你应该写:

#include "database.hxx"

对于编译,您应该提及.h存在的路径。所以在你的情况下。

-I /home/terry/Downloads/libodb-2-4-0/odb/sqlite/

于 2015-06-24T12:42:58.893 回答
0

我可以看到您的错误提到您使用#include <odb/sqlite/database.hxx>. 尝试将其更改为#include <database.hxx>.

于 2015-06-24T12:43:08.643 回答