Разбирался как собрать проект 1 день. Как правильно?
От: Shmj Ниоткуда  
Дата: 07.01.17 09:45
Оценка:
Вот, понадобилось мне собрать проект. А конкретно популярную библиотеку от Google LevelDB. Понадобилось чтобы задействовать в своем .Net проекте, а сборки из неавторизованных источников запрещены.

План моих действий:

1. Ищу готовые Win-dll на сайте гугла. Нету.
2. Ищу может есть другой авторизованный поставщик dll, которому все доверяют и все скачивают. Нету. Нашел только пару noname авторов на SOF и на dll-помойках (да, есть и такие).
3. Ищу инструкцию как собрать для Win. Рассматриваю разные варинты (где то 40 мин. ушло). Нашел самое простое https://github.com/Reactive-Extensions/LevelDB Вроде бы проект для VS.
4. Открываю проект,пытаюсь собрать. Не видит boost.
5. Нахожу файл с пояснениями и выполняю все по инструкции https://github.com/Reactive-Extensions/LevelDB/blob/master/leveldbNative/WINDOWS
6. Скачиваю последний boost (архив).
7. Пытаюсь собрать. Какая то ошибка, но я решил следовать строго инструкции.
8. Там написано что проверялось в VS2010 Express, скачиваю ее, устанавливаю. Это минут 15.
9. После всей магии, получаю ту же ошибку. Решаю что лучше вернуться в привычную VS2015.
10. Оказалось что в свойствах проекта не указана директива WIN32 (емнип), хотя в инструкции об этом ничего не было. Нужно было это искать поиском, просматривая разные советы.
11. Еще свойствах проекта нужно было выставить Visual Studio 2013 (а то какая то ошибка была). Тоже минут 30 разбирался.
12 Появилась другая ошибка -- не видит файлов lib boost. Оказалось что в архиве нет готовых lib. Я же не в курсе C++-ных тонкостей.
13. А архиве Boost были программы, по запуску которых они сами собрирают все либы. Запускаю. Жду где то час а оно все молотит и молотит. И вроде не собрало еще и половины. Ищу готовые сборки boost в авторизованных источниках и нахожу.
14. Прерываю процесс и скачиваю готовые сборки boost (до этого все было в исходниках, оказывается).
15. Разархивирую. Занимает минут 15.
16. Запускаю проект.
17. Оказывается я скачал не ту версию. Нужно было 12 а я 14.
18. Скачиваю 12. Опять разархивирую. Опять 15 мину ждать.
19. Запускаю. Уже другая ошибка. Оказывается проект требует x32 а я скачал x64.
20. Опять скачиваю 12 версию 32. Опять разархивирую. 15 минут ждать.
21. Пытаюсь собрать. Пыхтит-пыхтит -- УСПЕШНО!!!

В каком месте я дурак?
Re: Разбирался как собрать проект 1 день. Как правильно?
От: Dair Россия https://dair.spb.ru
Дата: 07.01.17 09:53
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вот, понадобилось мне собрать проект. А конкретно популярную библиотеку от Google LevelDB. Понадобилось чтобы задействовать в своем .Net проекте, а сборки из неавторизованных источников запрещены.

S>План моих действий:
[...]
S>В каком месте я дурак?

Вроде ни в каком, всё правильно сделал.
Вторая библиотека уже быстрее соберется

Но я бы брал cygwin и пользовался написанным разработчиками библиотеки Makefile'ом.
Re[2]: Разбирался как собрать проект 1 день. Как правильно?
От: Shmj Ниоткуда  
Дата: 07.01.17 09:56
Оценка:
Здравствуйте, Dair, Вы писали:

D>Но я бы брал cygwin и пользовался написанным разработчиками библиотеки Makefile'ом.


А оно выдаст dll-ку на выходе и она подойдет для Win?
Re[3]: Разбирался как собрать проект 1 день. Как правильно?
От: Dair Россия https://dair.spb.ru
Дата: 07.01.17 10:02
Оценка:
Здравствуйте, Shmj, Вы писали:

D>>Но я бы брал cygwin и пользовался написанным разработчиками библиотеки Makefile'ом.

S>А оно выдаст dll-ку на выходе и она подойдет для Win?
Вообще должно, но не могу вот так обещать, я под Win очень осторожно и со словарём что-то делаю (кроме игр )
Re[3]: Разбирался как собрать проект 1 день. Как правильно?
От: Dair Россия https://dair.spb.ru
Дата: 07.01.17 10:07
Оценка:
Здравствуйте, Shmj, Вы писали:

D>>Но я бы брал cygwin и пользовался написанным разработчиками библиотеки Makefile'ом.

S>А оно выдаст dll-ку на выходе и она подойдет для Win?

Вот чего нагуглил: https://github.com/jbandela/leveldb_cross_compiler
Не спасёт ли? Там вроде бинарей нет, только сборка как раз под msys/mingw.
Re: Разбирался как собрать проект 1 день. Как правильно?
От: Dair Россия https://dair.spb.ru
Дата: 07.01.17 10:10
Оценка: 4 (1)
Здравствуйте, Shmj, Вы писали:

S>Вот, понадобилось мне собрать проект. А конкретно популярную библиотеку от Google LevelDB. Понадобилось чтобы задействовать в своем .Net проекте, а сборки из неавторизованных источников запрещены.


Я тут подумал — твой путь в случае промышленной разработки единственно верный.

Потому как у разработчика должен быть строго ограниченный набор инструмента для сборки. В случае Win логичный выбор — Visual Studio. Поэтому надо вот брать исходники, делать к ним (может быть, самостоятельно) VS-проект/workspace и из него собирать.
Re: Разбирался как собрать проект 1 день. Как правильно?
От: VTT http://vtt.to
Дата: 07.01.17 14:43
Оценка: 2 (1) +2 :)
это вы еще легко отделались:
1. не пришлось угадывать, где подразумевается нахождение заголовочных файлов
2. не пришлось угадывать, что было в отсутствующих исходниках
3. не пришлось генерировать исходников
4. не пришлось переделывать файловую структуру проекта
5. не пришлось угадывать, какие библиотеки нужны для сборки
6. не пришлось угадывать, как нужные для сборки библиотеки должны быть собраны
7. не пришлось угадывать, где и какие макросы надо определять для сборки (подразумевается, что все обычные, типа WIN32, уже выставлены)
8. не пришлось разбираться с неподдерживаемыми расширениями других компиляторов
9. не пришлось собирать собственный компилятор
10. не пришлось разбираться с неподдерживаемыми платформой фичами
11. не пришлось возиться с name mangling
12. все файлы у вас собрались с одинаковыми настройками

Да, и даже если все собралось, то не факт, что оно работает как надо.
Попробуйте пересобрать с /W4, прогоните через статический анализатор, соберите и прогоните тесты.
Короче c++ это ни разу не "достал и работает"
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re: Разбирался как собрать проект 1 день. Как правильно?
От: push  
Дата: 07.01.17 18:09
Оценка: +1
Ты не дурак — просто это open-source во всей красе — рукожопы на марше.
Имхо — если нет студийного или cmake проекта — то выкинуть эту библиотеку и выбрать другую.
В крайнем случае доставить дополнительные либы и собрать. Но если нужно ещё менять структуру проекта или фиксить исходники — то вообще такую либу трогать опасно, себе дороже выйдет.
Если такие "разработчики" не смогли осилить даже реализацию сборки, или хотя бы написать адекватную инструкцию — то зуб даю, там 100% и в коде жопа полная, заколебаешься отлавливать баги.
Лучше выбери нормальную библиотеку, или напиши свою — это окупится многократно.
Re: Разбирался как собрать проект 1 день. Как правильно?
От: jahr  
Дата: 07.01.17 20:40
Оценка:
Здравствуйте, Shmj,

Гугл почему-то не любит микрософт, как гуглевская библиотека — так не собирается под студией.) Конкретно с левелдб — я тоже много провозился, нужно брать какой-нибудь порт, который под студией работает. Буст — гемморрой, но нужно его научиться собирать, если еще не.)

Если выбрать порт левелдб c cmake-сборкой, то зависимсости от юуста и т.п. он сам в проектах пропишет при генерации, так что я использовал вот этот — https://github.com/jahrsg/leveldb_msvc_integration
Re: Разбирался как собрать проект 1 день. Как правильно?
От: Дрободан Фрилич СССР  
Дата: 09.01.17 20:52
Оценка:
Shmj:

S>В каком месте я дурак?


Это суровые программистские будни. Даже если крутой мейк с конфигом — всех ситуаций не предусмотришь.
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Re[2]: Разбирался как собрать проект 1 день. Как правильно?
От: Дрободан Фрилич СССР  
Дата: 09.01.17 20:56
Оценка:
push:

P>Ты не дурак — просто это open-source во всей красе — рукожопы на марше.

Причем тут опенсорс?..
А вот если достаются от уволившегося разраба исходники...
Да на малознакомом языке и платформе...
Один раз 4 дня потратил на сборку
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Re: Разбирался как собрать проект 1 день. Как правильно?
От: Ops Россия  
Дата: 10.01.17 03:37
Оценка:
Здравствуйте, Shmj, Вы писали:

Вот тут сакральное знание, есть у b2/bjam волшебный ключик -j8 (или сколько там у тебя ядер?), про который знают все, кто его периодически собирает, но на котором почему-то нет акцента в документации. Очень способствует скорости сборки.
Поначалу большинство об это спотыкается.

ЗЫ. у меня с ним, плюс с выбором только нужного, вся сборка занимает меньше 5 минут.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Отредактировано 10.01.2017 3:49 ути-пути . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.