我想在使用Cmake构建的大型跨平台项目中使用Boost核心库(如lambda)和Boost ASIO库。我想把Boost& ASIO在我的源代码控制树中,并使用Cmake将其构建为项目的一部分。所以我不想在计算机上“安装”它并与之链接。
如何做到这一点? Boost是否存在CMakeLists.txt
?
答案 0 :(得分:4)
Boost.Lambda和Boost.ASIO都是仅限标头的库,因此在您的CMakeLists.txt文件中,您可以在include
变量中包含Boost INCLUDE_DIRECTORIES
目录,当您的代码是构建后,标题代码将内置到您生成的模块中。
对于使用非标头库(如Boost.Filesystem)的情况,您必须运送您构建的库,或者修改boost.build的实验CMake版本,您可以在此处找到:{ {3}}
修改强>
我对Boost.Asio有点困惑。它不是真正的头文件,因为它取决于你使用它的Boost.System和Boost.Thread。
但是,Boost.Asio是从Asio(https://svn.boost.org/trac/boost/wiki/CMake)派生的,它只是标题。
答案 1 :(得分:0)
有一个项目旨在提供CMake版本的boost。它已经过时了,但CMakeLists.txt
可能对您有所帮助。您可以查看there。