目录:
(base) ➜ cmaker_learning tree
.
├── CMakeLists.txt
├── build
├── cmake-examples.conf
├── include
│ └── installing
│ └── Hello.h
└── src
├── Hello.cpp
└── main.cpp
4 directories, 5 files
文件:
与之前相同
重点是 CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
project(cmake_examples_install)
############################################################
# 1) create a library
############################################################
add_library(
cmake_examples_inst
SHARED
src/Hello.cpp
)
target_include_directories(
cmake_examples_inst
PUBLIC
${PROJECT_SOURCE_DIR}/include
)
############################################################
# 2) create an executable
############################################################
add_executable(cmake_examples_inst_bin
src/main.cpp
)
target_link_libraries(cmake_examples_inst_bin
PRIVATE
cmake_examples_inst)
############################################################
# 3) Install
############################################################
# Binaries
install(
TARGETS cmake_examples_inst_bin
DESTINATION bin
)
#Library
install(
TARGETS cmake_examples_inst
LIBRARY DESTINATION lib
)
#Header files
install(
DIRECTORY ${PROJECT_SOURCE_DIR}/include/
DESTINATION include
)
# Config
install(
FILES cmake-examples.conf
DESTINATION etc
)
执行:
cd build
cmake ..
make
sudo make install
cat install_manifest.txt
ls /usr/local/bin/
ls /usr/local/lib/
ls /usr/local/etc/
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib cmake_examples_inst_bin
或
cd /usr/local/bin/
./cmake_examples_inst_bin