Как скомпилировать файлы C++, организованные в структуре каталогов?
Я написал кучу кода и отсортировал его по схеме, аналогичной следующей:
project/
+ include/
| + bar/
| | bar.hpp
| foo.hpp
+ src/
| + bar/
| | bar.cpp
| foo.cpp
| main.cpp
Мой вопрос, как мне позвонить g++
теперь, чтобы он все хорошо связывал?
Я уже понял, что мне нужно позвонить с -I
опция, указывающая на каталог include/. Я предполагаю, что было бы наиболее разумно вызывать g++ из проекта / папки. Кроме того, я рассматриваю возможность создания Makefile для автоматизации этого процесса, но должен признать, что я еще не проводил много исследований по этому вопросу.
2 ответа
Я бы порекомендовал использовать какой-нибудь инструмент для сборки, такой как CMake или Autotools. Создание собственных Make-файлов может быть своего рода PITA, чтобы получить право.
Если у вас есть небольшая структура каталогов с некоторыми файлами C++, которые вы хотите быстро скомпилировать, вы можете сделать что-то вроде этого:
find src/ -name "*.cpp" | xargs g++ -I include/