Size: a a a

2021 May 14

TK

Timur Kravc in pro.buildsystems
Добрый, пишу проект на С++/С, у меня есть библиотека(gstgccanalysis) которая зависит от другой библиотеке (estimator), проект собирается, но когда я хочу использовать библиотеку gstgccanalysis то она выдает ошибку undefine symbols, я выполняю ld gstgccanalysis пишет
ld: libgstgccanalysis.so: неопределённая ссылка на «rbe_set_min_bitrate(remote_bitrate_estimator_t*, unsigned int) ?
В качестве симтемы сборки использую cmake, думаю проблема как раз в том, что я ни правильно линкую библиотеки
источник

TK

Timur Kravc in pro.buildsystems
Как решить эту проблему ?
источник
2021 May 15

SS

Sergey S in pro.buildsystems
Привести CMakeLists.txt
источник

SE

Stanislav Ershov in pro.buildsystems
а подробности?
источник

TK

Timur Kravc in pro.buildsystems
gst...
источник

TK

Timur Kravc in pro.buildsystems
estimator
источник

SS

Sergey S in pro.buildsystems
Переписывай на современный CMake, что я могу сказать.
источник

SS

Sergey S in pro.buildsystems
Зачем требовать 3.16, но писать как 15 лет назад?
источник

SS

Sergey S in pro.buildsystems
Зачем в estimator CXX, если там только C?
источник

SS

Sergey S in pro.buildsystems
Сделай нормальный таргет в estimator и линкуй его к gst, CMake сам разрулит инклюды и флаги линковки
источник

SS

Sergey S in pro.buildsystems
И да, сперва нужно добавлять subdirectory, а уже потом линковаться к файлам из нее
источник

TK

Timur Kravc in pro.buildsystems
Можно пример современного cmake , это просто первый мой проект где я использую cmake  и не особо понимаю о чем ты говоришь
источник

TK

Timur Kravc in pro.buildsystems
Что такое нормальный таргет ?
источник

SS

Sergey S in pro.buildsystems
Если примитивно объяснять, тебе нужно функции типа include_directories, работающие на уровне директорий, заменить на функции с префиксом target, т.е. target_include_directories, и так далее.
У тебя где-то некорректно линкуется estimator, где и что отваливается без лога и файловой структуры я говорить не берусь.

по современному cmake — https://cliutils.gitlab.io/modern-cmake/
источник

SS

Sergey S in pro.buildsystems
Нормальный таргет — цель сборки. В твоем файле таргет создается, но исходники для него задаются через старый cmake.
источник

SS

Sergey S in pro.buildsystems
источник

SS

Sergey S in pro.buildsystems
источник

SS

Sergey S in pro.buildsystems
источник

SS

Sergey S in pro.buildsystems
Переименуешь обратно как было
источник

SS

Sergey S in pro.buildsystems
Комменты я написал
источник