cmake 学习笔记
测试环境,ubuntu 14.04
例子1:helloworld
目录结构如下
.
├── build
├── CMakeLists.txt
└── main.c
1 directory, 2 files
其中CMakeLists.txt
project(HELLO)
set(SRC_LIST main.c)
add_executable(hello ${SRC_LIST})
message(${PROJECT_SOURCE_DIR})
message(${PROJECT_SOURCE_DIR})
message(${PROJECT_SOURCE_DIR})
main.c
#include<stdio.h>
int main()
{
printf("helloworld\n");
return 0;
}
先创建CMakeLists.txt
和main.c
这两个文件,然后新建build目录,cd到build目录下,执行(cmake 命令后跟一个路径(..),用来指出 CMakeList.txt 所在的位置。)
cmake ..
make
生成的hello即为可执行程序。
例子2: helloworld again !
在main.c 同目录下增加两个文件hello.h
、hello.c
#ifndef _HELLO__
#define _HELLO__
void hello(const char* name);
#endif //_HELLO__
#include <stdio.h>
#include "hello.h"
void hello(const char* name)
{
printf("hello %s again!\n", name);
}
#include "hello.h"
int main()
{
hello("world");
return 0;
}
CMakeLists.txt
project(HELLO)
set(SRC_LIST main.c hello.c)
add_executable(hello ${SRC_LIST})
执行cmake的过程同上
例子3:
生成一个库。
修改CMakeLists.txt
project(HELLO)
set(LIB_SRC hello.c)
set(APP_SRC main.c)
add_library(libhello ${LIB_SRC})
add_executable(hello ${APP_SRC})
target_link_libraries(hello libhello)