2010-05-11 5 views
4

Я просто хочу разработать приложение C в Linux с автоматически созданным файлом auto (make/conf/...). Я пробовал генерировать его с помощью ede и anjuta, но, похоже, он не генерирует Makefile.am. Итак, я попробовал запустить automake, и он говорит, что «ltmain.sh» не найден. Есть ли какие-то простые в создании базовые файлы сборки для Linux-приложений C/C++. Какова стандартная практика? Большинство людей сами пишут эти файлы?Что такое ltmain.sh, и почему automake говорит, что он отсутствует? Что такое хороший авто (make/conf/etc)?

+1

читайте здесь http://www.gnu.org/software/hello/manual/autoconf/index.html#Top – Anycorn

ответ

-4

Я бы не использовал autoconf и automake вообще - их сложность перевешивает их выгоду, особенно если вы ориентируетесь только на Linux.

Обратите внимание, что «git», например, не использует их вообще; вместо этого он просто имеет умеренно-сложный (но понятный) Makefile.

+0

Это не отвечает на вопрос и, таким образом, является совершенно несущественным мнением по другой теме. – alternative

+0

git конечно. Использование автоколонка. И Makefile в git гораздо менее понятен, чем эквивалент Makefile.am. –

+1

На самом деле automake/autoconf делает вещи далеко _simpler_, особенно если вы нацеливаете Linux, если ваша программа не является полностью тривиальной. Входной файл automake ('Makefile.am') является прекрасным и гораздо проще писать или понимать (и тем не менее гораздо более функциональным), чем эквивалентный« Makefile ». Для случаев, когда конфигурация не нужна, входной файл autoconf ('configure.ac') может быть тривиальным, и если требуется некоторая конфигурация _is_, autoconf - это гораздо лучший способ сделать это, чем специальные методы, которые, как представляется, альтернатива. – snogglethorpe

1

EDE может работать с файлами Automake двумя способами. Если вы пишете свои файлы automake, они будут их читать и настраивать с помощью пользовательского интерфейса.

Если вы предпочитаете, вы можете сделать EDE все это для вас. Во-первых, создать свой первый файл C, а затем, когда он находится на диске, сделайте следующее:

M-х Эде новый RET Automake RET

затем в меню параметров проекта/проекта, добавить цель, как «программа».

Если вы заполните свой C-файл, вы можете выбрать Project-> Build-> build currentproject из меню, и он будет создавать и настраивать все, что необходимо для Automake, чтобы сделать это, помимо запуска всего misc требуются команды automake.

И, наконец, есть опция «запустить» где-нибудь, чтобы запустить вашу программу.

4

Создание действительно тривиального набора файлов autotool довольно просто. Вот пример (действительно основной). После выполнения этого, вы должны получить копию ltmain.sh в каталоге, и вы будете все готово, чтобы запустить скрипт настройки:

 

$ mkdir sample 
$ cd sample 
$ echo 'int main(void) { return 0; }' > foo.c 
$ echo 'bin_PROGRAMS = foo' > Makefile.am 
$ autoscan 
$ mv configure.scan configure.ac 
$ # edit configure.ac, add AM_INIT_AUTOMAKE([foreign]) 
$ # and LT_INIT, set project name and bug-report-address 
$ autoreconf -ivf 

Обратите внимание, что в этом примере, LIBTOOL действительно не нужно с примером является просто создание простого приложения. Но вы спросили о ltmain.sh, и это дело с libtool, так что LT_INIT необходимо до адресовать эту часть вопроса. Если вы хотите построить библиотеку , измените bin_PROGRAMS на lib_LTLIBRARIES.