Я пытаюсь скомпилировать исходный файл 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 ++?
В соответствии с ошибкой, которую вы вставили, похоже, что ваша команда 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
+ включить = точный путь.
Поскольку в сообщении об ошибке упоминается часть пути ‘odb’, я бы удалил его из -I flag
Допустим, вы хотите использовать database.hxx
в вашем .cpp
файл. Тогда в вашем .cpp
файл, который вы должны написать:
#include "database.hxx"
и для компиляции вы должны указать путь, по которому .h
настоящее. Так что в вашем случае это будет.
-I /home/terry/Downloads/libodb-2-4-0/odb/sqlite/
Я вижу, что ваша ошибка говорит о том, что вы используете #include <odb/sqlite/database.hxx>
, Попробуйте изменить это на #include <database.hxx>
,