2015-03-24 10 views
-2

У нас очень старый и большой проект, который в основном написан C (и небольшим фрагментом C++), и он может быть построен как в Linux, так и в Windows. В настоящее время мы пишем все Makefile в этом проекте вручную, что, я думаю, не очень хорошо.Каков наилучший способ создания C/C++-программы в сообществе с открытым исходным кодом?

Теперь мы хотим сделать этот проект полностью открытым исходным кодом. Однако до этого мы хотим улучшить способ создания этого проекта. Поэтому я хотел бы узнать, что является лучшим/популярным способом в сообществе с открытым исходным кодом для создания такого проекта? Я немного разбираюсь в autoconf/antomake, который, кажется, существует там для выхода из долгого времени, просто интересно, появился ли какой-нибудь новый и лучший способ создания проекта C/C++?

Спасибо!

+1

На ваш взгляд, почему вручную созданы Makefiles 'not good'. –

+0

Использование 'autoconf', кажется, широко принято и хорошо работает. Хотя это довольно сложно настроить, по сравнению с CMake или аналогичными системами сборки, –

+0

Я думаю, что стандартная последовательность - это «configure», «make» и «make install». Это вариант, который вы созерцаете? –

ответ

1

Самым «открытым исходным кодом» будет переназначить цепочку компилятора, чтобы использовать autotools.

В принципе, он позволяет компиляцию на одном из нескольких «неизвестных» систем, обнаруживая библиотеки необходимости и их местоположения, а затем записывая make-файлы в соответствии с платформой.

Для C и C++ это очень хороший матч.

Если вы хотите «нажимать конверт», Maven Apache также может скомпилировать C и C++ с помощью плагина NAR. Лично мне очень нравится Maven Apache; однако, если вы не разбираетесь в этом, NAR plus «learning maven» будет довольно сложной задачей. Между тем, каждый, кто установлен из источника в ящике Linux, быстро становится знакомым с подпрограммой «configure; make, make install» от auotmake, поэтому использование Maven для этого действительно немного «вне коробки».

Существует также CMake; однако преимущества CMake на самом деле не поражают меня, как сильно отличающиеся от более зрелой цепи инструментов для автотюнинга. Тем не менее, CMake представляет собой довольно приятную настройку, которая становится более сложной (и все чаще соответствует модели automake), поскольку она должна поддерживать проблемы, которые представляют собой зрелую цепочку инструментов, такую ​​как поддержка automake.

В целом, я бы сказал, придерживайтесь autoconf/autotools/automake. Есть много примеров, и, хотя вам, возможно, придется использовать язык макросов M4, каждая часть системы сборки читаема и может быть использована для создания собственных пользовательских расширений.