C++ command line parameters parser(CLPP)是一个命令行参数解析器,使用回调函数方式。使用CLPP时要调用Boost C++库,所以移植的第一步要将boost库安装到linux中。
移植环境:SUSE Linux(32位)
内核版本:Linux version 2.6.27.19-5-pae
Gcc版本:4.3.2
Clpp版本:2.0.2
Boost版本:1_44_0
具体步骤:
一.Boost库的安装
1、下载Boost。
下载地址:http://sourceforge.net/projects/boost/files/
2、编译Jam
解压:tar jxvf boost_1_44_0.tar.bz2
然后编译boost的编译器jam
cd boost_1_39_0/tools/jam
./build_dist.sh
如果无法执行,将build_dist.sh和 boost_1_39_0/tools/jam/src/build.sh的权限设置为可执行。
3、编译Boost
Jam编译后生成如下bjam文件
boost_1_44_0/tools/jam/stage/bin.linuxx86/bjam
把bjam 复制到boost_1_44_0
再在这个目录下编译Boost:
./bjam --sTOOLS=gcc --includedir=/usr/local/include --libdir=/usr/local/lib/boost install
编译参数说明:
a.-sTOOLS=gcc 指定编译器为GCC
b.--includedir=/usr/local/include 指定头文件的安装目录,如/usr/local/include(可自己设置,默认为/usr/local/include)。如果安装成功,将在/usr/include/生成目录boost,该目录下就是boost的头文件目录。
c.--libdir=/usr/local/lib/boost 指定boost的库文件目录,如/usr/local/lib/boost(默认为/usr/lib), 生成的 .a .so 文件将放在该目录下
d.install 编译并安装boost。
编译时间大概半个小时
4、配置Boost
编译完成后,设置几个环境变量。
BOOST_ROOT=/home/boost_1_44_0 (此处改为你Boost源码的存放位置)
Export BOOST_ROOT
BOOST_INCLUDE=/usr/local/include/boost(此处为Boost的头文件目录)
Export BOOST_INCLUDE
BOOST_LIB=/usr/local/lib/boost此处为Boost的库文件目录)
Export BOOST_LIB
为了使其能够在登录时自动导入,你可以写一个脚本:
#!/bin/sh
BOOST_ROOT=/home/boost_1_44_0
BOOST_INCLUDE=/usr/local/include/boost
BOOST_LIB=/usr/local/lib/boost
export BOOST_ROOT BOOST_INCLUDE BOOST_LIB
将其保存为/etc/profile.d/boost.sh,并使用chmod a+x boost.sh设置执行权限。
5、修改动态链接库路径
把/usr/local/lib/boost追加到动态链接库配置文件/etc/ld.so.conf中
,执行以下命令:
/sbin/ldconfig -v
6、测试Boost
第一个测试文件是helloboost.cpp:
#include <boost/lexical_cast.hpp>
#include <iostream>
#include <string>
using namespace std;
int main()
{ using boost::lexical_cast;
string s = lexical_cast<string>("hello,boost!"); std::cout<<s<<std::endl;
return 0;}
编译:
g++ helloboost.cpp -I$BOOST_INCLUDE -o helloboost
./helloboost
输出:
hello,boost!
第二个测试文件是lex.cpp:
#include <boost/lexical_cast.hpp>
#include <iostream>
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.12");
std::cout<<a<<std::endl;
std::cout<<b<<std::endl;
return 0;
}
编译:g++ lex.cpp -I$BOOST_INCLUDE -o lex
运行:./lex
输出:
123
123.12
二.clpp的安装
1.编译clpp
解压:tar jxvf clp_parser-2.0.2.tar.bz2
2.安装clpp
在解压的目录下执行
./install_unix.sh
在/usr/local/include/和/usr/share/doc/clpp中将会生成相应的文件,这样clpp就安装完毕了
3.测试clpp
在/ clp_parser/example中有相应的测试例子hello_world.cpp
编译:
g++ -L/usr/local/lib/boost –L/usr/local/include/boost/ hello_world.cpp –o hello_world –lboost_system –lboost_filesystem
运行./hello_world