Речь скорее о том, что приватная зависимость от Y говорит что если ктото будет меня использовать, то ему про Y знать ничего не надо. Т.е. эта зависимость не экспортируется. Но если я статическая либа, я же не могу никак в себя приватно влинковать boost_thread.so/.a?
Получается, юзеру при линковке со мной надо линковаться еще и с бустом, а он об этом не знает. Undefined reference
Как минимум с шаред либами есть флажок -Wl,--no-undefined для гцц чтоб не указывать вручную зависимости в финальном таргете, не уверен, как он со статическими правда работает
Я прямо сейчас чиню ошибки сборки путем замены приватной линковки на публичную. Ошибки имеют смысл, но я не пойму, 1) почему смак меня о них не может предупредить сам, и 2) как я могу написать проверку, что в статическую либу приватно линковать можно только интерфейсы
Как минимум с шаред либами есть флажок -Wl,--no-undefined для гцц чтоб не указывать вручную зависимости в финальном таргете, не уверен, как он со статическими правда работает
ой, или я что-то перепутал изрядно, надо посмотреть сейчас точно
...кстати. Во фразе "static lib X privately depends on static/shared lib Y" есть вообще смысл?
зато нашел обьяснение - https://cmake.org/pipermail/cmake/2016-May/063400.html , как я понимаю если статическая либа зависит приватно от другой статический, в финальный таргет ее cmake слинкует все зависимости, но кроме линковки есть хеадеры и проч вещи
зато нашел обьяснение - https://cmake.org/pipermail/cmake/2016-May/063400.html , как я понимаю если статическая либа зависит приватно от другой статический, в финальный таргет ее cmake слинкует все зависимости, но кроме линковки есть хеадеры и проч вещи
да, и пока всё живёт в рамках одного проекта всё норм а теперь финальный таргет - это и есть сама статик либа, которая потом используется в другом проекте с симейком не связанном и вот сторонний проект и возмущается, что ему файлов недодали
да, и пока всё живёт в рамках одного проекта всё норм а теперь финальный таргет - это и есть сама статик либа, которая потом используется в другом проекте с симейком не связанном и вот сторонний проект и возмущается, что ему файлов недодали
скорее, с PUBLIC смак ставит в либу подпись "для работы нужна X.so", а в случае с PRIVATE не ставит добьюсь стабильной сборки и постараюсь не забыть поэкспериментировать на эту тему
скорее, с PUBLIC смак ставит в либу подпись "для работы нужна X.so", а в случае с PRIVATE не ставит добьюсь стабильной сборки и постараюсь не забыть поэкспериментировать на эту тему
хм, я не думал, что статические либы так работают. Надо будет самому тоже проверить, да.