Как я могу скомпилировать imgcnv?

Я хотел бы скомпилировать imgcnv , чтобы я мог нарезать изображения для panojs . Направления imgcnv INSTALL чрезвычайно кратки:

$ pwd
/home/$USER/src/imgcnv
$ ls
build-imgcnv-cygwin.sh  INSTALL      matlab     msvc2010_bimread   src_bimread
build-imgcnv-linux.sh   libs         msvc2008       msvc2010_gobjects  src_gobjects
build-imgcnv-macosx.sh  libsrc       msvc2008_bimread   readme.txt     testing
changelog.txt       LICENCE.txt  msvc2008_gobjects  scripts
generated       Makefile     msvc2010       src
$ cat INSTALL 
Welcome to imgcnv.  A utlity for reading and converting 
biological image formats.
1.  To install just execute,
    $ make install
2.  Sit back

Вот что происходит, когда я пытаюсь make

2
задан 23 April 2012 в 02:34

1 ответ

Короткий ответ (относится к Вашей определенной ситуации),

  1. Установите qt4-qmake пакет (или если это недоступно, qt3-dev-tools пакет). Также установите libbz2-dev пакет. (Можно установить обоих от командной строки путем выполнения sudo apt-get update сопровождаемый sudo apt-get install qt4-qmake libbz2-dev.)
  2. Если Вы не хотите imgcnv установленный в /usr/bin (который является местоположением по умолчанию), редактирование Makefile и измените первую строку (который читает prefix=/usr). Например, если Вы хотите это в /usr/local/bin, который является нормальным местом для программного обеспечения, Вы создаете и устанавливаете из источника (а не через диспетчер пакетов Ubuntu), заставляете эту строку сказать prefix=/usr/local. Если Вы хотите установить imgcnv в Вашем корневом каталоге затем создайте $HOME/bin если это уже не существует и редактирует Makefileпервая строка, которая будет читать $HOME.
  3. Выполненный make.
  4. Выполненный sudo make install (если Вы не устанавливаете в своем корневом каталоге; затем выполненный make install).
  5. Принимая, который работал, довольно ясно, что официальные инструкции по установке являются дефектными, так же дополнительно, можно хотеть сообщить об этом как ошибка специалистам по обслуживанию imgcnv.

Это работало на меня для создания imgcnv 1.52 на Ubuntu 11.10 Сновещательный Оцелот amd64 (т.е. 64-разрядный) система. Если это не работает на Вас, прокомментируйте с деталями (включая сообщения об ошибках и версию и архитектуру Вашей системы Ubuntu).

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

Более длинный ответ (применяется также к аналогичным ситуациям),

Стандартный способ создать программное обеспечение из источника, который имеет хорошие инструкции, что работа должна следовать за ними. К сожалению, это не делает.

Стандартный способ создать программное обеспечение из источника без инструкций (или с нерабочими инструкциями) состоит в том, чтобы видеть, существует ли названный сценарий configure. Если существует, выполнено ./configure --help видеть, какие параметры командной строки это берет. Затем запустите скрипт, с любыми опциями подходят для Ваших потребностей. Часто можно работать ./configure без опций, поскольку значения по умолчанию часто приемлемы. После выполнения ./configure, Вам можно дать инструкции. Если Вам говорят работать make, или если Вам не дают инструкции, необходимо затем работать make.

Если существует нет configure сценарий (как имеет место здесь), посмотрите, существует ли названный файл Makefile. Если существует, то выполнено make. (Когда существует a configure сценарий, этот сценарий будет часто генерировать Makefile, или в редком случае может изменить его.) Можно сначала хотеть отредактировать Makefile настроить опции для создания или установки. Одна цель a configure сценарий должен представить это ненужное путем создания a Makefile это настраивается согласно Вашим спецификациям. Одна из обычно специализированных переменных в make-файле prefix, который управляет, где программное обеспечение будет установлено. (См. "Короткий ответ" выше для определенного примера этого.)

Выполнение ./configure или make иногда перестанет работать, говоря Вам, что у Вас нет чего-то, в чем Вы нуждаетесь. Когда, который происходит, необходимо установить ту вещь. Когда я работал make, все, казалось, подходило, пока это в конечном счете не перестало работать потому что qmake команда не присутствовала в моей системе. С тех пор qmake команда, я пытался выполнить ее вручную, который дал мне подробное сообщение, говоря мне, у меня не было ее (который я уже знал), и какие пакеты я мог установить для получения ее. Затем я установил один из тех пакетов (qt4-qmake) и работал make снова. (Если бы это была библиотека или заголовочные файлы, то я, возможно, должен был искать по http://packages.ubuntu.com для наблюдения то, что обеспечивает его.)

Выполнение make снова будет часто мочь взять, где это кончило (или даже если не, то от где-нибудь позже, чем начало). Некоторое программное обеспечение - включая imgcnv - может занять некоторое время для создания, таким образом, это - хорошая идея попытаться взять, где Вы кончили. Иногда это вызывает проблемы, хотя, поэтому если Вы работаете make снова и это перестало работать, можно работать make distclean для возвращения вещей пути, они были перед выполнением make, затем выполненный make. (Если make distclean не работает, работать make clean.)

Иногда исходное распределение имеет сценарии сборки, как build-imgcnv-linux.sh в imgcnv. Если существует и сценарии сборки и a Makefile, и документация не говорит Вам запускать скрипт сборки вручную, желательно попытаться работать make во-первых, особенно если инструкции говорят Вам работать make install. В правильно настроенном исходном распределении, которое имеет a Makefile, выполнение make install сделал бы то же самое как выполнение make сопровождаемый make install (т.е. это видело бы, что программное обеспечение еще не было создано, и это создаст его прежде, чем попытаться установить его). Но иногда который не работает, таким образом необходимо работать make сначала.

Желательно работать make прежде make install так или иначе, даже если Вы знаете выполнение make install отдельно заботился бы о make ступите автоматически. Существует три причины этого:

  1. Если что-нибудь происходит во время make шаг, который вызывает Вас предупреждение (даже если это не ошибка), Вы не устанавливаете программное обеспечение, которое не могло бы быть создано путем, Вы хотите это. Например, могли быть предупреждения, сообщив Вам о потенциальных проблемах.

  2. Это не относится imgcnv. Но много исходных дистрибутивов идут с testsuites, чтобы видеть, будет ли созданная программа, вероятно, работать правильно. Можно создать и выполнить их с также make check или make test. (Если в документации ничто не говорится о них, я рекомендую пробовать те команды в том порядке.) Они не становятся выполненными автоматически путем выполнения make install, и в то время как Вы смогли просто работать make check или make test без выполнения make во-первых, это - нежелательный, потому что не могло бы быть ясно, произошла ли ошибка при создании программного обеспечения или при создании/выполнении testsuite (который является важной информацией для поиска и устранения неисправностей проблемы).

  3. Если Вы устанавливаете программное обеспечение для целой системы (а не просто Ваш пользователь), который является почти всегда конфигурацией по умолчанию, то make install потребности, которые будут выполнены как root. На Ubuntu надлежащий способ сделать это путем выполнения sudo make install вместо make install. Но Вы не должны на самом деле создавать программное обеспечение как root, таким образом, можно создать программное обеспечение как сами с make и затем установите его как root с sudo make install.

Если Вы уверены, что хотите и создать и установить (из какого вида страшных предупреждений выходят создающий), и make install не работает, можно использовать идиому make && make install. Это также обращается root/non-root проблема, поскольку можно работать make && sudo make install. && оператор, используемый таким образом, заставляет команду направо от него работать, только если команда слева от него, кажется, успешно выполнилась.

(Я намеренно не учел обсуждение того, как создать программное обеспечение, которое требует, чтобы пользователь вызвал autoconf, automake, и/или autogen.sh сценарий, поскольку исходный код стабильных версий очень редко требует этого. Однако, если бы кто-то хочет отредактировать это сообщение добавить инструкции, касающиеся тех ситуаций, менее чем третьей тематической рубрики, у меня не было бы возражения.)

2
ответ дан 23 April 2012 в 02:34

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

Похожие вопросы: