c / c ++ boost - проблема компиляции - PullRequest
0 голосов
/ 24 марта 2011

Я дергал себя за волосы, пытаясь понять, как скомпилировать мое приложение с помощью регулярного выражения Boost.

Я установил повышение от источника в centos 5.

g++ -lboost_regex -o my_app my_app.c $(mysql_config --libs --cflags)

Он компилируется без ошибок, однако, когда я его запускаю:

error while loading shared libraries: libboost_regex.so.1.46.1: cannot open shared object file: No such file or directory

Расположение этого файла:

/usr/local/lib/libboost_regex.so.1.46.1

У кого-нибудь возникают такие же проблемы?

Ответы [ 2 ]

3 голосов
/ 24 марта 2011

Вы пробовали LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH your_program, чтобы убедиться, что он знает, где найти общий объект?Вы можете установить путь при связывании, используя -Wl,-R/usr/local/lib.

РЕДАКТИРОВАТЬ: чтобы быть более понятным, когда вы связываете свой код, компоновщик будет вставлять RPATH и RUNPATH в двоичный файл.Эти значения сообщают загрузчику среды выполнения, где искать требуемые общие объекты.

Если вы добавите -Wl,-R/usr/local/lib в команду ссылки, которая заставит его встроить этот каталог и всегда проверять его при загрузке вашей программы.

0 голосов
/ 24 марта 2011

Попробуйте это.

$ LD_LIBRARY_PATH=/usr/local/lib:LD_LIBRARY_PATH<br /> $ export LD_LIBRARY PATH

Теперь попробуйте и расскажите нам, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...