экспериментировать устал уже, потому что каждая перекомпиляция 3 часа занимает
возможно ли вообще эту либу скомпилировать чтобы libcef.dll использовала не статическую линковку к crt, а динамическую?
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, Barbar1an, Вы писали:
B>возможно ли вообще эту либу скомпилировать чтобы libcef.dll использовала не статическую линковку к crt, а динамическую?
Перекомпиляция чего? Клиентское поиложение собирается за секунды, а перекомпиляция всего libcef занимает 2-8 часов в зависимости от железа, но скорость отнюдь не от crt зависит.
Re[2]: Chromium Embedded Framework и shared CRT dlls
Здравствуйте, Mystic Artifact, Вы писали:
MA>Здравствуйте, Barbar1an, Вы писали:
B>>возможно ли вообще эту либу скомпилировать чтобы libcef.dll использовала не статическую линковку к crt, а динамическую? MA> Перекомпиляция чего? Клиентское поиложение собирается за секунды, а перекомпиляция всего libcef занимает 2-8 часов в зависимости от железа, но скорость отнюдь не от crt зависит.
про клинтское приложение я ничего не писал
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re[3]: Chromium Embedded Framework и shared CRT dlls
Если хочется что-то поменять именно в процессе сборки libcef — смотрите каталог build.gn файлы. В общем случае все модули должны быть собраны с одними и теми же ключами. Начать стоит просто с просмотра доступных флагов сборки, так как ковырять все эти файлы вручную — контрпродуктивно и бесполезно.
Re[4]: Chromium Embedded Framework и shared CRT dlls
Здравствуйте, Mystic Artifact, Вы писали:
MA>Здравствуйте, Barbar1an, Вы писали:
B>>про клинтское приложение я ничего не писал MA> Про клиентское: https://bitbucket.org/chromiumembedded/cef/wiki/LinkingDifferentRunTimeLibraries
MA> Если хочется что-то поменять именно в процессе сборки libcef — смотрите каталог build.gn файлы. В общем случае все модули должны быть собраны с одними и теми же ключами. Начать стоит просто с просмотра доступных флагов сборки, так как ковырять все эти файлы вручную — контрпродуктивно и бесполезно.
чтото я там ниче похожего на ключи компилятора не нашел, мне нужно гдето указать чтобы всё что нужно для libcef компилировалось c флагом Multi-threaded Debug DLL (/MDd)
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re[5]: Chromium Embedded Framework и shared CRT dlls
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Depending on this target will cause the manifests for Chrome's default
# Windows and common control compatibility and elevation for executables.
windows_manifest("default_exe_manifest") {
sources = [
as_invoker_manifest,
common_controls_manifest,
default_compatibility_manifest,
]
}
group("runtime_libs") {
if (is_component_build) {
# Copy the VS runtime DLLs into the isolate so that they don't have to be
# preinstalled on the target machine. The debug runtimes have a "d" at
# the end.
if (is_debug) {
vcrt_suffix = "d"
} else {
vcrt_suffix = ""
}
# These runtime files are copied to the output directory by the
# vs_toolchain script that runs as part of toolchain configuration.
data = [
"$root_out_dir/msvcp140${vcrt_suffix}.dll",
"$root_out_dir/vccorlib140${vcrt_suffix}.dll",
"$root_out_dir/vcruntime140${vcrt_suffix}.dll",
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re[7]: Chromium Embedded Framework и shared CRT dlls
Здравствуйте, Mystic Artifact, Вы писали:
MA>Здравствуйте, Barbar1an, Вы писали:
MA>Посмотрите в src/build/config/win/BUILD.gn соответствующее правило (default_crt).
а блин сорри, не там смотрел, щас посмотрим что там...
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, Mystic Artifact, Вы писали:
MA>Здравствуйте, Barbar1an, Вы писали:
MA>Посмотрите внимательно мою ссылку еще раз.
я попробовал
# Configures how the runtime library (CRT) is going to be used.
# See https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx for a reference of
# what each value does.
config("default_crt") {
if (is_component_build) {
# Component mode: dynamic CRT. Since the library is shared, it requires
# exceptions or will give errors about things not matching, so keep
# exceptions on.
configs = [ ":dynamic_crt" ]
} else {
if (current_os == "winuwp") {
# https://blogs.msdn.microsoft.com/vcblog/2014/06/10/the-great-c-runtime-crt-refactoring/
# contains a details explanation of what is happening with the Windows
# CRT in Visual Studio releases related to Windows store applications.
configs = [ ":dynamic_crt" ]
} else {
# Desktop Windows: static CRT.
configs = [ ":dynamic_crt" ]
}
}
}
но линковка упала :
[21376/21380] LINK(DLL) libcef.dll libcef.dll.lib libcef.dll.pdb
FAILED: libcef.dll libcef.dll.lib libcef.dll.pdb
ninja -t msvc -e environment.x86 -- ../../third_party/llvm-build/Release+Asserts/bin/lld-link.exe /nologo /IMPLIB:./libcef.dll.lib /DLL /OUT:./libcef.dll /PDB:./libcef.dll.pdb @./libcef.dll.rsp
lld-link: error: duplicate symbol: "static __int64 const Json::Value::maxLargestInt" (?maxLargestInt@Value@Json@@2_JB) in obj/third_party/jsoncpp/jsoncpp/json_value.obj and in openvr_api.lib(jsoncpp.o
bj)
lld-link: error: duplicate symbol: "static unsigned __int64 const Json::Value::maxLargestUInt" (?maxLargestUInt@Value@Json@@2_KB) in obj/third_party/jsoncpp/jsoncpp/json_value.obj and in openvr_api.li
b(jsoncpp.obj)
lld-link: error: duplicate symbol: "static __int64 const Json::Value::minLargestInt" (?minLargestInt@Value@Json@@2_JB) in obj/third_party/jsoncpp/jsoncpp/json_value.obj and in openvr_api.lib(jsoncpp.o
bj)
lld-link: error: duplicate symbol: "static int const Json::Value::maxInt" (?maxInt@Value@Json@@2HB) in obj/third_party/jsoncpp/jsoncpp/json_value.obj and in openvr_api.lib(jsoncpp.obj)
lld-link: error: duplicate symbol: "static class Json::Value const &Json::Value::null" (?null@Value@Json@@2ABV12@B) in obj/third_party/jsoncpp/jsoncpp/json_value.obj and in openvr_api.lib(jsoncpp.obj)
lld-link: error: duplicate symbol: "static int const Json::Value::minInt" (?minInt@Value@Json@@2HB) in obj/third_party/jsoncpp/jsoncpp/json_value.obj and in openvr_api.lib(jsoncpp.obj)
lld-link: error: duplicate symbol: "static unsigned int const Json::Value::maxUInt" (?maxUInt@Value@Json@@2IB) in obj/third_party/jsoncpp/jsoncpp/json_value.obj and in openvr_api.lib(jsoncpp.obj)
lld-link: error: duplicate symbol: "static __int64 const Json::Value::minInt64" (?minInt64@Value@Json@@2_JB) in obj/third_party/jsoncpp/jsoncpp/json_value.obj and in openvr_api.lib(jsoncpp.obj)
lld-link: error: duplicate symbol: "static __int64 const Json::Value::maxInt64" (?maxInt64@Value@Json@@2_JB) in obj/third_party/jsoncpp/jsoncpp/json_value.obj and in openvr_api.lib(jsoncpp.obj)
lld-link: error: duplicate symbol: "static unsigned __int64 const Json::Value::maxUInt64" (?maxUInt64@Value@Json@@2_KB) in obj/third_party/jsoncpp/jsoncpp/json_value.obj and in openvr_api.lib(jsoncpp.
obj)
ninja: build stopped: subcommand failed.
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re[9]: Chromium Embedded Framework и shared CRT dlls
Здравствуйте, Mystic Artifact, Вы писали:
MA>Здравствуйте, Barbar1an, Вы писали:
MA>То, что будет легко, никто не обещал. Я помог чем смог.
MA>PS: Тем более, что все еще не вижу как это поможет со скоростью сборки.
это не для скорости спорки нада, а чтобы просто прилинковать ceflib туда где рантайм динамический
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re[11]: Chromium Embedded Framework и shared CRT dlls
Здравствуйте, Barbar1an, Вы писали:
B>это не для скорости спорки нада, а чтобы просто прилинковать ceflib туда где рантайм динамический
Для этого libcef вообще не нужно собирать, это и есть сборка клиентского приложения. По ссылке все ж написано https://bitbucket.org/chromiumembedded/cef/wiki/LinkingDifferentRunTimeLibraries . Нужно собрать только то, что там написано, т.е. libcef_dll_wrapper.
Re[12]: Chromium Embedded Framework и shared CRT dlls
Здравствуйте, Mystic Artifact, Вы писали:
MA>Здравствуйте, Barbar1an, Вы писали:
B>>это не для скорости спорки нада, а чтобы просто прилинковать ceflib туда где рантайм динамический MA> Для этого libcef вообще не нужно собирать, это и есть сборка клиентского приложения. По ссылке все ж написано https://bitbucket.org/chromiumembedded/cef/wiki/LinkingDifferentRunTimeLibraries . Нужно собрать только то, что там написано, т.е. libcef_dll_wrapper.
там гооврится запустисти Cmake — какой симейк есил все билдится нинзей?
и куда тогда -DCEF_RUNTIME_LIBRARY_FLAG=/MD этот флаг пихать?
и вообще мне не cef нада прилинковать к клиенту динамически , а CRT прилинковать к cef динамически, чтобы libcef использвоала СRT ввиде длл, а не саму cef вввимде длл, сеф ддл и так поумолчанию на выходе получается для этого ваще ниче делать не нада
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, Mystic Artifact, Вы писали:
MA>Здравствуйте, Barbar1an, Вы писали:
B>>там гооврится запустисти Cmake — какой симейк есил все билдится нинзей?
MA> Вы скачивали готовый бинарный дистрибутив? В нем есть и проект с cmake и весь код для libcef_dll_wrapper.
MA> Если вы сами хотите собирать libcef — то опять же, на вики написано как построить и дистрибутив (make_distrib).
а я разве говорил что у меня проблема собрать libcef? он собирается, причем срзу ввиде длл, но не такая длл как мне нужна, мне нужна другая длл, длл бывают разные
длл могут использовать ститический CRT, а могут использовать shared CRT
сеф подефолту билдится с неузабельным статическим црт, а мне нужен либцеф слинкованый со shared црт
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
m:\cef\chromium_git\chromium\src>git apply g:\openvr_jsoncpp_780987.patch
error: vr/BUILD.gn: No such file or directory
error: openvr/BUILD.gn: No such file or directory
error: openvr/src/src/vrcommon/vrpathregistry_public.cpp: No such file or directory
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.