Так что я все еще чувствую себя новичком, когда странные ошибки выпрыгивают из XCode. Вчера я начал получать это:
___ gxx_personality_v0 ", на который ссылаются: ___ gxx_personality_v0 $ non_lazy_ptr
Это было при создании цели модульного тестирования, которая использовала файл .mm в XCode с iPhoneSDK. Ошибка исчезла, когда я изменил расширение файла обратно на .m , так как я еще не использовал в нем код C ++. (Хотя я планирую.) С моим ограниченным знанием я гуглил и видел других, указывающих, что использовался неправильный компилятор. Другая ссылка ссылается на неправильно установленный флаг. Обладая еще более ограниченными знаниями, я решил, что варианты компоновщика в цели UnitTest - это то, что нужно. Оказывается, для Standard C ++ Library тип по умолчанию установлен на Dynamic . Изменение этого параметра на статическое привело к тому, что моя ошибка исчезла, и теперь мой тест - зеленые полосы ... ошибки ... зеленые кнопки. Я спрашиваю здесь, потому что я до сих пор не знаю точно, что я делаю. Очевидно, что этот параметр влияет на компилятор, но мне нужно больше деталей. Я готовлюсь к еще одной катастрофе в будущем. Какое негативное влияние это окажет, если таковые будут? Почему я не столкнулся с проблемой раньше? Ранее я использовал файлы .mm в модульных тестах, хотя, как мне кажется, я тогда использовал базу кода GoogleToolsForMac
для проведения модульного тестирования, где теперь я использую встроенную поддержку XCode для модульного тестирования. Может кто-нибудь объяснить мне?