C++ 如何构建谷歌&x27;s C++;Win32的libphonenumber库
我们团队中的一些开发人员正在使用Java和C版本,这是一个国际电话号码的标准化库 他们声称这是美妙的/神奇的/等等 遗憾的是,作为一个Win32 C++开发人员,我的简单头脑不能完全掌握CMake、Boost和其他图书馆的所有神奇和神奇,我根本无法建立库。 有人可以提供一些提示或网址,以帮助我在正确的方向,使我们可以建立这个项目,并利用它 当前的障碍是在尝试运行CMake时(按照非常简短的自述文件中的说明),我收到以下错误消息:C++ 如何构建谷歌&x27;s C++;Win32的libphonenumber库,c++,windows,boost,build,cmake,C++,Windows,Boost,Build,Cmake,我们团队中的一些开发人员正在使用Java和C版本,这是一个国际电话号码的标准化库 他们声称这是美妙的/神奇的/等等 遗憾的是,作为一个Win32 C++开发人员,我的简单头脑不能完全掌握CMake、Boost和其他图书馆的所有神奇和神奇,我根本无法建立库。 有人可以提供一些提示或网址,以帮助我在正确的方向,使我们可以建立这个项目,并利用它 当前的障碍是在尝试运行CMake时(按照非常简短的自述文件中的说明),我收到以下错误消息: > -- Could NOT find Boost >
> -- Could NOT find Boost
> -- Configuring incomplete, errors occurred!
我以为我正确地设置了BOOST_ROOT,但很明显,要么我设置错误,要么我错过了其他环境变量
我怎样才能建立这个图书馆
我们使用VS2008,但我的机器上也有VS2010。我很乐意使用其中任何一个进行构建。您的CMake可能与您安装的Boost版本相比已经过时。检查位于cmake模块目录中的文件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")
您可以尝试将BOOST_INCLUDEDIR和BOOST_LIBRARYDIR传递给编译器;通过这种方式,您可以完全绕过cmake模块搜索
find_包(Boost 1.40.0组件线程)
build中运行mkdir build
4.运行cmake-G“your generator”-DBOOST_ROOT=“you_path_to_boost_147_0 folder”,例如:cmake-G“Visual Studio 10”。/-DBOOST_ROOT=“E:\libphonenumber\cpp\3rdparty”
尝试使用它进行编译,它类似于标准的UNIX构建环境,但在Windows上运行。使用它编译开源库通常比使用VisualStudio容易得多。谢谢。我加了1.47和1.47.0。不幸的是,这似乎无法解决问题。cmake如何知道去哪里寻找boost?我尝试设置BooStuoRooST,但显然我做了一些错误……你是否通过了<代码> -dBooStjava根> <代码>编译器?这是不是甚至可以在C++中使用,我认为它是Java,JavaScript?@贾斯廷-问题是C++的工具和文档(尤其是Win32)是不存在的/可怕的)它需要:Boost(线程)-您必须编译boost线程、协议缓冲区、Google测试和libIcu。这不是一项琐碎的任务。嗯,我知道我必须建立这些。我知道这不是一件小事,所以这里的问题是。问题是如何建设。CMake的东西是无用的,不起作用。注意:协议缓冲区不能用VS 2010I编译。我有同样的问题。我正在尝试使用VS2010为windows编译protobuf库,但失败了。还有别的办法吗?我还有一个问题是,我可以在不使用boost的情况下为windows编译libphonenumber库吗???
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)