Вопросы для начинающих, касающиеся "создания библиотеки", в частности, в Xcode для iPhone - PullRequest
4 голосов
/ 25 марта 2009

Я никогда четко не понимал все эти связи / построения / зависимости бизнеса. Теперь я пытаюсь встроить библиотеку FreeType (которая находится на C ++) в файл библиотеки * .a для iPhone (поскольку другая библиотека, которую я пытаюсь использовать, openFrameworks, зависит от FreeType).

Я знаю, что для компиляции C ++ с iPhone мне просто нужно переименовать * .cpp в * .mm. (Я пытался с некоторыми простыми программами в main (), и это работает) Но как я могу собрать библиотеку в Xcode, тогда ? (без основного () я полагаю)

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

PS. У меня уже есть платная версия Xcode и несколько примеров приложений, скомпилированных на iPhone.

Ответы [ 2 ]

4 голосов
/ 29 марта 2009

Переименование файлов .cpp в .mm означало бы, что они будут обрабатываться как код Objective-C ++, а не код C ++. Я не думаю, что это будет хорошей идеей, даже если она все еще будет работать. Кроме того, FreeType написан на C, а не на C ++.

Google для "компилятора компилятора", и вы найдете немало документов о том, как они работают. Это должно помочь для документации.

Вполне возможно собрать статические библиотеки для iPhone; то, что вы не можете сделать, это скомпилировать динамические библиотеки или фреймворки - вы могли бы, но это не поощряется.

  1. Откройте свой проект
  2. В исходном / целевом браузере выберите узел «Цели» (с маленьким красно-белым значком цели).
  3. Щелкните правой кнопкой мыши узел и во всплывающем меню выберите «Добавить», а затем «Новая цель».
  4. Откроется диалоговое окно. С левой стороны находится раздел iPhone OS и Mac OS X. Раздел iPhone OS уже должен быть выбран; если нет, то сделайте это.
  5. У вас должно быть три варианта целей, одна из которых - статическая библиотека. Выберите его, нажмите ОК.
  6. Дайте библиотеке имя на следующей странице. Нажмите Готово.
  7. У вашего узла "Targets" теперь есть дочерний элемент для вашей статической библиотеки. Вы можете добавить источники либо через меню файлов, либо перетащив их на дочерний узел «Компилировать источники».

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

0 голосов
/ 25 марта 2009

Во-первых, вам не нужно переименовывать какие-либо файлы для компиляции кода C ++ для iPhone. Во-вторых, вы захотите создать отдельный проект для библиотеки. Похоже, что целевые типы iPhone не включают «статическую библиотеку», поэтому вам может потребоваться создать проект Mac OS X и изменить его для вывода файла ARM .a. Не тривиально, но, вероятно, выполнимо.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...