cmake+boost生成Makefile

    最近在写一个跨平台的项目,因为要在Linux下面编译,自然就会用到makefile文件,但是又不想自己写,所以用工具cmake来自动生成再好不过了。因为使用了boost库,中途还遇到了些问题,于是,便记录下来。

    首先,设置boost库的安装目录:

set(BOOST_ROOT /usr/local/boost)

    因为本人的boost安装目录为/usr/local/boost,所以就设置成这个,你的boost安装目录是哪个就设置成哪个。如果不定义boost的根目录,则可能会找不到boost或者是找错目录。

    然后,查找boost的相关库文件:

find_package(Boost COMPONENTS system filesystem thread log program_options REQUIRED)

    主要是查找你的项目中使用到了的boost库,看是否能找到对应的库文件,这里如果不加上的话,后面链接的时候可能会报找不到boost相应库的错误。

    接着便是包含相关的头文件了:

if(Boost_FOUND)
	include_directories(${Boost_INCLUDE_DIRS})
endif()

    如果不增加包含头文件这段代码,在编译的时候会报找不到boost的头文件错误。

    最后,就是在链接的时候,增加boost库就OK了:

add_executable(testRemoteCmd ${test_SRCS})
target_link_libraries(testRemoteCmd HintRC ${Boost_LIBRARIES})

    其中,testRemoteCmd是测试项目名称,HintRC是使用了boost库的动态库项目,最后${Boost_LIBRARIES}这个就是boost库的库文件了。如果在这里,你没有加上${Boost_LIBRARIES}这段代码的话,链接的时候就会报找不到boost相应库的错误。

    至此,运行cmake .就可以生成对应的Makefile文件,然后make,大功告成也。下面是运行cmake的情形:

cmake

cmake运行结果

    图中cmake的输出可以看出,此机器安装的boost版本是1.55.0,system,filesystem等库也都已经找到。再下面是make的情形:

make

make运行结果

    从图中可以看出先是编译HintRC库,并且同时编译了HintRC的动态库和静态库,编译完成以后,再编译testRemoteCmd这个可执行程序,因为testRemoteCmd此文件是需要HintRc库的,所以得后编译。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z小偉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值