Как я могу избежать дублирования символов в общих транзитивных зависимостях Xcode?

У меня есть следующие зависимости проекта Xcode:

A -> C
B -> C

Когда я собираю их по отдельности, все работает нормально.

Однако я хочу добавить A и B в один и тот же проект Xcode, создав следующий граф зависимостей:

    / -> A -> C
D-<
    \ -> B -> C

Это вызывает ошибки дублирования символов и, по сути, ад для DLL. Как хорошо решить эту проблему, сохранив при этом независимость проектов? Я понимаю, что могу разбить зависимость A и B от C, а затем переделать эту зависимость в D, но я хочу, чтобы A и B были независимыми.


person Heath Borders    schedule 02.08.2012    source источник


Ответы (1)


В файлах проекта A и B удалите C из «Связать двоичный файл с библиотеками», оставив его в целевых зависимостях. Это позволяет вам использовать C в A и B, но не использовать C в D. Чтобы использовать C в D, добавьте его непосредственно в D (не рассчитывайте, что A или B передадут его вниз).

person Jacob Jennings    schedule 02.08.2012
comment
Но тогда я не могу построить и использовать A или B независимо. Потребители A или B должны знать, чтобы добавить C в качестве зависимости. - person Heath Borders; 03.08.2012