| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Cmake не находит библиотеку. |
| Автор: Хоббит 25.4.2011, 10:06 | ||
| ОС Linux. Система сборки cmake В подпроекте использую библиотеку mysqlclient. Для этого в CMakeLists.txt добавил
При этом библиотека находится по пути /usr/lib/libmysqlclient.so И все работает. На другой же системе библиотека mysql установлена по другому пути /usr/lib/mysql/libmysqlclient.so И при сборке вылетает ошибка, что библиотека не найдена. Раньше в automake проектах я добавлял опции компилятора -L/usr/lib/mysql Как сделать в cmake проекте, чтобы эта библиотека подключалась? |
| Автор: bsa 25.4.2011, 22:53 |
| Хоббит, открой документацию на find_library. Заведи спец переменную, в которую на этапе конфигурирования нужно помещать дополнительные пути поиска библиотек. И используй ее в find_library. При конфигурировании на второй машине задай -D<переменная>="/usr/lib/mysql", и find_library найдет тебе библиотеку. Более того, возможно, mysqlclient прописана в pkg_config. Тогда вообще все просто. |
| Автор: kemiisto 25.4.2011, 23:27 |
| Вообще, стыдоба то какая! Хоббит, я не тебе. CMake уныл. Старый, как ### мамонта. Весь какой-то насквозь сишечный, тугой, неповоротливый, страшный. Фи, быть таким. Я как-то откопал хоть что-то свежее. http://www.scons.org/ зовётся. Оно и синтаксически приятнее, и мощнее в разы. Если чего-то нет "искаропки" - берём и ###кодим на пистоне. Но оно тоже не совсем айс, бо на пистоне и написано. Багов хоть лопатой отгребай. |
| Автор: xvr 26.4.2011, 11:03 |
Если вы не говорите на Python'е лучше, чем на Русском - не советую (мое IMHO) |
| Автор: bsa 26.4.2011, 17:14 |
| CMake убог. Причем, до ужаса. Изначально идея хорошая, вот только реализация так себе - у разных функций параметры передаются по-разному. Запомнить толком невозможно. GNU/autotools, имхо, лучше. Вот только с ними на других платформах, где нет *nix-окружения, довольно туго - необходимо его доустанавливать. Scons требует для своей работы python. В *nix, он есть чуть ли не по умолчанию, а вот под всем известной платформой надо ставить... boost-build - ну это вообще какие-то красноглазики придумали! Такой уродец - хрен настроишь! ИМХО. Makefile - слишком гиморно писать. Да и зависимости не проверяет KBuild - с точки зрения пользователя - шикарный. С точки зрения программиста - не изучал. |
| Автор: bsa 26.4.2011, 22:08 | ||
ну это я и имел в виду. |