0.总体概览
1.建立共享库(hello_lib)
在hello_lib文件夹下创建三个文件夹:build存放编译临时文件,include存放hello.h,src存放hello.cpp。
hello.h
#pragma once
void sayHello();
hello.cpp
#include "hello.h"
#include <iostream>
using namespace std;
void sayHello(){
cout << "Hello World!"<< endl;
}
hello_lib/CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(hello_lib)
include_directories(${PROJECT_SOURCE_DIR}/include)
add_subdirectory(src)
hello_lib/src/CMakeLists.txt
add_library(hello SHARED hello.cpp)
install(FILES ${PROJECT_SOURCE_DIR}/include/hello.h DESTINATION /usr/local/include)
install(TARGETS hello LIBRARY DESTINATION /usr/local/lib)
此段代码目的是将hello.h(头文件)与hello(共享库)安装到本机。
可以在build目录下运行cmake … 编译并调用sudo make install安装
2.使用共享库(say_hello)
在say_hello文件夹下创建两个个文件夹:build存放编译临时文件,src存放useHello.cpp。
useHello.cpp
#include "hello.h"
using namespace std;
int main(int agrc,char **argv){
sayHello();
return 0;
}
say_hello/CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(sayHello)
add_subdirectory(src)
say_hello/src/CMakeLists.txt
include_directories(/usr/local/include)
link_directories(/usr/local/lib)
add_executable(sayHello useHello.cpp)
target_link_libraries(sayHello hello)
暂时先学到这了,find_package什么的就先不看了。