我们团队的一些开发人员正在使用libphonenumber的Java和C#版本,这是一个用于国际电话号码的规范化库。
他们声称它很精彩/神奇/等等。
不幸的是,作为一名Win32 C ++开发人员,我的简单思维无法完全掌握其他库的CMake,boost和host的所有奇迹和魔力,而我根本无法构建库。
有人可以提供一些提示或网址,以帮助我指出正确的方向,以便我们可以构建这个项目并使用它吗?
当前的绊脚石是在尝试运行CMake时(遵循非常简短的自述文件中的说明)我收到以下错误消息:
> -- Could NOT find Boost
> -- Configuring incomplete, errors occurred!
我以为我正确地设置了BOOST_ROOT,但显然要么我做错了,要么我错过了其他的env vars。
如何构建此库?
我们使用VS 2008,但我的机器上也有VS 2010。我很乐意用任何一个构建。
答案 0 :(得分:0)
你的CMake可能已经过时了你安装的Boost版本。检查位于CMake Modules目录中的FindBoost.cmake文件。它必须包含这样的部分:
set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
"1.46.1" "1.47" "1.47.0"
"1.46.0" "1.46" "1.45.0" "1.45" "1.44.0" "1.44" "1.43.0" "1.43" "1.42.0" "1.42"
"1.41.0" "1.41" "1.40.0" "1.40" "1.39.0" "1.39" "1.38.0" "1.38" "1.37.0" "1.37"
"1.36.1" "1.36.0" "1.36" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0"
"1.34" "1.33.1" "1.33.0" "1.33")
答案 1 :(得分:0)
您可以尝试将BOOST_INCLUDEDIR和BOOST_LIBRARYDIR传递给编译器;通过这种方式,您可以完全绕过cmake模块搜索。
答案 2 :(得分:0)
find_package (Boost 1.40.0 COMPONENTS thread)
到
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF) //since CMake 2.8.3
find_package (Boost 1.47.0 COMPONENTS thread)
3。在\ libphonenumber \ cpp中运行mkdir build
,cd build
4.运行cmake -G“your generator”-DBOOST_ROOT =“you_path_to_boost_147_0 folder”,ex:cmake -G "Visual Studio 10" ../ -DBOOST_ROOT="E:\libphonenumber\cpp\3rdparty"
答案 3 :(得分:0)
尝试使用cygwin编译它,它就像一个标准的UNIX构建环境,但在Windows上运行。使用它编译开源库通常要比使用Visual Studio容易得多。