网上看到cmke + Mingw 的组合似乎是管理工程的一套比较好的工具组,但是实际使用上还是有很多问题,到现在还是有很多没有解决,
看来短期是没有办法使用了。
不过有几个原来存在的问题,也给了我一些提示,先记载在这里,后面要用的时候也好参考一下。
1. 首先认识一下两个工具:
Cmake -- 工程文件生成工具,可以生成根据CmakeLists.txt 生成工程文件,包括很多的编译器,在命令提示符窗口键入 cmake 回车
就可以看到了。 若是显示“ 'cmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。” 就看第二条。
2. 环境变量的配置。
要在"我的电脑"->右键属性—>高级->环境变量->PATH,增加两个工具的bin文件夹的目录。
这样才能在CMD 或者直接编译和生成makefile。
3. 主要问题出现了。
建立 一个目录,写好 “hello world” 和简单的CmakeLists,预报测试。
3.1 输入cmake -G“Visual Studio 9 2008 " ,生成vs 2008的工程,直接编译OK。
3.1 删除除了hello world 和cmakeLists 文件外所有文件,cmd 直接 cmake -G "Unix Makefiles" ,总是发现c编译器测试失败。
没有办法看了看../CMake 2.6/share/cmake-2.6/Modules/CMakeTestCCompiler.cmake
里面过程倒不是很复杂:就是建立一个新的文件,然后测试编译。
里面最主要的参数就是:CMAKE_C_COMPILER_WORKS ,这个还真不知道是什么。。
应该和他有点关系吧。
编译代码如下:
TRY_COMPILE(CMAKE_C_COMPILER_WORKS ${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCCompiler.c
OUTPUT_VARIABLE OUTPUT)
4. 问题解决:
问题的解决太意外了,居然是重装cmake,然后就出现如下一幕。
J:/Project/TestBuild/build>cmake -G"Unix Makefiles" ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: E:/CodeSoftware/MinGW/bin/gcc.exe
-- Check for working C compiler: E:/CodeSoftware/MinGW/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: E:/CodeSoftware/MinGW/bin/c++.exe
-- Check for working CXX compiler: E:/CodeSoftware/MinGW/bin/c++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: J:/Project/TestBuild/build
5. 问题还在继续.
分析原因,可能是cmake不能识别后安装的编译器。vs2008 早就安装好了,一用就OK。
mingw后面安装,直接就没有办法用。