整天捣鼓嵌入式,兼职搞搞iOS,这么折腾为了啥?都是为了俺的娃!
分类: C/C++
2011-08-27 22:15:19
(一) chello工程目录如下:
chello
|-----build
|-----test.c(main函数所在文件,调用hello.c中sayhello()函数)
|-----src
|---hello.c (需要调用myhello.c中hellohello()函数)
|---hello.h
|---subsrc
|---myhello.c
|---myhello.h
|---test_myhello.c (测试例程文件,也含有main函数,调用hellohello()函数)
以上的工程没有任何实际应用意义,各函数只是printf一些标识信息。所以在这里不粘贴源代码,请各位童鞋见谅。
(二) 文件依赖关系说明:
工程主目录为chello,test.c依赖于hello.c,hello.c又依赖于myhello.c.同时在src/subsrc/下还有一个子工程,用于测试myhello.c。这样形成较为复杂的依赖关系,便于说明CMake构建工程的步骤。
工程目录及有源码的子目录下创建CMakeLists.txt文件。创建完成后的目录如下:
chello
|-----build
|-----test.c(main函数所在文件)
|----CMakeLists.txt(此文件对应图1说明)
|-----src
|---hello.c
|---hello.h
|--- CMakeLists.txt(此文件对应图2说明)
|---subsrc
|---myhello.c
|---myhello.h
|---test_myhello.c(测试例程文件,也含有main函数)
|--- CMakeLists.txt(此文件对应图3说明)
(三) 执行cmake:
编辑好CMakeLists.txt后,进入到build目录,此时注意观察build文件夹的变化
,执行如下指令
#cmake ..
#make
即可在build目录生成指定的目标文件了。
(四) 总结:
从上面实践的过程可以看出:如果在没有IDE的情况构建工程,cmake要比autotools简单多了。对于开发人员来讲,利用cmake可以很清晰明了的控制工程每一个细节。并且cmake是个开源的跨平台构建工程,支持C,C++,Java等语言。这也正是KDevelop4会摒弃复杂难懂的autotools而热烈拥抱cmake的重要原因了。