使用icu构建xerces-c++版本3
build xerces c++ version 3 with icu
我想使用Visual c++express 2010构建带有ICU的Xerces 3.1.1。
我已经下载了ICU的源代码,并按照自述中所说的那样构建了它。
现在我需要用我刚刚构建的ICU二进制文件来构建Xerces。
Xerces网站3.1.1版本的构建说明指出,"您也可以选择Xerces-C++库是否应该使用ICU进行代码转换",但没有具体说明如何使用。我查看了所有的构建选项,唯一发现的(也许我错过了什么?)可能是相关的预处理器宏列表,我看到了以下定义-XERCES_USE_TRANSCODER_WINDOWS。
我想也许我需要将其更改为XERCES_USE_TRANSCODER_ICOU。这只是一个猜测,所以首先我查看了Xerces代码,发现Xerces_USE_TRANSCODER_ICOU确实出现了(例如,他们在包括ICU头之前检查它是否已定义)。
因此,我将XERCES_USE_TRANSCODER_WINDOWS更改为XERCES_USE_TRANSCODER _ICU,将ICU include目录添加到include目录路径,将所有ICU.lib文件添加到链接器依赖项,并尝试这样构建它。我得到未解决的外部错误:
PlatformUtils.obj:错误LNK2019:未解析的外部符号"public:__thiscall xercesc_3_1::ICUTransService::ICUTransService(类xercesc.3_1::MemoryManager*)"(??0ICUTransService@xercesc_3_1@@QAE@PAVMemoryManager@1@@Z)在函数"private:static class xercesc_3_1::XMLTransService*__cdecl xercesc_3 _1::XML PlatformUtils::makeTransService(void)"(?makeTransService@XMLPlatformUtils@xercesc_3_1@@CAPAVXMLTransService@2@XZ)1> C:\cpp_lib\xerces-C-3.1.1\projects\Win32\VC10\xerces-all\XercesLib。。。。。。。。。。。\内部版本\W32\VC10\Debug\xerces-c_3_1D.dll:致命错误LNK1120:1个未解析的外部
Xerces网站为使用ICU构建Xerces 2.8提供了更具体的说明(它在版本3上不起作用,因为它是通过版本3没有提供的脚本完成的)。我也尝试过(尽管我需要使用最新版本),但效果也不好。没有创建.dll或.lib文件。
谢谢。
因为我遇到了同样的问题,而且这是谷歌第一次找到它,所以我会给出答案,尽管你问这个问题已经有一段时间了。以下是在Visual Studio中使用ICU:构建Xerces-c的步骤(对我来说是在VS10中工作的)
- 按照说明下载并构建ICU
- 使用VS打开xerces-all.sln解决方案文件
- 选择ICU调试/发布构建配置-它为您设置
XERCES_USE_TRANSCODER_ICU
- 将ICU的include和库路径添加到XercesLib项目的目录中,将ICU库添加到该项目的其他链接器依赖项中
- 构建并快乐-无需排除WIN32TransService.cpp
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 导入库可以跨dll版本工作吗
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 在clang++预处理器中确定gcc工具链版本
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 不同的Visual Studio版本中缺少.dll
- 用符号版本替换对函数的所有调用
- luaL_dofile在已知良好的字节码上失败,可以使用未编译的版本
- 正在解码MSVC 32位版本的程序集(作业).没有手术做什么
- 我需要分发哪些版本的可再分发文件
- CV_OCL_RUN宏如何在OpenCV(版本3.4.5)的goodFeaturesToTrack实现中工作?
- 在运行时读取 libstdc++ 版本
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- Vulkan SDK 版本 1.1.85.0 在 Kubuntu 18.10 上链接
- 如何正确实现与基类不同的版本?
- 从预处理器获取 Windows 版本(C++ Win32)
- 多个版本的Xalan和Xerces
- 如何静态链接到两个版本的 xerces-c(或任何与此相关的库)
- 使用icu构建xerces-c++版本3