关于cmake:测试链接库的cmakelist模板

8次阅读

共计 1070 个字符,预计需要花费 3 分钟才能阅读完成。

最近好几次须要本人写 CMakeLists 测试一个模块的应用,很多步骤是反复的,所以总结一下通用的模板。

假如当初有一个编译好的共享库 libxxx.so,我想本人写些代码去测试它的接口应用,编译成可执行文件,能够应用相似如下的模板。

CMakeList.txt:

message("start building...")

#指定编译工具链
SET(TOOLCHAIN_HOME "/usr")

#SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_C_COMPILER ${TOOLCHAIN_HOME}/bin/aarch64-linux-gnu-gcc)
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_HOME}/bin/aarch64-linux-gnu-g++)

#指定编译选项
#add_compile_options(-DLINUX)
set(CMAKE_CXX_FLAGS "-std=c++11 -O2 -pthread")

cmake_minimum_required(VERSION 2.8)

project(test)

set(DEMO_NAME ${PROJECT_NAME})

#编译的源文件门路,测试代码的源文件
set(DEMO_SRCS srcFile1.cc srcFile2.cc main.cc)

#编译的头文件门路,包含测试代码的头文件和援用模块的头文件
include_directories(
    /your_test_file_path/
    /lib_include_path/
)

#须要链接的库门路
set(LIB_PATH /path_to_lib/libxxx.so)

#增加可执行文件
add_executable(${DEMO_NAME} ${DEMO_SRCS})

#动态链接库
target_link_libraries(${DEMO_NAME} ${LIB_PATH})

而后能够再写个 shell 脚本一键编译

cmake-linux.sh:

#!/bin/bash

#编译输入目录
BUILD_DIR=build_linux
BINARY_DIR=$BUILD_DIR/bin

#每次编译时删除从新创立
rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR
mkdir -p $BINARY_DIR
pushd $BUILD_DIR

#开始编译,如果想要增加本人的库能够加 install
echo "Default mode"
cmake -DCMAKE_INSTALL_PREFIX=install \
          ..
make
#make install

popd

正文完
 0