本例实现一个简单的helloworld的程序的编译 共包含3个文件
libHelloSLAM.cpp libHelloSLAM.h main.cpp
libHelloSLAM.h
#ifndef LIBHELLOSLAM_H_
#define LIBHELLOSLAM_H_
void printHello();
#endif
libHelloSLAM.cpp
#include <iostream>
using namespace std;
void printHello()
{
cout << "Hello SLAM" << endl;
}
main.cpp
#include "libHelloSLAM.h"
int main()
{
printHello();
return 0;
}
CMakeList.txt
cmake_minimum_required( VERSION 2.8)
#工程名
project( HelloSLAM)
#添加可执行文件
add_executable( main main.cpp)
#设置头文件的搜索路径
#include_directories(./include)
#生成库
add_library(hello libHelloSLAM.cpp) #静态库
add_library(hello_shared SHARED libHelloSLAM.cpp) #加了shared就是共享库
#共享库有3个名字
#realname:库的真实名称,如 libcurl.so.4.5.0。格式为:lib+库名+.so+大版本号+小版本号+发行号
#soname:库的软连接名称,libcurl.so.4
#linkername:编译过程中使用的so的名称,如上面的hello_shared。
#链接到库
target_link_libraries( main hello_shared)
防止生成的可执行程序找不到共享库的位置了,需要设置搜索路径:
vi ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:XXXX
|