cmake实践:多文件夹的hello wrold

在上一节中,hello程序的hello.c, hello.h main.c均在同一文件夹

 

若要将hello.c hello.h main.c分别放在不同文件夹,则要写多个CMakeLists.txt

 

我们期望的文件结构是

 

├── build
├── CMakeLists.txt
├── lib
│   ├── CMakeLists.txt
│   ├── hello.c
│   └── hello.h
└── src
├── CMakeLists.txt
└── main.c

 

1. 修改顶层的CMakeLists.txt

project(HELLO)
add_subdirectory(src)
add_subdirectory(lib)

 

2. 修改src文件夹的CMakeLists.txt

include_directories(${PROJECT_SOURCE_DIR}/lib)
set(SRC main.c)
add_executable(hello ${SRC})
target_link_libraries(hello libhello)

 

3. 修改lib文件夹的CMakeLists.txt

set(LIB hello.c)
add_library(libhello ${LIB})
set_target_properties(libhello PROPERTIES PREFIX "" OUTPUT_NAME "hello")

 

4. 运行hello

可执行文件生成在./build/src/文件夹下,运行即可

posted @ 2019-03-01 17:27  roov  阅读(5)  评论(0编辑  收藏  举报