Попытка построить stati c boost :: locale против stati c ICU под Windows / MSVC - PullRequest
0 голосов
/ 24 февраля 2020

ОК, после борьбы с этим, я нашел пост в блоге, объясняющий, как это сделать . Я успешно создал boost, используя эту команду:

b2.exe --hash toolset=msvc debug-store=database address-model=64 architecture=x86
    threading=multi link=static runtime-link=shared
    cflags="/FS" cxxflags="/std:c++17 /FS"
    archiveflags="/LIBPATH:C:\icu4c\lib64 icudt.lib icuin.lib icuio.lib icutest.lib icutu.lib icuuc.lib"
    pch=off define=BOOST_USE_WINAPI_VERSION=0x0601 --layout=versioned
    --build-type=minimal --build-dir="build" --prefix="C:\Boost"
    --without-mpi --without-python
    -sICU_PATH="C:\icu4c" -sZLIB_SOURCE="C:\zlib"
    -j 17 install

Но есть одна небольшая проблема. Во время выполнения для запуска .exe файла требуется 3 dll (icuuc65.dll, icudt65.dll, icuin65.dll), несмотря на тот факт, что во время сборки достаточно ссылки Boost stati c libs без проблем со связью.

Итак, что я делаю неправильно?

Я также получаю следующее предупреждение при сборке Boost:

icuin.lib (icuin65.dll): предупреждение LNK4006: __NULL_IMPORT_DESCRIPTOR уже определено в icudt .lib (icudt65.dll); второе определение игнорируется

...