尝试在 g++ 中使用 -I 选项

Trying to use -I option with g++

我正在尝试编译一个源文件 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: fatal error: odb/sqlite/database.hxx: No such file or directory #include ^ compilation terminated.

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

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

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

#include "database.hxx"

并且为了编译,您应该提及 .h 所在的路径。所以在你的情况下它会是。

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

根据您粘贴的错误,您的包含命令似乎是:

#include "odb/sqlite/database.hxx"

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

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

总而言之,与 include 连接的 -I 应该是准确的路径。


意味着如果您决定包含:

#include "database.hxx"

您的 -I 选项应该是:

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

同样,-I + include = 精确路径。

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