Xcode .m vs. .mm

В проекте zxing iphone в файле readme указано:

  • Может случиться так, что при попытке создать собственный проект с Может случиться так, что при попытке создать свой собственный проект с помощью ZXingWidgetController вы получите ошибки компоновщика, такие как «неопределенная ссылка на». Если ...

    В проекте zxing iphone в файле readme указано:

    • Может случиться так, что при попытке создать собственный проект с Может случиться так, что при попытке создать свой собственный проект с помощью ZXingWidgetController вы получите ошибки компоновщика, такие как «неопределенная ссылка на». Если ...

      В проекте zxing iphone в файле readme указано:

      • Может случиться так, что при попытке создать собственный проект с ZXingWidgetController вы получаете компоновщик ошибки типа «неопределенная ссылка на». Если эта ошибка выглядит как c ++ неопределенная ссылка, затем переименование main.m в main.mm (Objective-C ++ суффикс источника) может решить проблему

      Это действительно так. Но мне интересно, почему?

32
задан Cœur 6 September 2019 в 03:07
поделиться

1 ответ

И .m и .mm расширения файла класса исходного кода для основанных на Mac заявок. .m файлы могут содержать и Цель-C и Цель-C ++ классы. Чтобы избежать конфликтов между двумя в сценариях смешанного использования есть конвенция переименовать весь Цель-C ++ файлы класса к .mm. Это помогает компиляторам различать.

Так в проекте, который использует и Цель-C и Цель-C ++ , Вы будете видеть:

  • .m файлы, содержащие Цель-C
  • .mm файлы, содержащие Цель-C ++
0
ответ дан 27 November 2019 в 20:30
поделиться
Другие вопросы по тегам:

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