閱讀852 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go 搜索引擎優化排名因素小結
  下一篇:go 認識JVM--第二篇-java對象內存模型