Попытка использовать опцию -I с 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: фатальная ошибка: odb / sqlite / database.hxx: такого файла нет
или каталог #include
^ Компиляция прекращена.

Как мне указать путь при использовании флага -I для g ++?

2

Решение

В соответствии с ошибкой, которую вы вставили, похоже, что ваша команда include:

#include "odb/sqlite/database.hxx"

Если это так, ваш -I вариант должен быть без odb dir (поскольку это уже упоминалось во включении):

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

В целом -I в сочетании с включением должен быть точный путь.


Смысл, если вы решили включить с:

#include "database.hxx"

Ваш -I Вариант должен быть:

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

Снова, -I + включить = точный путь.

3

Другие решения

Поскольку в сообщении об ошибке упоминается часть пути ‘odb’, я бы удалил его из -I flag

1

Допустим, вы хотите использовать database.hxx в вашем .cpp файл. Тогда в вашем .cpp файл, который вы должны написать:

#include "database.hxx"

и для компиляции вы должны указать путь, по которому .h настоящее. Так что в вашем случае это будет.

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

0

Я вижу, что ваша ошибка говорит о том, что вы используете #include <odb/sqlite/database.hxx>, Попробуйте изменить это на #include <database.hxx>,

0
По вопросам рекламы [email protected]