223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
|
|
1 | |
Boost & предстоящая компиляция16.02.2015, 13:27. Показов 1390. Ответов 22
Метки нет (Все метки)
В проекте использовал boost::lexical_cast. Предстоит компилить проект на компе, где нет буста. Как можно упаковать из буста lexical_cast в проект, чтобы его можно было скомпилить без установленного расширения языка C++.
0
|
16.02.2015, 13:27 | |
Ответы с готовыми решениями:
22
Undefined reference to 'My_lab2::serialize_child(My_lab2::My_stack&,boost::interpro cess::file_lock&)') Компиляция библиотек boost Allocator sts&boost Ошибка: multiple definition of `void std::swap<A>(A&, A&) |
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
|
||||||
16.02.2015, 18:55 [ТС] | 3 | |||||
Вот только счастья то не получилось...
0
|
16.02.2015, 20:18 | 6 | |||||
Боюсь что не получится. Вот начало файла lexical_cast.hpp из boost-1.55.0
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
16.02.2015, 23:16 | 9 |
Расширение языка? Если речь о самом boost, то lexical_cast вроде как header-only. Поэтому чисто формально (для уменьшения файлового багажа) можно сформировать набор действительно необходимых (косвенно) заголовочников. Но, имхо, затея эта глупая - делить одну либу на подмножества. Так как если сейчас
в скором времени может потребовать компилить другой проект с другой частью буста. И в конечном итоге придется весь буст и перетащить на этот комп.
Странно всё это. Есть файл, от которого зависит проект, но хочется собрать этот проект без оного файла? Можно написать свой эквивалент, но зачем, если уже используется готовый. Проблема для меня не ясна, если честно.
0
|
Ушел с форума
|
|
17.02.2015, 09:58 | 13 |
Если lexical_cast нужен для заранее известных типов, можно собрать его
как библиотеку (.lib или .dll) и подключать к любому проекту, где Буста вообще нет.
0
|
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
|
|
17.02.2015, 12:57 [ТС] | 14 |
а как это оформить? я смотрел в папке , где лежит boost, но там нет lexical_cast.lib
0
|
Ушел с форума
|
|
17.02.2015, 13:10 | 15 |
Создаете проект (static library или dll), пишете в нем функцию или класс,
которая работает с lexical_cast, наружу выставляете какой-нибудь API. Можно даже чисто C-шный. Все, на выходе получается библиотека, которую можно линковать к любому проекту и без Boost.
1
|
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
|
||||||||||||||||
17.02.2015, 15:57 [ТС] | 16 | |||||||||||||||
Создал проект static library.
f1.h
Потом в решение добавил новый проект, указал ссылку на предыдущий: lc_test.cpp
Что не так я сделал?
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
17.02.2015, 16:05 | 17 |
mat_for_c, Определение шаблонной функции нельзя выносить в .cpp файл. Вам говорили сделать сишный (не темплейтный) АПИ, а не форварднуть вызов функции.
0
|
Ушел с форума
|
|
17.02.2015, 16:13 | 18 |
0
|
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
|
|
17.02.2015, 16:13 [ТС] | 19 |
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
17.02.2015, 16:22 | 20 | |||||
Сообщение было отмечено mat_for_c как решение
Решение
Если нужно только несколько типов можно через явное инстанцирование.
1
|
17.02.2015, 16:22 | |
17.02.2015, 16:22 | |
Помогаю со студенческими работами здесь
20
Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration? В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура x*x+y*y<25&&x*x+y*y>=9& ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка? Компиляция. Ругается на boost Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |