标签:blog http io os ar 使用 sp strong 文件
最后更新日期:2014-04-25by kagula
阅读前提:《CMake入门(二)》、Linux的基本操作
环境: Windows 8.1 64bit英文版,Visual Studio 203 Update1英文版,CMake 2.8.12.2、 Cent OS 6.5、Cent OS 6.5自带gcc 4.4.7、icu 4.2.1
内容简介
介绍如果在VisualStudio上的项目依赖于boost库,如何使用cmake工具把这个项目移到Cent OS上。
正文
CentOS下boost的安装
[S1]下载,解压缩到当前目录
#tar -zxvf boost_1_55_0.tar.gz
[S2]安装Boost.Regex的依赖icu
#yum install icu libicu-devel
[S3]进入boost解压缩目录,编译安装
#./bootstrap.sh
#./b2 install --prefix=/usr/local
这样boost的头文件会被复制到/usr/local/include路径,boost的静态库文件会被复制到/usr/local/lib路径。
Win下如何安装boost参考资料[1]
在VisualStudio 2013上建立测试项目
新建[Visual C++]->[Win32]->[Win32Project]项目,Application type设置为console application, Additional options设置为Empty project。本次测试工程只需要两个文件Source.cpp和CMakeLists.txt
现在添加Source.cpp,源码清单:
include <iostream> #include <boost/thread.hpp> using namespace std; void mythread() { cout << "Hello,thread!" << endl; } int main() { boost::function<void()> f(mythread); boost::thread t(f); t.join(); cout << "thread is over" << endl; getchar(); return 0; }
添加CMakeLists.txt,源码清单如下
#设置项目名称 PROJECT(CMake_Tutorial3) #要求CMake的最低版本为2.8 CMAKE_MINIMUM_REQUIRED(VERSION 2.8) #添加头文件搜索路径 INCLUDE_DIRECTORIES(/usr/local/include) #添加库文件搜索路径 LINK_DIRECTORIES(/usr/local/lib) #用于将当前目录下的所有源文件的名字保存在变量 DIR_SRCS 中 AUX_SOURCE_DIRECTORY(. DIR_SRCS) #用于指定从一组源文件 source1 source2 … sourceN(在变量DIR_SRCS中定义) #编译出一个可执行文件且命名为CMake_Tutorial1 ADD_EXECUTABLE(CMake_Tutorial3 ${DIR_SRCS}) #添加编译可执行程序所需要的链接库、如果有多个中间用空格隔开 #第一个参数是可执行程序名称,第二个开始是依赖库 #在这里根据名字boost_thread去寻找libboost_thread.a文件 TARGET_LINK_LIBRARIES(CMake_Tutorial3 boost_thread)
在Cent OS上测试项目
假设我们在Win上的项目目录CMake_Tutorial3被复制到了/home/kagula/Downloads路径下。
进入路径,
$cd CMake_Tutorial3
$mkdir build
$cd build
读取父目录的CMakeLists.txt文件,生成Makefile文件
$cmake ..
读取Makefile,并编译项目,在当前目录下生成CMake_Tutorial3可执行文件
$make
运行编译出来的程序
$./CMake_Tutorial3
静态链接的好处是部署简单,不用担心目标环境,依赖库不存在或版本不匹配,所以目前为止我们的可执行程序都是静态链接依赖库,缺点是造成存储空间浪费,所以不适合有些大项目,下篇会提到如何在Cent OS上用CMake工具编译动态链接库。
为什么VisualStudio2013上建的项目缺省是Win32项目而不是Win64? [1]很少有项目需要用到大于2G的内存,[2]几乎或没有性能提升,[3]64位系统可以运行32位程序,但是反过来不行。
参考资料
[1]《win7 vs2012 编译boost 1.55》
http://blog.csdn.net/alex_my/article/details/17630685
[2]《Bash script toinstall gcc 4.8.2 and boost 1.55.0 on CentOS 6.4, CentOS 5.5 and Mac OS X 10.9》
http://joelinoff.com/blog/?p=1003
标签:blog http io os ar 使用 sp strong 文件
原文地址:http://blog.csdn.net/lee353086/article/details/40707001