Я предпочитаю использовать [TestInitialize]
метод для выполнения инстанцирования протестированного объекта, и это - параметры. Я только выполняю работу в конструкторе, если необходимо инстанцировать базового класса тестирования (который обычно является, где я создаю или обновляю репозитории, и т.д.). Это помогает мне сохранить код среды тестирования и тестовый код отдельными логически и физически.
В зависимости от того, сколько библиотек вы используете, может быть сложно получить статическую компоновку всех из них. Что вам сообщает "otool -L your_binary"?
Чтобы получить автономный пакет для моего собственного приложения, я установил пользовательский MacPorts в нестандартный каталог, чтобы я мог установить dynlink с библиотеки из этого каталога и ограничиваться только тем, чтобы просить людей установить все это в одном и том же месте на своих компьютерах. Не очень хорошо, совсем не в духе Mac, но это приложение Unix, и вам нужно быть знакомым с Unix, чтобы его использовать в любом случае.
Удачи
Паскаль
Оказывается, что есть - функция загрузки динамической библиотеки (0x22), добавленная в 10.5.6. Система, в которой я работал, была 10.5.5. Я обновился до 10.5.8, и все работает!
Хорошо, ВТОРОЕ решение и НЕ очень удовлетворительное - это найти компьютер 10.5.8, установить пакеты разработчика и перекомпилировать ... то же самое для powerPC ... печально, но это будет работа ...
Я искал тот же вопрос, поскольку я разрабатываю на 10.6, но должен иметь версию, которая работает на 10.5. В дополнение к вышеуказанным флагам компилятора нужно добавить:
-no_compact_linkedit
Это описано здесь:
http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/ld.1.html
где сказано:
Обычно при работе с Mac OS X 10.6 компоновщик генерирует компактную информацию в сегменте __LINKEDIT. Этот параметр заставляет компоновщик вместо этого выдавать традиционную информацию о перемещении.
Я узнал об этом из обсуждения в списке рассылки xcode-users по поводу "unknown required load command 0x80000022".
.