Команды g ++ -I и -L для поиска файлов .hpp не работают - PullRequest
1 голос
/ 07 февраля 2020

Поэтому я пытаюсь скомпилировать файл (основной. cpp), который имеет

#include <SFML/Graphics.hpp>

Мой основной. cpp файл находится в каталоге:
~/"Documents/16_Games/01 Tetris/main.cpp"

Файл Graphics.hpp находится в каталоге:
/Users/linsu/Documents/libcpp/SFML-2.5.1-macos-clang/include/SFML

Я получаю сообщение об ошибке:

/Users/linsu/Documents/16_Games/01 Tetris/main.cpp:1:10: fatal error: 'SFML/Graphics.hpp' file not found
#include <SFML/Graphics.hpp>
         ^~~~~~~~~~~~~~~~~~~
1 error generated.

Некоторые команды I попробовал включить:

g++ -I /Users/linsu/Documents/libcpp/SFML-2.5.1-macos-clang/include/SFML ~/"Documents/16_Games/01 Tetris/main.cpp"

g++ -I/Users/linsu/Documents/libcpp/SFML-2.5.1-macos-clang/include/SFML ~/"Documents/16_Games/01 Tetris/main.cpp"

g++ -L /Users/linsu/Documents/libcpp/SFML-2.5.1-macos-clang/include/SFML ~/"Documents/16_Games/01 Tetris/main.cpp"

g++ -L/Users/linsu/Documents/libcpp/SFML-2.5.1-macos-clang/include/SFML ~/"Documents/16_Games/01 Tetris/main.cpp"

g++ -L/Users/linsu/Documents/libcpp/SFML-2.5.1-macos-clang/include/SFML -I/Users/linsu/Documents/libcpp/SFML-2.5.1-macos-clang/include/SFML ~/"Documents/16_Games/01 Tetris/main.cpp"

g++ -L /Users/linsu/Documents/libcpp/SFML-2.5.1-macos-clang/include/SFML -I /Users/linsu/Documents/libcpp/SFML-2.5.1-macos-clang/include/SFML ~/"Documents/16_Games/01 Tetris/main.cpp"

Все они выдают одну и ту же ошибку; Я чувствую себя глупым Я что-то упустил?

1 Ответ

0 голосов
/ 07 февраля 2020

Компилятор будет искать только по указанному вами пути, а не по всей цепочке подкаталогов. Он добавляет указанное вами имя (SFML/Graphics.hpp) ко всем путям, которые он может искать.

Он просматривает все местоположения системного заголовка, в текущем каталоге (./SFML/Graphics.hpp) и для объединения указанного пути. с -I и именем файла, предоставленным программистом:

/Users/linsu/Documents/libcpp/SFML-2.5.1-macos-clang/include/SFML/SFML/Graphics.hpp

Поскольку ни одно из этих мест не содержит такого файла, компилятор завершается ошибкой.


Требуется:

g++ -I/Users/linsu/Documents/libcpp/SFML-2.5.1-macos-clang/include ~/"Documents/16_Games/01 Tetris/main.cpp"

Обратите внимание, что каталог SFML отсутствует в параметре -I, поскольку он уже есть в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...