crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> b2 and static link boost
alexy
  опции профиля:
сообщение 7.6.2017, 21:02
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 4.8.2010
Пользователь №: 1931

Спасибо сказали: 0 раз(а)




Репутация:   0  


начал изучать b2, мне понравился, реншил сделать на нем небольшую библиотеку. сейчас напиасл несколько функций в ней, пока использую только header only библиотеки из буста, потом понадобятся и другие, не header only.

сейчас мой jamroot.jam выглядит так
project psignals
  : requirements <include>src
;

lib psignals
  : [ glob src/*.cpp ]
  : <threading>multi <use>/boost
;
в ~/user-config.jam указывается где лежит только что распакованный boost1.64

у меня несколько вопросов:
1. при компиляции говторит # error Must not define both BOOST_SYSTEM_DYN_LINK and BOOST_SYSTEM_STATIC_LINK что выглядит логично. он и правда определяет оба дефайна. как так?
2. зачем-то начинают компилится бустовые потоки (также если не указывать, что <threading>multi). это в принцыпе не мешает, но хотелось быт понять почему.
3. я правильно понял, что достаточно указать в списке исходников библиотеку буста, например /boost//filesystem/<link>static , и получить вкомпилинную в мой so библиотеку filesystem.a собранную со флагом -fPIC ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
alexy
  опции профиля:
сообщение 9.6.2017, 23:04
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 4.8.2010
Пользователь №: 1931

Спасибо сказали: 0 раз(а)




Репутация:   0  


вобщм у меня получается только если сделаю так:
в usr-config указываю using boost : 1.64 : <root>/home/fleonis/projects/alien/boost/boost_1_64_0 ;
в jamroot проекта указываю
import /boost;
boost.user-project;

lib psignals
    : [ glob src/*.cpp ]
    : <threading>multi
      <use>/boost//system/<link>static
  ;
похоже на какой-то костыль: тяну чтог-то ненужное чтобы подтянуть что-то другое.
я пробовал указать просто <use>/boost, но так не выходит: почему-то начинает компилится весь буст, и обламывается. там в документации написано что <use> используется для как раз того, чтобы подключить header-only билиотеки. может там ошибка какая?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 8:44