0
点赞
收藏
分享

微信扫一扫

Linux下CMake简明教程(五)正规一点的组织结构


​​代码在git​​

正规一点来说,一般会把源文件放到src目录下,把头文件放入到include文件下,生成的对象文件放入到build目录下,最终输出的elf文件会放到bin目录下,这样整个结构更加清晰。让我们把前面的文件再次重新组织下,

.
.
├── bin
├── include
│ ├── testFunc1.h
│ └── testFunc.h
└── src
├── main.cpp
├── testFunc1.cpp
└── testFunc.cpp

cmake_minimum_required (VERSION 2.8)

project (demo)

add_subdirectory (src)

aux_source_directory (. SRC_LIST)

include_directories (../include)

add_executable (main ${SRC_LIST})

set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

这里又出现一个新的命令set,是用于定义变量的,EXECUTABLE_OUT_PATH和PROJECT_SOURCE_DIR是CMake自带的预定义变量,其意义如下,

  • EXECUTABLE_OUTPUT_PATH :目标二进制可执行文件的存放位置
  • PROJECT_SOURCE_DIR:工程的根目录

所以,这里set的意思是把存放elf文件的位置设置为工程根目录下的bin目录。(cmake有很多预定义变量,详细的可以网上搜索一下)

添加好以上这2个CMakeLists.txt后,整体文件结构如下,

.
├── bin
├── CMakeLists.txt
├── include
│ ├── testFunc1.h
│ └── testFunc.h
└── src
├── CMakeLists.txt
├── main.cpp
├── testFunc1.cpp
└── testFunc.cpp

mkdir build
cd build
cmake ..
make

cd ..
cd ./bin
./main

​​代码​​

cmake_minimum_required (VERSION 2.8)

project (demo)

set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

aux_source_directory (src SRC_LIST)

include_directories (include)

add_executable (main ${SRC_LIST})


举报

相关推荐

0 条评论