ant+cpptasks по сравнению со сканированиями по сравнению с делают

Не отвечая на вопрос, но вопрос, стоящий за вопросом:

Ваша цель - улучшить взаимодействие с пользователем на меньшем экране. Появление элементов управления пользовательского интерфейса является одной из его частей. Другая часть UX - это то, как приложение реагирует.

Что если вы сделаете область, реагирующую на нажатия, достаточно большой для того, чтобы на iPad Mini было удобно работать, при этом визуальное представление элементов управления пользовательского интерфейса должно быть достаточно маленьким, чтобы на iPad было визуально приятно?

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

В качестве бонуса, это работает и для больших рук на iPad.

20
задан Jason S 24 June 2009 в 14:01
поделиться

4 ответа

Для кросс-компиляции, я думаю, ваш лучший выбор - CMake или Автоинструменты . Особенно, если вы можете скомпилировать свой код для нескольких архитектур / платформ. Обычно я компилирую подмножество своего кода на собственной машине для целей модульного тестирования и все это для целевой платформы. CMake справляется с этим особенно хорошо, поскольку позволяет указать, где находятся кросс-скомпилированные библиотеки. Поэтому вместо того, чтобы искать кросс-скомпилированный libpng в / usr / lib, можно сказать, что нужно искать в / opt / arm-eabi-gcc / или там, где на вашем компьютере сборки установлены библиотеки цепочки инструментов. Вы можете создать несколько каталогов сборки для разных вариантов и вручную скомпилировать каждый вариант с помощью make, или запустить серию с помощью безумной ручной рекурсивной make.

Ant имеет недостаток в том, что он в основном так же хорош или так же плох, как и vanilla Make , с дополнительным недостатком, заключающимся в том, что вы используете что-то, что не является особенно популярным для C или C ++. Вы должны иметь дело со всеми своими собственными зависимостями - как внутренними, такими как файл C, файл заголовка, библиотекой или исполняемым файлом, так и внешними зависимостями, такими как необходимость связывания со сторонними библиотеками. К тому же я не думаю, что задачи Ant C поддерживаются так часто. Все, кого я видел, кто использует Ant для C, выступают за вызов GCC с задачами exec.

SCons лучше, но кросс-компиляция не его сильная сторона. Это также не «система сборки», такая как CMake или Autotools, это всего лишь инструмент сборки. Как написано в их вики, это в значительной степени «Сделай на Python» . Тем не менее, он имеет встроенную обработку зависимостей, а это означает, что вам не нужно кататься там с помощью "

В CMake и Autotools проблемы с зависимостями решены достаточно хорошо, а поддержка кросс-компиляции autotools является зрелой. В CMake кросс-компиляция существует с версии 2.6.0, выпущенной в апреле 2008 года. Вы получаете эти функции бесплатно, а также другие функции, такие как упаковка и запуск модульных тестов («проверка выполнения» или аналогичные цели). Обратной стороной обоих этих инструментов является то, что они требуют начальной загрузки. В случае CMake вам необходимо установить двоичный файл CMake для создания файлов Makefiles или Visual Studio. В случае с Autotools это немного сложнее, потому что не всем, кто компилирует программное обеспечение, потребуется установка automake и autoconf, а только те, которым необходимо изменить систему сборки (добавление новых файлов считается изменением системы сборки). 2 этапа начальной загрузки (configure.ac -> configure, configure + Makefile.in -> Makefile) концептуально немного сложнее для понимания.

Для правки: кросс-компиляция - дополнительная головная боль в системах сборки по той причине, что она усложняет автоматическое обнаружение программ и библиотек. SCons не решает эту проблему, решать вам. Муравей тоже ничего не делает. Autoconf обрабатывает это в случае autotools, но вам, возможно, придется указать "--with-libfoobar = / some / path" в командной строке, когда вы настраиваете или сталкиваетесь с нарушением связывания, когда он пытается использовать / usr / lib на этапе связывания . Подход CMake немного сложнее с файлом цепочки инструментов, но это означает, что вам не нужно указывать все инструменты и библиотеки (CC, CXX, RANLIB, --with-ibfoo = и т. Д.), Как они выяснены из стандартное соглашение. Теоретически вы можете повторно использовать специально созданный файл цепочки инструментов CMake в нескольких проектах для их кросс-компиляции. На практике CMake недостаточно широко распространен, чтобы сделать это удобным для среднего хакера, хотя он может быть полезен, если вы создаете несколько частных проектов.

25
ответ дан 30 November 2019 в 00:05
поделиться

У Ant очень много Java пользовательская база (по естественным причинам). Тот факт, что Ant может быть очень полезен в гораздо более широком контексте, не осознается большинством разработчиков, не связанных с Java. В результате, если вы используете Ant для создания своего C / C ++ - кодируйте гораздо больше самостоятельно, чем если вы используете систему с большей пользовательской базой (CMake или SCons).

Лично я очень доволен CMake в первую очередь потому, что это единственная система сборки, которая может создавать настоящие проекты Visual Studio. SCons тоже могут, но они делают только внешний вызов SCons, тогда как CMake генерирует проекты, которые используют собственный механизм сборки Visual Studio. Это очень полезно, если вы работаете вместе с людьми, которые привыкли к Visual Studio.

I ' Не уверен, что я бы назвал поддержку кросс-компиляции CMake «зрелой», поскольку она еще довольно молода. Но специалисты CMake относятся к этому серьезно, поэтому я без колебаний попробую.

1
ответ дан 30 November 2019 в 00:05
поделиться

Несколько лет назад я активно использовал Ant + CppTasks для создания очень больших кодовых баз, интегрируемых в новый код Java через JNI, и был очень доволен результатами очень надежных инкрементных сборок Код C ++, хорошая гибкость (в файлах сборки или с помощью настроек кода). НО, CppTasks - это проект без сообщества, и сопровождающий (Курт Арнольд) долгое время ничего не делал с ним. Он остается очень хорошим и полезным, но имейте в виду, что очень немногие люди знают или используют CppTasks (то, как компиляторы "делают ставки" за файлы, укусило меня, например, когда мне нужен был конкретный компилятор для файлов C, и другой компилятор C ++ подбирал их вместо этого).

То, как CppTasks отслеживает параметры компиляции и динамически сканирует источники на предмет зависимостей заголовков, все время, но достаточно быстро (там ' s некоторое кеширование зависимостей), означало, что единственная система, с которой я работал, имела точные инкрементные сборки, что очень важно при построении очень больших баз кода.

Итак, как я уже говорил несколько раз о пользователе Ant / dev списки, если у вас много Java-материалов и вы уже вложили средства в Ant, и не боятся погрузиться в и код CppTasks, и теперь нужно создать JNI-код «склеивания» и / или «устаревшие» нативные библиотеки, которые предоставляет склеивающий код, - достойный соперник, и награда может быть огромной.

Я легко интегрировал для Windows dll, чтобы добавить полную информацию о версии например, написание небольшой задачи Ant для правильного форматирования файла .res. У меня это сработало, но Ant + CppTasks определенно больше для "продвинутых" Пользователь / разработчик Ant IMHO.

Надеюсь, это поможет. --DD

6
ответ дан 30 November 2019 в 00:05
поделиться

Я хотел бы порекомендовать terp для создания проектов C ++ из ANT. Мы разработали terp, потому что ANT - наш выбранный инструмент сборки, а задачи CppTasks становились немного длиннее, а также потому, что мы хотели работать на другом уровне абстракции. terp поддерживает множество различных компиляторов и поддерживается нашей компанией. Однако для большинства проектов это не бесплатно.

Мы разработали terp в основном для полных перестроек, а не для инкрементных сборок с анализом зависимостей. Мы приближаемся к цели, но этого еще не произошло. Лучшее место для terp - это выпуски с несколькими платформами, несколькими процессами и несколькими компиляторами, где вы не хотите поддерживать n различных конфигураций для всех комбинаций.

3
ответ дан 30 November 2019 в 00:05
поделиться
Другие вопросы по тегам:

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