Как устранить ошибки ссылок, которые появляются в Objective-C ++, но не в Objective-C?

Я преобразую свой файл делегата приложения из .m в .mm (Objective-C в Objective-C ++), чтобы получить доступ к сторонней библиотеке, написанной на Objective-C ++. В Objective-C мой делегат приложения собирается и работает нормально. Но когда я меняю расширение, проект компилируется, и я получаю ошибки ссылок, во всех из которых отсутствуют символы из статической библиотеки, написанной на C, который я использую. Ошибки являются классическими ошибками ссылок в следующем формате:

«MyFunction (arguments)», на которую ссылаются из:

- [MyAppDelegate myMethod] в MyAppDelegate.o

Символ (ы) не найдены

Все проблемы находятся в объекте делегата приложения. Я знаю, что все готово для компиляции Objective-C ++, потому что мой файл ViewController - .mm. Так что мой вопрос состоит из нескольких частей.

Во-первых, действительно ли нет этих символов в том смысле, что я не могу их использовать? Другими словами, нельзя ли получить доступ к простым старым функциям C из файла Objective-C ++? Если это правда, это довольно неудачно. Я думал, что почти весь код Objective-C, и, конечно, весь код Objective-C, который по крайней мере собирается как .mm, был допустимым Objective-C ++. Я ошибся?

Если нет, есть идеи, как я могу предотвратить эти ошибки? Существуют ли в Objective-C ++ правила заголовков, о которых я не знаю?

Спасибо за любую помощь.

Ответы на вопрос(2)

Ваш ответ на вопрос