1. 源代码
show.hpp
#ifndef __SHOW_HPP__
#define __SHOW_HPP__
void show();
#endif
show.cpp
#include <iostream>
#include "show.hpp"
void show()
{
std::cout<<"Hello World."<<std::endl;
}
2. cmake
cmake_minimum_required(VERSION 2.8)
project(show)
add_definitions(-Ofast -fPIC -ffast-math -Wall -Wextra -Wno-unused-function -fpermissive)
set(SHOW_MAJOR 1)
set(SHOW_MINOR 2)
set(SHOW_PATCH 3)
set(SRCS
${CMAKE_SOURCE_DIR}/show.cpp
)
include_directories(
${CMAKE_SOURCE_DIR}/
)
set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/install)
#依赖的库
#link_libraries();
add_library(show SHARED ${SRCS})
#VERSION指代动态库版本,SOVERSION指代API版本
set_target_properties(show PROPERTIES VERSION ${SHOW_MAJOR}.${SHOW_MINOR}.${SHOW_PATCH})
#install类型 TARGETS, FILES, DIRECTORY, SCRIPT, CODE, EXPORT
# 安装头文件到指定位置
#install(FILES show.hpp DESTINATION /usr/include)
#安装目录到指定位置
#install(DIRECTORY install DESTINATION /usr/lib)
#target可以是静态库,动态库,可执行二进制, 头文件
#install(TARGETS <target>... [...])
#install(TARGETS test libtest libstaticlib
# RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
# ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
#)
# ARCHIVE 静态库
# LIBRARY 动态库
# RUNTIME 可执行二进制
# ...
3. 输出
libshow.so libshow.so.1.2.3