<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 1.2 切換生成器 **NOTE**:*此示例代碼可以在 https://github.com/dev-cafe/cmake-cookbook/tree/v1.0/chapter-01/recipe-02 中找到,其中有一個C++、C和Fortran示例。該配置在CMake 3.5版(或更高版本)下測試沒問題,并且已經在GNU/Linux、macOS和Windows上進行了測試。* CMake是一個構建系統生成器,可以使用單個CMakeLists.txt為不同平臺上的不同工具集配置項目。您可以在CMakeLists.txt中描述構建系統必須運行的操作,以配置并編譯代碼。基于這些指令,CMake將為所選的構建系統(Unix Makefile、Ninja、Visual Studio等等)生成相應的指令。我們將在第13章中重新討論生成器。 ## 準備工作 CMake針對不同平臺支持本地構建工具列表。同時支持命令行工具(如Unix Makefile和Ninja)和集成開發環境(IDE)工具。用以下命令,可在平臺上找到生成器名單,以及已安裝的CMake版本: ```shell $ cmake --help ``` 這個命令的輸出,將列出CMake命令行界面上所有的選項,您會找到可用生成器的列表。例如,安裝了CMake 3.11.2的GNU/Linux機器上的輸出: ```shell Generators The following generators are available on this platform: Unix Makefiles = Generates standard UNIX makefiles. Ninja = Generates build.ninja files. Watcom WMake = Generates Watcom WMake makefiles. CodeBlocks - Ninja = Generates CodeBlocks project files. CodeBlocks - Unix Makefiles = Generates CodeBlocks project files. CodeLite - Ninja = Generates CodeLite project files. CodeLite - Unix Makefiles = Generates CodeLite project files. Sublime Text 2 - Ninja = Generates Sublime Text 2 project files. Sublime Text 2 - Unix Makefiles = Generates Sublime Text 2 project files. Kate - Ninja = Generates Kate project files. Kate - Unix Makefiles = Generates Kate project files. Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files. Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files. ``` 使用此示例,我們將展示為項目切換生成器是多么**EASY**。 ## 具體實施 我們將重用前一節示例中的`hello-world.cpp`和`CMakeLists.txt`。惟一的區別在使用CMake時,因為現在必須顯式地使用命令行方式,用`-G`切換生成器。 1. 首先,使用以下步驟配置項目: ```shell $ mkdir -p build $ cd build $ cmake -G Ninja .. -- The CXX compiler identification is GNU 8.1.0 -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: /home/user/cmake-cookbook/chapter-01/recipe-02/cxx-exampl ``` 2. 第二步,構建項目: ```shell $ cmake --build . [2/2] Linking CXX executable hello-world ``` ## 如何工作 與前一個配置相比,每一步的輸出沒什么變化。每個生成器都有自己的文件集,所以編譯步驟的輸出和構建目錄的內容是不同的: - `build.ninja`和`rules.ninja`:包含Ninja的所有的構建語句和構建規則。 - `CMakeCache.txt `:CMake會在這個文件中進行緩存,與生成器無關。 - `CMakeFiles`:包含由CMake在配置期間生成的臨時文件。 - `cmake_install.cmake`:CMake腳本處理安裝規則,并在安裝時使用。 `cmake --build .`將`ninja`命令封裝在一個跨平臺的接口中。 ## 更多信息 我們將在第13章中討論可選生成器和交叉編譯。 要了解關于生成器的更多信息,CMake官方文檔是一個很好的選擇: https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看