Size: a a a

2018 November 19

EP

Egor Pugin in pro.buildsystems
A -> B - а зависит от б
источник

II

Igor Ivanov in pro.buildsystems
а, скрин не тот
https://puu.sh/C4hhn/681c3434b1.png
меня больше интересуют [xxx] <xxx> (xxx) ...> ---> ___> и прочие детали отрисовки
источник

II

Igor Ivanov in pro.buildsystems
...кстати. Во фразе "static lib X privately depends on static/shared lib Y" есть вообще смысл?
источник

EP

Egor Pugin in pro.buildsystems
статические либы вроде  на винде пробрасывают все свои зависимости вверх
источник

EP

Egor Pugin in pro.buildsystems
а на линуксе не факт
источник

ДЛ

Дмитрий ⬡ Лапшин in pro.buildsystems
Пробрасывают
источник

II

Igor Ivanov in pro.buildsystems
Речь скорее о том, что приватная зависимость от Y говорит что если ктото будет меня использовать, то ему про Y знать ничего не надо. Т.е. эта зависимость не экспортируется.
Но если я статическая либа, я же не могу никак в себя приватно влинковать boost_thread.so/.a?
источник

II

Igor Ivanov in pro.buildsystems
Получается, юзеру при линковке со мной надо линковаться еще и с бустом, а он об этом не знает. Undefined reference
источник

EP

Egor Pugin in pro.buildsystems
ты проверял это? у меня подозрение, что на линуксе так и будет, а винда прокинет приватную всё равно
источник

S

Spoonson in pro.buildsystems
Igor Ivanov
Получается, юзеру при линковке со мной надо линковаться еще и с бустом, а он об этом не знает. Undefined reference
Как минимум с шаред либами есть флажок -Wl,--no-undefined для гцц чтоб не указывать вручную зависимости в финальном таргете, не уверен, как он со статическими правда работает
источник

II

Igor Ivanov in pro.buildsystems
Я прямо сейчас чиню ошибки сборки путем замены приватной линковки на публичную. Ошибки имеют смысл, но я не пойму, 1) почему смак меня о них не может предупредить сам, и 2) как я могу написать проверку, что в статическую либу приватно линковать можно только интерфейсы
источник

S

Spoonson in pro.buildsystems
Spoonson
Как минимум с шаред либами есть флажок -Wl,--no-undefined для гцц чтоб не указывать вручную зависимости в финальном таргете, не уверен, как он со статическими правда работает
ой, или я что-то перепутал изрядно, надо посмотреть сейчас точно
источник

S

Spoonson in pro.buildsystems
Igor Ivanov
...кстати. Во фразе "static lib X privately depends on static/shared lib Y" есть вообще смысл?
зато нашел обьяснение - https://cmake.org/pipermail/cmake/2016-May/063400.html , как я понимаю если статическая либа зависит приватно от другой статический, в финальный таргет ее cmake слинкует все зависимости, но кроме линковки есть хеадеры и проч вещи
источник

II

Igor Ivanov in pro.buildsystems
Spoonson
зато нашел обьяснение - https://cmake.org/pipermail/cmake/2016-May/063400.html , как я понимаю если статическая либа зависит приватно от другой статический, в финальный таргет ее cmake слинкует все зависимости, но кроме линковки есть хеадеры и проч вещи
да, и пока всё живёт в рамках одного проекта всё норм
а теперь финальный таргет - это и есть сама статик либа, которая потом используется в другом проекте с симейком не связанном
и вот сторонний проект и возмущается, что ему файлов недодали
источник

S

Spoonson in pro.buildsystems
Igor Ivanov
да, и пока всё живёт в рамках одного проекта всё норм
а теперь финальный таргет - это и есть сама статик либа, которая потом используется в другом проекте с симейком не связанном
и вот сторонний проект и возмущается, что ему файлов недодали
а если поменять на паблик, то додает?
источник

II

Igor Ivanov in pro.buildsystems
угу
источник

S

Spoonson in pro.buildsystems
а как так выходит? в случае с приватным cmake не положит зависимости рядом с результатом для удобного использования?
источник

S

Spoonson in pro.buildsystems
просто где-то же внутри он их должен был сбилдить все равно
источник

II

Igor Ivanov in pro.buildsystems
скорее, с PUBLIC смак ставит в либу подпись "для работы нужна X.so", а в случае с PRIVATE не ставит
добьюсь стабильной сборки и постараюсь не забыть поэкспериментировать на эту тему
источник

S

Spoonson in pro.buildsystems
Igor Ivanov
скорее, с PUBLIC смак ставит в либу подпись "для работы нужна X.so", а в случае с PRIVATE не ставит
добьюсь стабильной сборки и постараюсь не забыть поэкспериментировать на эту тему
хм, я не думал, что статические либы так работают. Надо будет самому тоже проверить, да.
источник