最近好几次需要自己写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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。