cmake и библиотеки (C++)

Автор ioann.sys, 06 сентября 2015, 19:01:12

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

ioann.sys

Всем привет!
Пожалуйста, подскажите мне, как сделать так, чтобы при сборке проекта использовались только встроенные либы.
То есть, есть каталог проекта (пусть он называется project), который имеет следующую топологию:

   PROJECT/                             - корень проекта
                  /BIN                        - каталог, куда собирается проект
                  /LIB                         - готовые библиотеки
                  /SRC                       - исходники проекта
                  main.cpp                  - ну тут всё понятно)

Делаю для того, чтобы этот проект можно было в виде архива распаковать и запустить на других серверах. Если выполнить команду ldd ./bin/a.out, то на выхлопе показывает, что проект линковался с дефолтыми библиотеками (/usr/lib; /lib/linux-gnu-i386). Так вот, как сделать так, чтобы при запуске приложения, использовались не стандартные либы, а те, которые лежат в проекте, в папке LIB?

Debian GNU/Linux jessie/sid on notebook ASUS N750JK

mrgoodvin

Если речь о динамически подключаемой библиотека, то суть как раз в том что бы они находились в заранее определенных системных директориях.

Можно попробовать при сборке указать расположение библиотек:
-L<path>: Определяет дополнительные пути поиска библиотек (например: -L/usr/X11R6/lib или -L./LIB).

И если нужно, что бы программа использовала свои библиотеки, то это нужно указать в сорцах, динамически подгрузив нужную библиотеку или же статическая линковка. Подробней всё здесь: http://mech.math.msu.su/~zubr/library.html. При использование директивы #include <file.h> поиск будет происходить по стандартному сценарию, минуя текущую директорию.

smallNix

Кто-то же должен что-то делать...

smallNix

 :D Никто даже не поправил :( ОчЕпЯтКа... Что бы подключить библиотеки - пользуем -L, что бы заголовочные файлы брались не из системных переменных: -nostdinc, а НЕ -nostdlib Если кого обманул - прошу прощения.
Кто-то же должен что-то делать...