位置: 编程技术 - 正文
推荐整理分享boost全平台编译方法(boost源码编译),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:boost 代码,boost 编程,boost源码编译,boost编程指南,boost编程指南,boost编程指南,boost源码编译,boost 编译,内容如对您有帮助,希望把文章链接给更多的朋友!
boost自带一套编译工具bjam,bjam本身是跨平台的,并且也要自行编译出来。在boost目录下有bootstrap.sh和bootstrap.bat两个脚本分别用来编译*nix和windows下的bjam。bootstrap脚本可以传入参数,以在编译bjam过程中生成特定的编译boost的配置。这些配置保存在新生成的project-config.jam里,但还可以在运行bjam的时候再传入参数来覆盖。同时生成的b2是bjam的代理,运行哪个的效果都差不多。 在终端下运行 bjam --show-libraries 会列出所有要编译的库。 真正编译时,可以传入–with-xxx来选择编译哪些库,或者传入–without-xxx来选择不编译哪些库。如果不传则会读取project-config.jam的设置,如果也没有则是编译全部的库。 更多的参数可以用 bjam --help 来查看。例如编译成静态库还是动态库,运行时库是静态的还是动态的,编译完后要不要安装等。
注意: 旧版本的boost可能会存在编译问题,尽量用新的就好。bjam在*nix和windows支持的参数有不同。
1. iOS平台编译环境:OS X Yosemite ..3 Xcode 6.3.1(6D) boost 1./1.
步骤:把下面的脚本保存成build_boost.sh,直接运行即可:
集成到Xcode做iOS的同学还是习惯完全用Xcode的吧。所以可以把上面的脚本集成到xcode里。在某个工程中,Xcode菜单File->New->Target…->Other->Aggregate->取名boost,Finish->在这个target的属性中选择Build Phases->点击左边的+号->New Run Script Phase->填入bash ./build_boost.sh->自己再填好库文件搜索路径和链接各个boost库。主target还要设置依赖boost target,免得boost编译前就链接以致错误。
2.Android平台编译Android的编译方法有两种:一种是和iOS一样,自己覆盖project-config.jam引入NDK的编译工具设置,然后用bjam编译;另一种是自己写Android.mk。自己写project-config.jam因为要兼顾很多种CPU架构而(无论是写jam还是主工程的Android.mk都)较为麻烦,所以本文用后者。
环境Ubuntu . bit / Linux Mint bit NDK rc boost 1./1.
步骤以下是Android.mk的内容:
Application.mk的内容:
这是最普通的做法,如果要加编译参数,还得自己琢磨下。例如不要rtti,就得LOCAL_CFLAGS += -DBOOST_NO_RTTI。
3.Windows平台编译环境Windows 7 旗舰版 bit SP1 Visual Studio Ultimate boost 1./1.
步骤以下是build_boost.bat的内容,直接执行即可:
注意这里生成的是MTd和MT。MD的话runtime-link=shared。
集成到VS工程属性->Configuration Properties->Build Events->Pre-Link Event->Command Line->填入build_boost.bat 还有设置好库搜索路径和依赖的库。 Windows的boost有个特点,代码里有#pragma comment(lib, "xxxx"),所以可以不设置依赖的库。但是如果工程设置不对而有link错误,那还是手动加进去吧。
4.Linux平台编译环境Ubuntu . bit / Linux Mint bit gcc version 4.8.2 (Ubuntu 4.8.2-ubuntu1) boost 1./1.
步骤直接编译。以下是终端命令
这样就能在boost_1__0/stage/lib/下找到所有的库文件。
如果用cmake来组织编译,以下是主工程的CMakeLists.txt里的部分内容:
5.Mac OS X编译环境OS X Yosemite ..3 Xcode 6.3.1(6D) boost 1./1.
步骤和Linux相同。集成到Xcode的步骤和iOS类似。
转载请注明出处:
Android实现两次按下返回键退出 说明:exitTime的定义:定义成全局变量privatelongexitTime=0;下面给出onKeyDown方法的代码@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){if(keyCode==KeyEvent.KEYCODE_BACKevent
Android设计模式--观察者模式 问题:在Android中,根据Android的事件树,我们知道:在与屏幕按键、触摸、滑动等操作与应用进行交互时触发的相关事件中,交互事件是沿着事件树自顶
android页面多状态处理
标签: boost源码编译
本文链接地址:https://www.jiuchutong.com/biancheng/387421.html 转载请保留说明!友情链接: 武汉网站建设