Что такое Boost варенье и варенье стоит мигрировать? -- migration поле с участием build-system поле с участием jam поле с участием bjam пол Связанный проблема

What is Boost Jam and is Jam worth migrating to?


17
vote

проблема

русский

Что такое Boost варенье и варенье стоит мигрировать?

Я понимаю, что джем - это система сборки, созданная Perforce, однако я не уверен, как Boost Jam & AMP; Регулярное варенье другое.

Я также надеюсь, что может быть кто-то в этом сообществе, который работал с ним, и, возможно, может выделить некоторые различия и / или преимущества.

Английский оригинал

What is Boost Jam and is Jam worth migrating to?

I understand that jam is build system built by perforce however I am not sure how the boost jam & regular jam is different.

I'm also hoping there could be someone in the SO community who has worked with it and maybe can highlight some differences and/or benefits.

</div
           

Список ответов

5
 
vote
vote
Лучший ответ
 

Для моих целей, это просто вещь, которая строит для вас библиотеку Boost, я не осознавал, что вы можете сделать что-нибудь еще с ним, поэтому я не понимаю, что вы могли бы означать, мигрируя на него. И извините, но я не знаю, какое регулярное варенье. Поскольку никто другой не предоставил ответа, я просто даю мое понимание этого.

Boost Boost - это коллекция классов, а функции для C ++ полезны для различных задач. Классы и функции повышения группируются в библиотеки. Некоторые из библиотек имеют весь свой код в файлах заголовков, которые вы можете использовать, просто используя оператор #include Preprocessor, в то время как другие (такие как файловая система или библиотека регулярных выражений) имеют часть их реализации в файлах .CPP.

Компиляция этих файлов .CPP может занять возраст (это как 30 минут в зависимости от того, что вы компилируете), и это было бы настоящей болью, если потребулась полчаса каждый раз, когда вы хотели перекомпилировать вашу программу. Итак, что они сделали, это только для тех библиотек, которые частично сохраняются в файлах .CPP, вы можете предварительнокомпилировать их в файл .lib, и это цель повышения варенья. Это означает, что вам нужно только потратить на полчаса, что они набирают один раз , а с того най не придется снова ждать полчаса.

Однако, как вы можете себе представить, каждая библиотека Boost состоит из многих файлов CPP и множества файлов заголовков, и существует много разных ароматизаторов каждой (версий отладки, версии выпуска, многопоточные и т. Д.), Итак, это не Простой процесс, чтобы просто составить библиотеку Boost сами. Вот где приходит Boost Jam. Вы даете ему команду компилировать библиотеки, а затем оно выдает все команды для вас компилятору, и к концу IT у вас будет коллекция файлов .lib. каждый другой аромат каждой библиотеки. Файлы заголовка как-то сообщите ссылочнику, которые Lib файлы включают, поэтому, если у вас есть правильные настройки путей, правильный вкус файла прекомпалятов .Lib автоматически будет связан с вашей программой, что позволяет сохранять при этом 30-минутный компиляцию.

Вы можете посмотреть, какие библиотеки должны быть составлены Boost Jam и какие библиотеки не смотрите на эту страницу: http://www.boost.org/doc/libs/1_37_0 - если библиотека не нуждается в файле lib (и поэтому не требует от вас, чтобы беспокоиться с усилением варенья) Скажу «Build & Amp; ссылка: только заголовок», тогда как в том случае, если библиотека требует, чтобы вы допустили файл lib, он скажет «Build & Amp; ссылка: автоматическое соединение».

Кроме того, если вы находитесь в Windows, вы можете скачать файлы предложенных .lib, чтобы вам никогда не нужно использовать Boost Jam. Чтобы получить это, то, что вы должны сделать, это перейти на страницу www.boost.org, перейдите к разделу «Начало работы» и выполните все возможное, чтобы убедиться, что у вас есть все настройки правильно. Одна из ссылок на версию этой страницы Windows этой страницы говорит вам, где найти файлы предложенных .lib.

 

For my purposes, it's just the thing that builds the boost library for you, I wasn't aware you could do anything else with it so I don't understand what you could mean by migrating to it. And I'm sorry but I'm unaware what regular jam is. Since no one else has provided an answer I'll just provide my understanding of it.

Boost is a collection of classes and functions for C++ are useful for various tasks. The classes and functions of boost are grouped into libraries. Some of the libraries have all their code in header files which you can use simply by using an #include preprocessor statement, while others (such as the filesystem or regular expressions library) have part of their implementation in .cpp files.

Compiling these .cpp files can take ages (it's like 30 minutes depending on what you're compiling) and it would be a real pain if it took half an hour every time you wanted to recompile your program. So what they have done is only for those libraries that are partly stored in .cpp files, you can precompile them into a .lib file, and that's the purpose of boost jam. That means you only have to spend half an hour compiling them once, and from then on you never have to wait half an hour again.

However, as you can imagine, each boost library consists of many cpp files and many header files, and there are many different flavours of each (debug versions, release versions, multi-threaded, etc) and so it is not a simple process to just compile the boost library yourself. That's where boost jam comes in. You give it the command to compile the libraries and then it issues all the commands for you to the compiler, and by the end of it, you'll have a collection of precompiled .lib files, one for each different flavour of each library. The header files somehow tell the linker which lib files to include, so if you have the correct paths setup, the correct flavour of precompiled .lib file will automatically be linked to your program, thus saving you a 30 minute compilation.

You can see what libraries need to be compiled by boost jam and what libraries don't by looking at this page: http://www.boost.org/doc/libs/1_37_0 - if a library does not need a lib file (and therefore does not require you to mess with boost jam first), it will say "Build & Link: Header only" whereas if a library does require you to precompile a lib file, it will say "Build & Link: Automatic linking".

Also, if you are on Windows, you can download the precompiled .lib files so you never have to use boost jam. To get that, what you should do is go to the www.boost.org page, go to the Getting Started section and follow it all the way through just to make sure you have everything setup correctly. One of the links on the windows version of that page tells you where to find the precompiled .lib files.

</div
 
 
     
     
28
 
vote

Я использую Boost Jam для моей кроссплатформы C ++. Я выбрал это, потому что

    .
  • Я хочу, чтобы мой код построил повсеместные сборки,
  • Он использует относительно простой декларативный язык, чтобы указать, как строить цели, а также
  • Он может построить все различные вкусы ваших дворовиков (например, отладка против выпуска, 32-битные против 64-битных, MSVC VS. GCC) в одном вызове с абсолютным минимумом ароматизаторов, связанных с ароматом в сборке Декларации.

Вы можете уточнить общие правила с помощью ароматизаторов, а не написание отдельных правил для каждой перестановки вкуса. Синтаксис не совсем то, что я бы выбрал, но не слишком сложно привыкнуть.

Данная статья сравнивает Boost Jam к Cmake, Scons и Eclipse CDT: http: // syrcose.ispras.ru/2009/files/04_aper.pdf

Мое понимание заключается в том, что Boost Jam - это ответвление Perforce Jamp, поддерживаемое сообществом Boost, и что Perforce Jamp не активно поддерживается ( Ноты выпуска имеют последнее обновление в апреле 2003 года).

Конечно, если вы не заботитесь о кросштабной разработке, есть более простые способы пойти, поскольку другие упомянули здесь. Лично я держу значение для Revisit Eclipse CDT; Это не казалось полезным 5 лет назад, но я слышу, что он нашел долгий путь.

 

I use Boost Jam for my cross-platform C++ development. I chose it because

  • I want my code to build everywhere Boost builds,
  • it uses a relatively simple declarative language to specify how to build targets, and
  • it can build all the different flavors of your binaries (e.g. debug vs. release, 32-bit vs. 64-bit, msvc vs. gcc) in a single invocation with an absolute minimum of flavor-related exceptions in the build declarations.

You can refine generic rules with flavor-specific settings, rather than writing separate rules for each flavor permutation. The syntax isn't exactly what I would have chosen, but it's not too hard to get used to.

This paper compares Boost Jam to CMake, SCons, and Eclipse CDT: http://syrcose.ispras.ru/2009/files/04_paper.pdf

My understanding is that Boost Jam is an offshoot of Perforce Jam maintained by the Boost community, and that Perforce Jam isn't actively maintained anymore (the release notes have the last update in April 2003).

Of course, if you don't care about cross-platform development, there are easier ways to go, as others have mentioned here. Personally, I keep meaning to revisit Eclipse CDT; it didn't seem usable 5 years ago, but I hear it has come a long way.

</div
 
 
 
 
9
 
vote

Как вы устраиваете, Boost Jam - это система сборки, и может использоваться независимо от любых других библиотек BOOST. Я ничего не знаю о Perforce Jam, но к моему пониманию, Boost Jam очень похож, и в основном совместимо.

Основное отличие заключается в том, что Boost Jam часто поставляется с Boost Build , Коллекция правил JAM, разработанная для общих задач, например, Компиляция библиотек, беговые тесты, создавая документацию Doxygen и т. Д.

По сравнению с другими системами сборки, Boost Jam / Boost Build предназначена для легко составления различных вариантов. Таким образом, если вы хотите изменить настройки компиляции из отладки в отпуску, или с несколькими нитьми, он автоматически определяет много изменений.

Недостаток состоит в том, что синтаксис очень одинок, а за пределами веб-сайта Boost нет никакой хорошей документации. Но я представляю, что Perforce Jam так же плохо в этом отношении.

 

As you state, Boost Jam is a build system, and can be used independently of any other boost libraries. I don't know anything about Perforce Jam, but to my understanding, Boost jam is very similar, and mostly compatible.

The main difference is that Boost Jam often comes with Boost Build, a collection of jam rules designed for common tasks, e.g. compiling libraries, running unit tests, creating doxygen documentation, etc.

Compared to other build systems, Boost Jam/Boost Build is designed for easily compilation of different variants. So if you want to change compilation settings from debug to release, or single- to multi-threaded, it determines a lot of the changes automatically.

The drawback is that the syntax is very finicky, and outside the boost website, there's no good documentation. But I imagine Perforce Jam is just as bad in that regard.

</div
 
 
 
 
9
 
vote

Учитывая выбор инструментов сборки, я бы не мигрирую в джем. Там есть лучшие системы сборки - Cmake / Spons для C / C ++, QMake для Qt, Ant для Java, NAT и MSBUILD для .NET и так далее. Они могут быть не технически превосходными, но они будут менее болезненными, чтобы использовать просто потому, что с ними знакомы гораздо больше людей (с другой стороны, они могут быть технически превосходными, конечно: D).

 

Given the choice of build tools I would not migrate to jam. There are better build systems out there - CMake / SCons for C/C++, qmake for Qt, Ant for Java, NAnt and MSBuild for .NET, and so on. They might not be technically superior but they will be less painful to use simply because far more people are familiar with them (on the other hand, they might be technically superior, of course :D).

</div
 
 
         
         

Связанный проблема

10  Миграция из GitHub Enterprise на Github.com  ( Migrate from github enterprise to github com ) 
У нас есть несколько репозиториев и вилок на пробной версии GitHub Enterprise. Я хочу оценить, как мигрировать из GitHub Enterprise на GitHub.com (в оплаченну...

3  Выпуск миграция в Джангу с югом (MySQL)  ( Issue migrating in django with south mysql ) 
У меня просто была проблема, где <код> south кажется путаницей между двумя миграциями. <Сильные> последние (4) миграции: У меня был стол: <код> class...

6  В переписке рельсов можно ли указать, что вновь добавленная колонна должна быть до или после существующего столбца в таблице?  ( In a rails migration is it possible to indicate that a newly added column shoul ) 
Допустим, я создаю таблицу в миграции рельсов, указывая, что опускает столбец ID: <код> create_table :categories_posts, :id => false do |t| t.column :cate...

2  Самый быстрый способ получить ссылку на NsmigrationManager в автоматической миграции?  ( Fastest way to get a reference to the nsmigrationmanager in an automatic migrati ) 
У меня есть приложение Heavy Data, и я реализовал все мои миграционные материалы Coredata, используя модели визуальных сопоставлений в Xcode и Nsentitymigrati...

1  React & Teadercript: Константы и пространства имен не поддерживаются  ( React typescript constant enums and namespaces are not supported ) 
У нас есть приложение React, которое использует Create-racte-app-app-teadercript Чтобы добавить поддержку Tymdercript в нашем решении, и это работает доволь...

2  Как мигрировать данные из некоторых таблиц из одной базы данных Oracle на другой?  ( How to migrate data from some tables from one oracle database to another ) 
Как мигрировать данные из некоторых таблиц из одной базы данных Oracle на другой в реальном времени (если данные вставляются в таблицу в Oracle1.table1, я бы ...

0  Ошибка при попытке мигрировать приложение Django на юг  ( Error when trying to migrate django application with south ) 
Я получаю эту ошибку при запуске "./manage.py migrate app_name" <код> While loading migration 'whatever.0001_initial': Traceback (most recent call last): F...

4  Миграция данных и схема от MySQL на SQL Server  ( Migrate data and schema from mysql to sql server ) 
Есть ли бесплатные решения для автоматического переноса базы данных из MySQL на сервер SQL Server, что «просто работает»? Я пытался эту простую (по крайне...

23  Почему не приятно иметь первичный ключ на таблице присоединения?  ( Why is it not good to have a primary key on a join table ) 
Я смотрел на скринкаст, где автор сказал, что нехорошо, чтобы иметь первичный ключ на таблице присоединения, но не объяснил, почему. Таблица соединения в пр...

3  Что я делаю не так, пытаясь развернуть с помощью Mightion Mightion Enternal (Ant)  ( What am i doing wrong in trying to deploy with the force com migration tool ant ) 
В настоящее время я пытаюсь работать через урок Salesforce.com на « Развертывание с помощью инструмента миграции Force.com (Ant) ». Я уверен, что я что-то у...

0  SPREE (Rails) не позволит мне создать миграцию. Говорит конфликт в I18N  ( Spree rails wont let me create a migration says there is a conflict within i ) 
Я попросил Rails создать миграцию со следующей командой: <код> $ rails g migration add_sale_price_to_spree_variants sale_price:decimal Это не удается и ...

1  Можно ли генерировать миграцию только для части модели?  ( Is it possible to generate migration only for a part of model ) 
Я хотел бы создавать миграции, используя пользовательский плагин VSIX и только для части модели. Я обнаружил, что я могу фильтровать сгенерированный код в кла...

63  Есть ли миграционный инструмент от CVS в Git?  ( Is there a migration tool from cvs to git ) 
Я намерен переключаться от CVS в Git. В случае SVN, кажется, <код> cvs2svn . Есть ли подобный инструмент, чтобы легко мигрировать из CVS в Git? ...

0  Golang-Migrate Неизвестный водитель PostgreSQL Использование команды Terminal  ( Golang migrate unknown driver postgresql using terminal command ) 
Когда я пытаюсь перенести мою базу, используя команду терминала (<код> migrate -path scripts -database "postgresql://postgres:postgres@localhost:5439/basename...

0  Рельсы генерируют модели (ы) через файл конфигурации  ( Rails generate models through configuration file ) 
Есть возможности для генерации моделей (и миграции) через файл конфигурации? У меня столько стола, и я хочу создать их (все время) с простым шагом. ...

Связанный проблема

10  Миграция из GitHub Enterprise на Github.com 
3  Выпуск миграция в Джангу с югом (MySQL) 
6  В переписке рельсов можно ли указать, что вновь добавленная колонна должна быть до или после существующего столбца в таблице? 
2  Самый быстрый способ получить ссылку на NsmigrationManager в автоматической миграции? 
1  React & Teadercript: Константы и пространства имен не поддерживаются 
2  Как мигрировать данные из некоторых таблиц из одной базы данных Oracle на другой? 
0  Ошибка при попытке мигрировать приложение Django на юг 
4  Миграция данных и схема от MySQL на SQL Server 
23  Почему не приятно иметь первичный ключ на таблице присоединения? 
3  Что я делаю не так, пытаясь развернуть с помощью Mightion Mightion Enternal (Ant) 
0  SPREE (Rails) не позволит мне создать миграцию. Говорит конфликт в I18N 
1  Можно ли генерировать миграцию только для части модели? 
63  Есть ли миграционный инструмент от CVS в Git? 
0  Golang-Migrate Неизвестный водитель PostgreSQL Использование команды Terminal 
0  Рельсы генерируют модели (ы) через файл конфигурации 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.