CMAKE和MinGW 環境還真難配!
網上看到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後麵安裝,直接就沒有辦法用。
最後更新:2017-04-02 06:51:42