c編譯make究竟做了啥
A. CMake和Make之間的區別
gcc是C語言編譯器,而g++則是C++語言編譯器,雖然gcc命令也可以用來編譯C++語言的源碼,但是它最終是要調用g++的。
make工具通過你提供的一個名為Makefile的文件,根據Makefile的內容來決定如何編譯源文件。而關於make和cmake的區別,你可以理解為make需要使用Makefile,而cmake是產生Makefile的工具。
B. linux裡面安裝的cmake 軟體到底是干什麼用的啊
CMake是一個跨平台的安裝(編譯)工具,可以用簡單的語句來描述所有平台的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project文件,能測試編譯器所支持的C++特性,類似UNIX下的automake。只是
CMake
的組態檔取名為
CmakeLists.txt。Cmake
並不直接建構出最終的軟體,而是產生標準的建構檔(如
Unix
的
Makefile
或
Windows
Visual
C++
的
projects/workspaces),然後再依一般的建構方式使用。這使得熟悉某個集成開發環境(IDE)的開發者可以用標準的方式建構他的軟體,這種可以使用各平台的原生建構系統的能力是
CMake
和
SCons
等其他類似系統的區別之處。
CMake
可以編譯源代碼、製作程式庫、產生適配器(wrapper)、還可以用任意的順序建構執行檔。CMake
支持
in-place
建構(二進檔和源代碼在同一個目錄樹中)和
out-of-place
建構(二進檔在別的目錄里),因此可以很容易從同一個源代碼目錄樹中建構出多個二進檔。CMake
也支持靜態與動態程式庫的建構。
「CMake」這個名字是「cross
platform
make」的縮寫。雖然名字中含有「make」,但是CMake和Unix上常見的「make」系統是分開的,而且更為高階。
C. Linux下gcc/g++,make和cmake的區別
gcc是一個C語言編譯器,g++是一個C++語言的編譯器,這是它們的主要區別,雖然說gcc也可以編譯C++代碼文件,但實際上是需要g++支持的,gcc編譯C++時是要調用g++的。
make是根據Makefile中定義的編譯規則來對多個源文件執行編譯命令,也就是說它是管理編譯規則的工具,並不實際編譯文件;而cmake則是可以生成Makefile文件的一個工具,實際上,cmake工具不僅可以生成Makefile,還可以生成Windows平台的VS等開發工具的dsp等工程文件,這樣管理項目就更方便了。
D. Opencv 編譯好的和用Cmake生成的有什麼不同呢 Cmake是什麼用的 通俗些最好了,謝謝!
Cmake是一個make工具,它可以根據makefile文件來調用你和編譯器進行多個文件的編譯和鏈接。用Cmake生成的就是使用你本地的編譯器來編譯生成那些文件。
E. Cmake是什麼有什麼用在WINDOWS下如何用
CMake是一個比make更高級的編譯配置工具,它可以根據不同平台、不同的編譯器,生成相應的Makefile或者vcproj項目。 通過編寫CMakeLists.txt,可以控制生成的Makefile,從而控制編譯過程。CMake自動生成的Makefile不僅可以通過make命令構建項目生成目標文件,還支持安裝(make install)、測試安裝的程序是否能正確執行(make test,或者ctest)、生成當前平台的安裝包(make package)、生成源碼包(make package_source)、產生Dashboard顯示數據並上傳等高級功能,只要在CMakeLists.txt中簡單配置,就可以完成很多復雜的功能,包括寫測試用例。 如果有嵌套目錄,子目錄下可以有自己的CMakeLists.txt。 總之,CMake是一個非常強大的編譯自動配置工具,支持各種平台,KDE也是用它編譯的,感興趣的可以試用一下。 准備活動: (1)安裝cmake。 下載地址:中國至美.cmake.org/cmake/resources/software.html 根據自己的需要下載相應的包即可,Windows下可以下載zip壓縮的綠色版本,還可以下載源代碼。 Windows下CMake的使用 (2)運行cmake的方法。(GUI、命令行) 中國至美.cmake.org/cmake/help/runningcmake.html CMake使用步驟: 運行GUI的cmake界面: cmake-2.8.1-win32-x86\bin\cmake-gui.exe Windows下CMake的使用 執行Configure: 運行之後,生成了如下文件: Windows下CMake的使用 生成Makefile: 執行Generate之後生成如下文件: Windows下CMake的使用 運行make進行編譯: Windows下CMake的使用 編譯完成後,在build目錄生成Tutorial.exe,運行Tutorial.exe 25就可以看到運行結果: Windows下CMake的使用 運行make install安裝程序: Windows下CMake的使用 運行make test進行測試: Windows下CMake的使用 通過cmake tutorial學習CMake配置方法 中國至美.cmake.org/cmake/help/cmake_tutorial.html 可以在源代碼的Tests/Turorial目錄中找到這個手冊對應的代碼。 Windows下CMake的使用 1、Step1。 (如果不知道如何使用cmake,以及如何使用編譯產生的Turorial.exe,可先看下前面「CMake使用步驟」的說明,它以Step4為例詳細介紹了使用過程,Step1的配置可能不夠完全,比如無法運行make install,無法運行make test,但可以參考。) 簡單的程序編譯。 (1)運行GUI的cmake,指定要編譯的源代碼路徑和二進制文件路徑(會自動創建)。 Windows下CMake的使用 (2)點擊Configure,配置成功後,再點擊Generate。 配置需要選擇合適的編譯器,雖然我安裝了VC2008,但沒有配置成功;選擇Unix Makefiles,配置成功,它自動找到了DevC++下的gcc.exe等編譯器。 Windows下CMake的使用 (3)在build3目錄執行make,就能夠編譯生成Turorial.exe了。 D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>make Linking CXX executable Tutorial.exe [100%] Built target Tutorial 可以運行一下Turorial.exe: D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe Tutorial.exe Version 1.0 Usage: Tutorial.exe number D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe 4 The square root of 4 is 2 2、Step2 把子目錄編譯為庫,並且鏈接到最終的可執行文件。 include_directories ("${PROJECT_SOURCE_DIR}/MathFunctions") add_subdirectory (MathFunctions) # 使得子目錄MathFunctions也能被編譯 # add the executable add_executable (Tutorial tutorial.cxx) target_link_libraries (Tutorial MathFunctions) 產生makefile: 在GUI上點擊Configure,之後Generate還是灰色,再次點擊Configure,Generate就可以點擊了。 編譯
F. makefile到底是干什麼用的
一個工程(project)中的源文件不計其數,其按類型、功能、模塊分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些文件需要先編譯,哪些文件需要後編譯,哪些文件需要重新編譯,甚至於進行更復雜的功能操作,因為 makefile就像一個Shell腳本一樣,其中也可以執行操作系統的命令。
Makefile 文件描述了整個工程的編譯、連接等規則。其中包括:工程中的哪些源文件需要編譯以及如何編譯、需要創建那些庫文件以及如何創建這些庫文件、如何最後產生我們想要的可執行文件。盡管看起來可能是很復雜的事情,但是為工程編寫Makefile 的好處是能夠使用一行命令來完成「自動化編譯」,一旦提供一個(通常對於一個工程來說會是多個)正確的
Makefile。編譯整個工程你所要做的唯一的一件事就是在shell 提示符下輸入make命令。整個工程完全自動編譯,極大提高了效率。
如果你使用的是帶有圖形用戶界面的集成化開發環境如VisualStudio,一般用不著手動編寫makefile文件,當你需要時,VS可以為你自動生成。
G. Cmake是什麼有什麼作用為什麼要使用Cmake
CMake是一個跨平台的安裝(編譯)工具,可以用簡單的語句來描述所有平台的安裝(編譯過程)。作用是他能夠輸出各種各樣的makefile或者project文件,能測試編譯器所支持的C++特性,類似UNIX下的automake。
只是 CMake 的組態檔取名為 CMakeLists.txt。Cmake 並不直接建構出最終的軟體,而是產生標準的建構檔(如 Unix 的 Makefile 或WindowsVisual C++的 projects/workspaces),然後再依一般的建構方式使用。
這使得熟悉某個集成開發環境(IDE)的開發者可以用標準的方式建構他的軟體,這種可以使用各平台的原生建構系統的能力是 CMake 和 SCons 等其他類似系統的區別之處。
CMake是為了解決美國國家醫學圖書館出資的Visible Human Project專案下的Insight Segmentation and Registration Toolkit (ITK) 軟體的跨平台建構的需求而創造出來的,其設計受到了Ken Martin開發的pcmaker所影響。pcmaker當初則是為了支持Visualization Toolkit這個開放源代碼的三維圖形和視覺系統才出現的,VTK也採用了CMake。
H. linux make編譯的目的
不明白你要問什麼
-----------
make 的作用是開始進行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設置文件提供相關的功能,比如 make install 一般表示進行安裝,make uninstal 是卸載,不加參數就是默認的進行源代碼編譯。
make 是 Linux 開發套件裡面自動化編譯的一個控製程序,他通過藉助 Makefile 裡面編寫的編譯規范(語法很多,類似一個可以運行的腳本程序。反正我是看不懂,所以你也別問我怎麼編寫)。進行自動化的調用 gcc 、ld 以及運行某些需要的程序進行編譯的程序。
一般情況下,他所使用的 Makefile 控制代碼,由 configure 這個設置腳本根據給定的參數和系統環境生成。