2012-01-31 4 views
3

Мне нужен IDE, который должен:Нужна простая Linux C++ IDE (Android NDK)

  1. позволяет запустить/NDK-скрипт сборки ~/андроид-NDK-r7 для компиляции;
  2. перехватить вывод gcc и показать его мне;
  3. Когда я нажимаю на строке ошибки, перейдите к месту ошибки: откройте указанный файл в указанной строке.

У меня есть большой существующий проект на C++ и портирую его на Android/NDK.

(Ни Code :: Blocks, ни Eclipse, сделать 3-ю. Может быть, я что-то не хватает?)

ответ

7

Я настроил Code :: Blocks для разработки Android NDK/JNI, но есть хитрость. Codeblocks считает, что он может знать, какой компилятор вы используете, и хочет остановить вас от использования чего-то, чего он не знает. Вы должны обмануть его.

  1. Создать пустой CodeBlocks проекта
  2. Добавить исходные и заголовочные файлы (вручную)
  3. Щелкните правой кнопкой мыши на проект в рабочем пространстве (левая панель). Вы увидите меню: the two useful menu items
    (EDIT: Перейти Свойства и указать это обычай Makefile, затем параметры сборки)
  4. Перейти к «Свойства» и сказать CB имеет обычай Makefile. Не говорите ему ничего близкого к правде о платформе: он скажет вам, что у вас нет необходимого компилятора и даже не попытайтесь что-то построить. custom makefile
  5. Наконец, в Варианты сборки, выберите компилятор GNU GCC, перейдите к «Сделать команды» и напишите свои пользовательские команды. (Лично я создал Makefile, который вызывает ndk-build - я предпочитаю хранить сценарии в текстовых файлах, а не в диалогах графического интерфейса.Элемент, который вы можете захотеть изменить это -j 4) build options

И последнее замечание: если ваша конфигурация не работает, вы не получите никакой значимой диагностики.

PS Вот мой Makefile:

all: 
    @echo '====all====' 
    pwd;~/android-ndk-r7/ndk-build -j 4 
clean: 
    @echo '====clean====' 
    pwd;~/android-ndk-r7/ndk-build clean 

.PHONY: clean 
.PHONY: all 
+0

Опции на шаге 4 отключены. Шаг 5 должен быть выполнен до шага 4, поэтому параметры make будут доступны для редактирования. –

+0

Я не мог заставить его работать; он швы все, что я поставил в шаге 4, игнорируется, а ошибки с «Нет правила, чтобы сделать цель« Debug ». –

+0

После игры с ним; Мне удалось заставить его работать. И это потрясающе !! Я забыл изменить «тихую сборку» на «bash -c». ~/.bashrc; сделать «и все связанное». –

0

Emacs является то, что вы ищете. Для компиляции в emacs просто откройте исходный файл, затем выберите «Инструменты-> Скомпилировать». Вы можете изменить команду компиляции по умолчанию от «gmake -k» до того, что вы хотите. В вашем случае, конкретный скрипт сборки. После выполнения компиляции вы можете щелкнуть по ошибкам и открыть соответствующий исходный файл и строку.

Emacs - это полноценная среда разработки и есть много плагинов для добавления возможностей. Лучший из них EDE (Emacs Dev Env). Не уверен, какой дистрибутив вы используете, но Emacs, безусловно, является стандартным пакетом во всех них.

+0

Err ... Emacs ... ну ... немного эзотерическим. Есть ли более интуитивный вариант? – 18446744073709551615

+1

Может быть, но так же 2^64-1. Я использовал kdevelop в прошлом. Он будет делать то, что вы хотите. Но я предпочитаю emacs. Если вы хотите действительно эзотерический, попробуйте vim, который также может удовлетворить ваши требования. – gogators

+0

Самая забавная вещь о Emacs заключается в том, что из командной строки '~/android-ndk-r7/ndk-build clean all' терпит неудачу при синтаксической ошибке, но из Emacs она не работает на этапе связывания. Я должен был 'cd/full/path/to/myProject/jni /' исправлять его. – 18446744073709551615

2

Посмотрите на ARM Development Studio 5 (DS-5). Community Edition является бесплатным для некоммерческого использования и предлагает интеграцию с NDK в Eclipse.

Кроме того, я считаю, что если вы немного поработаете, вы найдете неофициальные инструкции из разных источников о том, как интегрировать NDK в Elipse. Например, посмотрите на некоторые из этого:

+0

Благодарим вас за ссылки Eclipse; он работал, но Eclipse не кодирует солнечный свет: он обнаруживает «ошибки» (например, функция регистрации не найдена), которые не являются проблемой для компилятора и компоновщика, и вы должны * вручную удалять * сообщения об ошибках для запуска вашего кода. – 18446744073709551615

+0

Какая ошибка регистрации вы имеете в виду? Что касается липких ошибок, да, именно так разработан Eclipse. Тем не менее, это среда, которую предлагает Google, и предоставляет плагины/и т. Д. для (не-NDK) и о лучшем, что есть сейчас. – NuSkooler

+0

Ошибка регистрации; Я определил вызов регистрации Android как макросы LOGD и DLOG (два имени проще, чем их помнить), и каждый раз, когда я открываю исходный файл C, Eclipse сообщает мне, что такой функции нет (я не помню точное имя , он длинный), но код компилируется и запускается, а функция _is_ вызывается, потому что она работает. Так что это ложный позитив. – 18446744073709551615

Смежные вопросы