LINUX.ORG.RU

А как слиноковать boost?

 ,


0

2

Поставил boost с репозитерии арча. Написал простецкий пример из туториала к boost.asio:

#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>

int main()
{
    boost::asio::io_service io;
    boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
    t.wait();
    std::cout << "Hello world!" << std::endl;
    return 0;
}
Решил сначала скопилить пример через g++:
g++ main.cpp \
-lboost # вот тут я пробовал -lboost-(_)asio, еще побовал -I /usr/lib, , но везде линкеру чего-то не нравится
Прошу тыкнуть носом туда, где я что-то делаю не так

Давно не использовал C++, но все же напишу.

Найди *.so файлы от буста и пропиши их. Проверь через ldd. Можно подглядеть при сборке буста.

Когда я использовать boost asio, то нужно было прописать несколько либ. Названий сейчас не помню уже.

Вот, ты видишь у себя libboost*.so? Я думаю, что нет такой. Хотя за несколько лет могло и измениться.

dave ★★★★★
()
Ответ на: комментарий от xaizek

Не помогло:

$g++ main.cpp -lboost_system
/usr/bin/ld: /tmp/cc3nKOT6.o: undefined reference to symbol 'pthread_join@@GLIBC_2.2.5'
/usr/bin/ld: /usr/lib/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

snake266 ★★
() автор топика
Ответ на: комментарий от RazrFalcon

На самом деле как раз только так и надо, поскольку с -L и -l можно зацепить другие библиотеки, и не видно что именно линкуется. То что полные пути до .so’шек использует CMake, например - одна из его killer фичей.

Но, понятное дело, хардкодить пути до библиотек нельзя, их должна генерить система сборки.

slovazap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.