该博客中路径及名称需要修改,直接使用不匹配,导致项目配置失败
共享库开发
项目创建过程省略,头文件在include中
cmake_minimum_required(VERSION 2.8.4)
project(shared11)
set(CMAKE_CXX_STANDARD 14)
SET(ROOT_DIR /leo-build/lib/loc/shared)
file(MAKE_DIRECTORY ${ROOT_DIR}/shared)
file(MAKE_DIRECTORY ${ROOT_DIR}/shared/lib)
file(REMOVE_RECURSE ${ROOT_DIR}/shared/include)
file(MAKE_DIRECTORY ${ROOT_DIR}/shared/include)
#拷贝头文件到指定目录
file(COPY ${CMAKE_SOURCE_DIR}/include DESTINATION ${ROOT_DIR}/shared/)
add_library(shared11 SHARED library.cpp include/library.h)
#设置库文件的输出目录
SET(LIBRARY_OUTPUT_PATH ${ROOT_DIR}/lib)
#测试用例添加
#add_subdirectory(examples)
共享库测试用例
项目下创建examples
cmake_minimum_required(VERSION 2.8.4)
project(leo_shared_test)
set(CMAKE_CXX_STANDARD 14)
set(ROOT_DIR /leo-build/lib/loc/shared)
include_directories(${ROOT_DIR}/include)
link_directories(${ROOT_DIR}/lib)
link_libraries(leo_shared)
add_executable(leo_shared_test main.cpp)
target_link_libraries(leo_shared_test leo_shared)
共享库引用
cmake_minimum_required(VERSION 2.8.4)
project(shared_test)
set(CMAKE_CXX_STANDARD 14)
SET(ROOT_DIR /leo-build/lib/loc/shared)
# 头文件路径
include_directories(${ROOT_DIR}/include)
# 库文件路径
link_directories(${ROOT_DIR}/lib)
link_libraries(shared11)
add_executable(shared_test main.cpp)
# 链接库
target_link_libraries(shared_test shared11)