MOOS中使用CMake编译链接glog库
2017-10-30 18:48
411 查看
1.CMake编译原理
CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。
2.glog库介绍
Glog是谷歌开源的C++日志库,用来记录程序运行时的输出信息。
这里有几篇关于Glog库用法的博客,网址如下:
http://blog.csdn.net/chdhust/article/details/51813374
https://www.cppfans.org/1566.html
http://www.cnblogs.com/tianyajuanke/archive/2013/02/22/2921850.html
上面这几篇文章中介绍了Glog的API和基本用法,通过这些文章可以对Glog有一些基本的了解。下面介绍在Cmake工程中Glog的用法。
CMake的配置信息写在了CMakeList.txt文件中。在CMakeList.txt文件里,我们首先定义两个变量INC_DIR和LINK_DIR,用来表示头文件路径和库的路径。这里以我放在/usr/local/目录下的glog库为例,代码如下:
然后依次设置头文件目录、库目录、要链接的库,如下:
注意以上代码须放在add_executable语句之前,而接下来的链接库操作则须放在add_executable语句之后。
使用如下语句完成库的链接操作:
括号中的your_project为工程名称,glog为库的名称。
至此我们就完成glog库的链接过程。
作为参考,此工程完整的CMake代码如下:
CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。
2.glog库介绍
Glog是谷歌开源的C++日志库,用来记录程序运行时的输出信息。
这里有几篇关于Glog库用法的博客,网址如下:
http://blog.csdn.net/chdhust/article/details/51813374
https://www.cppfans.org/1566.html
http://www.cnblogs.com/tianyajuanke/archive/2013/02/22/2921850.html
上面这几篇文章中介绍了Glog的API和基本用法,通过这些文章可以对Glog有一些基本的了解。下面介绍在Cmake工程中Glog的用法。
CMake的配置信息写在了CMakeList.txt文件中。在CMakeList.txt文件里,我们首先定义两个变量INC_DIR和LINK_DIR,用来表示头文件路径和库的路径。这里以我放在/usr/local/目录下的glog库为例,代码如下:
SET(INC_DIR /usr/local/include) SET(LINK_DIR /usr/local/lib)
然后依次设置头文件目录、库目录、要链接的库,如下:
include_directories(${INC_DIR}) link_directories(${LINK_DIR}) link_libraries(glog)
注意以上代码须放在add_executable语句之前,而接下来的链接库操作则须放在add_executable语句之后。
使用如下语句完成库的链接操作:
target_link_libraries(your_project glog)
括号中的your_project为工程名称,glog为库的名称。
至此我们就完成glog库的链接过程。
作为参考,此工程完整的CMake代码如下:
cmake_minimum_required(VERSION 2.6)
project(your_project)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp)
SET(INC_DIR /usr/local/include) SET(LINK_DIR /usr/local/lib)
include_directories(${INC_DIR}) link_directories(${LINK_DIR}) link_libraries(glog)
add_executable(your_project ${SOURCE_FILES})
target_link_libraries(your_project glog)
相关文章推荐
- windows下编译使用opencv的cmake工程
- Android Studio中通过CMake使用NDK并编译自定义库和添加预编译库
- windows平台使用cmake编译libnfc 1.7.0 rc6全过程
- Ubuntu 16.04使用NASM编译时用ld链接程序出现:i386 架构于输入文件 sandbox.o 与 i386:x86-64 输出不兼容(I386 architecture in the input file sandbox.o is not compatible with i386: x86-64 output)
- 使用CMAKE链接外部的动态库时找不到库文件解决办法(/usr/bin/ld: cannot find lxxx)
- boost库在windows下使用时的编译、链接注意事项(不断更新)
- Android NDK开发扫盲及最新CMake的编译使用
- Android Studio2.2配置MakeList使用cmake编译c文件
- CentOS5.6下使用cmake编译MySQL5.5.13源码和安装笔录
- Android NDK开发扫盲及最新CMake的编译使用
- CMake 简明教程(5)---编译中使用间接生成的文件
- Linux Makefile自动编译和链接使用的环境
- GCC中同时使用动态和静态库链接的编译
- CentOS6.7下使用cmake编译安装MySQL5.5.32
- 使用CMake编译代码教程之1
- 使用CMake + MinGW + Eclipse 开发OpenCV --编译,使用以及可能遇到的问题详解
- 编译链接------Linux环境下c语言静态链接库和动态链接库创建和使用
- 在ubuntu下使用cmake进行opencv的配置和Windows下进行使用cmake编译源代码
- 使用cmake编译protobuf生成vs2010工程