Компиляция под VC++ boost+icu статически
Я хочу скомпилировать следующий код с VC++ 2010
а также boost
с icu
Поддержка Unicode и ссылка на него static
, он компилируется без ошибок, но все равно запрашивает icuuc52.dll, icudt52.dll, icuin52.dll
, что я сделал не так? ICU был составлен static
, повысить с ICU скомпилированы static
и я ссылаюсь как static
под VC++ с опцией ICU /D "U_STATIC_IMPLEMENTATION"
:
#include <iostream>
#include <boost/regex.hpp>
#include <boost/regex/icu.hpp>
#pragma comment (lib, "icuuc.lib")
#pragma comment (lib, "icuin.lib")
int main()
{
static const std::string pattern("^.*" "\303\226" ".*$");
static const std::string test1("SCH" "\303\226" "NE");
static const std::string test2("sch" "\303\266" "ne");
static const boost::u32regex exp=boost::make_u32regex(pattern, boost::regex::icase);
const char *result = (boost::u32regex_match(test1, exp)) ? "Match" : "NoMatch";
std::cout << "Testing \"" << test1 << "\" against pattern \"" << pattern
<< "\" : " << result << std::endl;
result = (boost::u32regex_match(test2, exp)) ? "Match" : "NoMatch";
std::cout << "Testing \"" << test2 << "\" against pattern \"" << pattern
<< "\" : " << result << std::endl;
}
полная командная строка используется:
cl.exe / O2 / MT / EHsc / D "U_STATIC_IMPLEMENTATION" / IC: \ local \ boost_1_55_0 / IC: \ icu \ include uniregboost.cpp / link / SUBSYSTEM: CONSOLE Kernel32.Lib User32.lib advapi32.lib / libpath: " C: \ local \ boost_1_55_0 \ stage \ lib "/ libpath:" C: \ icu \ lib "