Как скомпилировать файлы 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/

Я думаю, что самый простой подход - это использовать IDE - например, NetBeans сгенерирует файлы Makefile для вас ( доступны другие IDE).

Другие вопросы по тегам