网络服务器软件开发/中间件开发,关注ACE/ICE/boost

C++博客 首页 新随笔 联系 聚合 管理
  152 Posts :: 3 Stories :: 172 Comments :: 0 Trackbacks

boost 的编译

然后,regexp用到了boost第三方包,这里面有很多公用的C++组件,下载地址:
http://internap.dl.sourceforge.net/sourceforge/boost/boost_1_33_1.zip
解开后,在cmd下,
第一步:需要编译bjm,这是编译boost的编译器,晕
cd boost_1_33_1\tools\build\jam_src
build.bat
在当前的bin.ntx86目录下,生成了bjam.exe文件。
第二步:编译boost
cd boost_1_33_1
将刚才生成的bjam.exe拷过来
set VC7_ROOT="C:\Program Files\Microsoft Visual Studio.NET 2003\Vc7"
bjam "-sTOOLS=vc7" install
这个步骤需要很久时间,其时我们只用了里面的regexp包,应该可以只编译这个包,但我没细研究。
编译完成后即在C盘根目录下生成了boost目录,这个目录下面.net工程要用到。

在.net工程里,工具|选项|项目|VC++目录,添加
可执行文件:zlib123\projects\visualc6\Win32_DLL_Release
包含文件:zlib123目录以及c:\Boost\include\boost-1_33_1
库文件:zlib123\projects\visualc6\Win32_DLL_Release以及c:\Boost\lib

这时FZS Interface工程应该可以编译成功了,编译完成后会在Debug目录生成FileZilla Server Interface.exe。

生成Service工程时,需要调整一下工程设置:
语言设置:打开工程属性页,配置属性|常规,选择字符集为“使用 Unicode 字符集”,否则编译时会出错unicode必须使用;
链接设置:打开工程属性页,配置属性|链接器,将输入zlib.lib改成zlib1.lib(因为zlib123工程生成的是zlib1.lib)
下面生成一下,应该可以了。在生成Service工程完成时已经自动安装了"FileZilla Server FTP server"服务,也可以手工安装服务:
cd FileZilla_Server\Debug
"FileZilla server.exe" install auto

可以试一下这个FTP服务器了,运行FileZilla_Server\interface\Debug\FileZilla Server Interface.exe,这是FTP服务器的配置监控程序,试着加几个user,设置home dir,再用FTP客户端连接一下试试,应该可以了。

编译boost.regex的另一种办法
1.执行.net的Visual Studio .NET 2003 命令提示,即运行vcvars32.bat,可以帮助设置好.net命令行环境
2.cd boost_1_33_1\libs\regex\build
3.nmake -fvc71.mak

这种方式可以只编译regex
这时会在当前目录下生成vc71目录,里面有已编译好的lib和dll文件, 这样以后的步骤中可以设置regex库时指向这里, 包含文件需要设置到boost_1_33_1目录

另修正补充:
1、用bjam编译regex时,选项-sTOOLS=vc7中vc7改成vc71,否则下面最终生成工程时需要改个文件名(
libboost_regex-vc7-mt-sgd-1_33_1.lib ->
libboost_regex-vc71-mt-sgd-1_33_1.lib)

2、在.net工程里,可以不用设置:
可执行文件:zlib123\projects\visualc6\Win32_DLL_Release
不过运行时需要设置相应的PATH,以包含zlib1.dll以及regex的dll

posted on 2007-03-15 08:42 true 阅读(461) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理