笔记来自高翔的《视觉SLAM十四讲》
备忘
目录
笔记备忘
1 源程序
2 调用库
1 源程序
主程序main.cpp
#includeusing namespace std; int main(int argc, char** argv) { cout << "Hellow" << endl; return 0; }
库文件lib_hello.cpp
#includeusing namespace std; void printHello() { cout << "Hellow" << endl; }
CMakeLists.txt
cmake_minimum_required(VERSION 2.8) project(helloSLAM) add_executable(hellowslam main.cpp) # (生成的文件名 源代码文件) add_library(lib_hello lib_hello.cpp) # (生成的文件名 源代码文件)生成静态库lib_hello.a # 生成动态库 使用关键字SHARED add_library(lib_shared_hello SHARED lib_hello.cpp) # 静态库每次被调用会生成一个副本,共享库则只有一个副本,更省空间。
mkdir build cd build cmake .. # relation make # call g++2 调用库
上面生成的lib_shared_hello.so库文件是一个二进制压缩包,包含了编译好的二进制函数。为了让其他人调用,则需要提供头文件,只有有了头文件和库文件,则可以调用这个库
头文件lib_hello.h
#ifndef LIBHELLO_H_ #define LIBHELLO_H_ void printHello(); #endif
可执行文件来调用 use_hello.cpp
#include "lib_hello.h" int main(int argc, char** argv) { printHello(); return 0; }
CMakeLists.txt添加一个可执行程序的生成命令,链接到刚才使用的库上
add_executable(use_hello use_hello.cpp) # 生成可执行文件use_hello target_link_libraries(use_hello lib_shared_hello) # 可执行文件链接到之前的库hello_shared
如此,生成的可执行文件use_hello,便可以调用lib_shared_hello库中的代码。
./use_hello
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)