|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
Отдельно темы не нашел; возможно, это никому не нужно или же совершенно элементарная вещь для знатоков, но сам промучился довольно долго, т.ч. делюсь опытом. Еще раз повторю: с Visual studio я вообще не знаком, и мануал предназначен для таких же. Итак, цель - собрать fbclient без привязки к дурацкому MS VC runtime. Инструментарий: - WinXP, можно на виртуалке - Visual studio express 2010 (бесплатная, но найти сейчас можно разве что на торрентах) Порядок действий: - Поставить MS VS, зарегить (ключи найти в сети либо получить от MS) - Скачать исходники Firebird. К сожалению, придется тянуть всю глыбу, т.к. клиентская либа не выделена. - Перейти в (исходники)\builds\win32\msvc10 - Поочередно для всех трех sln файлов: открыть в VS, выделить все проекты в дереве слева, Project -> Properties, Configuration properties -> C/C++ -> Code generation, опция Runtime library, сменить на Multi-threaded (/MT), сохранить изменения, закрыть солюшен. - Перейти в (исходники)\builds\win32, запустить run_all.bat. - Если звезды сложатся удачно - после N минут шуршания в (исходники)\temp\Win32\Release\firebird\bin образуется вожделенная dll, не зависящая от рантайма. У меня получилось где-то 750 кило против 550 кило у стокового варианта. Рецепт проверен только на 32-битной конфигурации, т.к. 64-битной XP под руками не оказалось, на 7ке при сборке линкер выдает таинственные ошибки, связанные с COFF ( проблема известная ; решения так и не найдено, кроме почему-то сноса дотнета 4.5 - для меня не вариант, т.к. он у меня единственный установлен), а под 2013 express проектов нет. Кросс-компиляция же не удается, т.к. при сборке выполняется запуск вновь скомпиленных программ, которая, естественно, обламывается, ведь они 64-битные. Кстати, после первой полной сборки можно собирать клиента отдельно, открыв \builds\win32\msvc10\fbclient.vcxproj в VS, только придется скопировать папку \temp\Win32\Release\common в \temp\Win32\Debug\common (не спрашивайте, почему релиз-конфиг ищет либы по дебаг-пути) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 18:35 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
После многих часов затяжных боев с шайтан-мелкософтом выяснил, что 64 версия Express-ом собираться не желает, даже если поставить ей недостающие компиляторы (сборочный скрипт не находит нужного vcvars.bat). Пришлось-таки доставать и ставить полную версию VS 2010. В итоге полный алгоритм сборки под W7 такой: 1. Найти и поставить VS 2010. Я ставил MSDN образ, т.к. его не нужно регистрировать 2. Вероятно, у вас уже будет стоять самый новый .net, который конфликтует с тем, что использовался в 2010-й Студии. Проблема выражается ошибкой "LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt" при сборке. Решения с наименьшим геморроем (варианты жонглирования версиями дотнета и Студий не рассматриваются): * Переименовать C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe - мне помог именно этот способ. * Заменить ошибочный вышеуказанный cvtres.exe на правильный (см. инфу по ссылке) - если есть установленная Студия 2012, например. * Поставить SP1 для Студии, который исправит ошибку, но снесет 64 компиляторы, которые придется ставить заново из еще одного дистрибутива (без комментариев...) Инфа тут . 3. Перейти в консоли в %FBSRC%\builds\win32 и выполнить Код: sql 1. 2.
либо Код: sql 1. 2.
в зависимости от нужной архитектуры бинарников. Если нужно собрать проекты статически, убирая дурную зависимость от msvcr, то алгоритм такой: открыть в VS поочередно файлы %FBSRC%\builds\win32\msvc10\*.sln, выделить все проекты в дереве проектов, открыть свойства, выбрать конфигурацию All configurations и поменять: * Configuration properties -> General, опция Use of MFC, выставить Use Standard Windows Libraries * Project -> Properties, Configuration properties -> C/C++ -> Code generation, опция Runtime library, сменить на Multi-threaded (/MT) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2015, 15:59 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
В 3.0 проще: скачать исходники, установить CMake (система сборки), затем выполнить команды ниже. Запустить сборку firebird_src/win_mt/firebird.sln. Файл будет сгенерирован для установленной версии VS, либо для самой поздней из установленных. Также есть возможность сборки 64 битной версии. cd firebird_src cmake -H. -Bwin_mt -DMSVC_STATIC_RUNTIME=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2015, 22:40 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
Fr0sT-BrutalПосле многих часов затяжных боев с шайтан-мелкософтом выяснил, что 64 версия Express-ом собираться не желает, даже если поставить ей недостающие компиляторы (сборочный скрипт не находит нужного vcvars.bat). Express не поддерживает компиляцию 64, на то он и Exress ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2015, 03:51 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
lzw, хорошая новость, буду иметь в виду. Gallemar, теоретически поддерживает, если поставить дополнительный пакет компиляторов. Практически же скрипты сборки FB такой вариант не переваривают. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2015, 09:49 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal- Visual studio express 2010 (бесплатная, но найти сейчас можно разве что на торрентах) Вообще-то он лежит на официальном сайте на странице загрузки остальных Express-версий (внизу) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2015, 11:02 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
ArtDen, ну вот я что-то не увидел. Все ссылки вели на загрузку 2013-й, а на сайте МС сам Билл ногу сломил. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2015, 18:37 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, https://www.visualstudio.com/ru-ru/downloads/download-visual-studio-vs#DownloadFamilies_4 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2015, 20:55 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
ArtDen, хорошо, буду знать. Увы, для сабжа Экспресс полезен лишь на 50% ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2015, 10:58 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, а другими компиляторами не компилируется? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2015, 10:54 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
Без понятия, я этим-то еле собрал. У меня с С прямо-таки несовместимость. Вроде как есть возможность сборки mingw-ом, но я туда не копал - еще искать, как избавиться от его библиотек. К тому же авторExecutable size problem. The executables are too great. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2015, 16:21 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
MaratIskFr0sT-Brutal, а другими компиляторами не компилируется? когда то пользовался этой инструкцией но она уже устарела Давно уже не собирал, сегодня слил FB3 b2 по svn, надо поиграться, полазить, посмотреть, собирать может и не прийдётся. Интересно, а какой версией VS компилят разработчики сейчас? Кстати, может гдето есть какой актуальный мануал на тему сборки? Хорошо бы что то для нового компилятора cpp от Embarcadero, т.к. у многих есть купленная Rad Studio, было бы удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2015, 14:59 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
/trunk/doc/README.build.msvc.html ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2015, 15:11 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
официальные билды и снапшоты компилятся MSVC10, в коде есть поддержка MSVC12/13. Поддержки эмбаркадеровских компиляторов нет и не предвидится. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2015, 15:13 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
dimitrофициальные билды и снапшоты компилятся MSVC10, в коде есть поддержка MSVC12/13. Поддержки эмбаркадеровских компиляторов нет и не предвидится. спасибо, Жалко, студию покупать дороговато только для изучения FB, а express 64x не компилирует. Жотя для тестов хватит и 32x по идее. На express кто то пробовал компилить 32x? Тонкости какие то вылазят или компилится без проблем как есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2015, 15:53 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
существует бесплатная Visual Studio Community 2013 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2015, 16:04 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
dimitrсуществует бесплатная Visual Studio Community 2013 спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2015, 16:09 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
dimitrПоддержки эмбаркадеровских компиляторов нет и не предвидится. "Эмбаркадеровские компиляторы" это теперь clang. AFAIK, им собирают под МакОсь. Mikhail Tchervonenkoстудию покупать дороговато только для изучения FB, а express 64x не компилирует. Жотя для тестов хватит и 32x по идее. На express кто то пробовал компилить 32x? Тонкости какие то вылазят или компилится без проблем как есть? Во-первых, для сборки Express-ом для 64 бит достаточно установить MS SDK, в который входит недостающий компилятор и библиотеки. Инструкция гуглится влёт. Есть две тонкости: с путями, содержащими пробелы (патч я присылал, его не приняли) и апплетом панели управления (его надо просто удалить из солюшена). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2015, 17:47 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, спасибо за инфу, посмотрел лицензию на Visual Studio Community 2013 и тут мне подходит. Ничего коммерческого на cpp сейчас не пишу, а для open source и для изучения она свободная собственно уже установил ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2015, 18:20 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
Mikhail TchervonenkoDimitry Sibiryakov, спасибо за инфу, посмотрел лицензию на Visual Studio Community 2013 и тут мне подходит. Ничего коммерческого на cpp сейчас не пишу, а для open source и для изучения она свободная собственно уже установил Так и "коммерческое" на VS CE не запрещается (см. условия): в некорпоративных организациях Visual Studio Community может использовать до 5 пользователей. В корпоративных организациях (в которых используется > 250 ПК или годовой доход которых > 1 млн долларов США) использование запрещено, за исключением случаев, перечисленных выше (открытый код, научные исследования и учебные аудитории). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2015, 09:13 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, птица на чем пишется? на С или С++? если на С, пробовал ли кто сделать объектные файлы клиента для статической линковки? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2015, 11:43 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
MaratIskFr0sT-Brutal, птица на чем пишется? на С или С++? если на С, пробовал ли кто сделать объектные файлы клиента для статической линковки? на c++ ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2015, 12:44 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
MaratIskптица на чем пишется? на С или С++? если на С, пробовал ли кто сделать объектные файлы клиента для статической линковки?Каким образом C или C++ препятствует созданию static library ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2015, 12:47 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
hvladMaratIskптица на чем пишется? на С или С++? если на С, пробовал ли кто сделать объектные файлы клиента для статической линковки?Каким образом C или C++ препятствует созданию static library ? если С++, то для Delphi можно попробовать BCC55 но для лазаруса из С++ не получится, понимает только С а хотелось бы для обеих сред ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2015, 14:44 |
|
Статическая сборка fbclient, не зависящего от MS VC runtime, для чайников
|
|||
---|---|---|---|
#18+
MaratIskдля лазаруса из С++ не получится, понимает только С С каких пор синтаксис исходника влияет на формат объектника?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2015, 14:55 |
|
|
start [/forum/topic.php?fid=40&msg=39008035&tid=1562711]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 140ms |
0 / 0 |